Scala implementation of space logic
- Companion:
- object
Value members
Concrete methods
Abstract sealed types, or-types, Boolean and Java enums can be decomposed
Abstract sealed types, or-types, Boolean and Java enums can be decomposed
Decompose a type into subspaces -- assume the type can be decomposed
Decompose a type into subspaces -- assume the type can be decomposed
True if we can assume that the two unapply methods are the same. That is, given the same parameter, they return the same result.
True if we can assume that the two unapply methods are the same. That is, given the same parameter, they return the same result.
We assume that unapply methods are pure, but the same method may be called with different prefixes, thus behaving differently.
Is a
a subspace of b
? Equivalent to a - b == Empty
, but faster
Is a
a subspace of b
? Equivalent to a - b == Empty
, but faster
- Definition Classes
Whether the counterexample is satisfiable. The space is flattened and non-empty.
Whether the counterexample is satisfiable. The space is flattened and non-empty.
Show friendly type name with current scope in mind
Show friendly type name with current scope in mind
E.g. C.this.B --> B if current owner is C C.this.x.T --> x.T if current owner is C X[T] --> X C --> C if current owner is C !!!
Parameter types of the case class type tp
. Adapted from unapplyPlan
in patternMatcher
Parameter types of the case class type tp
. Adapted from unapplyPlan
in patternMatcher
Return the underlying type of non-module, non-constant, non-enum case singleton types.
Also widen ExprType to its result type, and rewrap any annotation wrappers.
For example, with val opt = None
, widen opt.type
to None.type
.
Return the underlying type of non-module, non-constant, non-enum case singleton types.
Also widen ExprType to its result type, and rewrap any annotation wrappers.
For example, with val opt = None
, widen opt.type
to None.type
.
Inherited methods
Remove a space if it's a subspace of remaining spaces
Remove a space if it's a subspace of remaining spaces
Note: dedup
will return the same result if the sequence >= 10
- Inherited from:
- SpaceLogic
Flatten space to get rid of Or
for pretty print
Flatten space to get rid of Or
for pretty print
- Inherited from:
- SpaceLogic
Simplify space such that a space equal to Empty
becomes Empty
Simplify space such that a space equal to Empty
becomes Empty
- Inherited from:
- SpaceLogic