implement-modules #43
@ -7,16 +7,20 @@ import "git.tebibyte.media/sashakoshka/fspl/entity"
|
|||||||
import "git.tebibyte.media/sashakoshka/fspl/integer"
|
import "git.tebibyte.media/sashakoshka/fspl/integer"
|
||||||
|
|
||||||
type strictness int; const (
|
type strictness int; const (
|
||||||
// name equivalence
|
// Structural equivalence, but named types are treated as opaque and are
|
||||||
|
// not tested. This applies to the root of the type, and to types
|
||||||
|
// enclosed as members, elements, etc. This is the assignment mode most
|
||||||
|
// often used.
|
||||||
strict strictness = iota
|
strict strictness = iota
|
||||||
// structural equivalence up until the first base type, then name
|
// Like strict, but the root types specifically are compared as if they
|
||||||
// equivalence applies to the parts of the type
|
// were not named. analyzer.ReduceToBase() is used to accomplish this.
|
||||||
weak
|
weak
|
||||||
// structural equivalence
|
// Full structural equivalence, and named types are always reduced.
|
||||||
structural
|
structural
|
||||||
// allow if values can be converted
|
// Data of the source type must be convert-able to the destination type.
|
||||||
|
// This is used in value casts.
|
||||||
coerce
|
coerce
|
||||||
// assignment rules are completely ignored and everything is accepted
|
// All assignment rules are ignored. This is only used in bit casts.
|
||||||
force
|
force
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user