implement-modules #43

Closed
sashakoshka wants to merge 502 commits from implement-modules into main
Showing only changes of commit 803923b3d2 - Show all commits

View File

@ -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
)