restriction
Create or reuse an immutable TypeRestriction, canonicalizing the arguments.
Return
The new or existing canonical TypeRestriction.
Parameters
The Avail type that constrains some value somewhere.
Either null or the exact value that some value somewhere must equal.
A set of A_Types to consider excluded.
A set of values to consider excluded.
Either the set of all ObjectLayoutVariants that objects with this restriction may have, or nil if unknown. This must not be populated if excludedVariants is also populated.
Either the set of all ObjectLayoutVariants that objects with this restriction definitely do not have, or nil if unknown. This must not be populated if possibleVariants is also populated.
Either the set of all ObjectLayoutVariants that object types with this restriction may have, or nil if unknown. This must not be populated if excludedTypeVariants is also populated.
Either the set of all ObjectLayoutVariants that object types with this restriction definitely do not have, or nil if unknown. This must not be populated if possibleTypeVariants is also populated.
Whether the value is known to be immutable.
Whether this value is known to already reside in an L2BoxedRegister.
Whether this value is known to already reside in an L2IntRegister.
Whether this value is known to already reside in an L2FloatRegister.
Create or reuse an immutable TypeRestriction, canonicalizing the arguments.
Return
The new or existing canonical TypeRestriction.
Parameters
The Avail type that constrains some value somewhere.
Either null or the exact value that some value somewhere must equal.
A set of A_Types to consider excluded.
A set of values to consider excluded.
Either the set of all ObjectLayoutVariants that objects with this restriction may have, or nil if unknown. This must not be populated if excludedVariants is also populated.
Either the set of all ObjectLayoutVariants that objects with this restriction definitely do not have, or nil if unknown. This must not be populated if possibleVariants is also populated.
Either the set of all ObjectLayoutVariants that object types with this restriction may have, or nil if unknown. This must not be populated if excludedTypeVariants is also populated.
Either the set of all ObjectLayoutVariants that object types with this restriction definitely do not have, or nil if unknown. This must not be populated if possibleTypeVariants is also populated.
The encoded flags.