RestrictionGroup

data class RestrictionGroup(    val constants: Set<A_BasicObject>?,     val types: Set<A_Type>,     val objectVariants: Set<ObjectLayoutVariant>?,     val objectTypeVariants: Set<ObjectLayoutVariant>?,     val tags: Set<TypeTag>?)

A collection of all positive or all negative constraints. A TypeRestriction uses one for positive constraints, and one for negative constraints, and canonicalization keeps them from being contradictory or nonsensical.

Constructors

Link copied to clipboard
fun RestrictionGroup(    constants: Set<A_BasicObject>?,     types: Set<A_Type>,     objectVariants: Set<ObjectLayoutVariant>?,     objectTypeVariants: Set<ObjectLayoutVariant>?,     tags: Set<TypeTag>?)

Functions

Link copied to clipboard
fun makeImmutable()

Ensure all referenced AvailObjects are at least Immutable.

Link copied to clipboard
fun makeShared()

Ensure all referenced AvailObjects are Shared.

Properties

Link copied to clipboard
val constants: Set<A_BasicObject>?

When used in a positive group, this is either null or a set of size one containing the exact value under test.

Link copied to clipboard
val objectTypeVariants: Set<ObjectLayoutVariant>?

When used in the positive group, this set, if present, indicates that the value under test must be an object type, and that object type must use one of the specified ObjectLayoutVariants.

Link copied to clipboard
val objectVariants: Set<ObjectLayoutVariant>?

When used in the positive group, this set, if present, indicates that the value under test must be an object, and that object must use one of the specified ObjectLayoutVariants.

Link copied to clipboard
val tags: Set<TypeTag>?

When used in the positive group, this set, if present, must contain the typeTag of the value under test.

Link copied to clipboard
val types: Set<A_Type>

When used in the positive group, this is a size one set containing a type that includes the value under test.