implement-modules #43
@ -7,16 +7,20 @@ import "git.tebibyte.media/sashakoshka/fspl/entity"
|
||||
import "git.tebibyte.media/sashakoshka/fspl/integer"
|
||||
|
||||
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
|
||||
// structural equivalence up until the first base type, then name
|
||||
// equivalence applies to the parts of the type
|
||||
// Like strict, but the root types specifically are compared as if they
|
||||
// were not named. analyzer.ReduceToBase() is used to accomplish this.
|
||||
weak
|
||||
// structural equivalence
|
||||
// Full structural equivalence, and named types are always reduced.
|
||||
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
|
||||
// assignment rules are completely ignored and everything is accepted
|
||||
// All assignment rules are ignored. This is only used in bit casts.
|
||||
force
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user