DerivedVar
A variable that is derived from some other variable via a map or filter.
Attributes
- Graph
- Supertypes
- Known subtypes
Members list
Value members
Abstract methods
Concrete methods
Assuming set this set dependds on was just solved to be constant, propagate this info to this set. This might result in the set being solved to be constant itself.
Assuming set this set dependds on was just solved to be constant, propagate this info to this set. This might result in the set being solved to be constant itself.
Attributes
- Definition Classes
Inherited methods
The largest capture set (via <:<) that is a subset of both this
and that
The largest capture set (via <:<) that is a subset of both this
and that
Attributes
- Inherited from:
- CaptureSet
The smallest superset (via <:<) of this capture set that also contains ref
.
The smallest superset (via <:<) of this capture set that also contains ref
.
Attributes
- Inherited from:
- CaptureSet
The smallest capture set (via <:<) that is a superset of both
this
and that
The smallest capture set (via <:<) that is a superset of both
this
and that
Attributes
- Inherited from:
- CaptureSet
The largest subset (via <:<) of this capture set that does not account for ref
The largest subset (via <:<) of this capture set that does not account for ref
Attributes
- Inherited from:
- CaptureSet
The largest subset (via <:<) of this capture set that does not account for
any of the elements in the constant capture set that
The largest subset (via <:<) of this capture set that does not account for
any of the elements in the constant capture set that
Attributes
- Inherited from:
- CaptureSet
Two capture sets are considered =:= equal if they mutually subcapture each other in a frozen state.
Two capture sets are considered =:= equal if they mutually subcapture each other in a frozen state.
Attributes
- Inherited from:
- CaptureSet
{x} <:< this where <:< is subcapturing, but treating all variables as frozen.
{x} <:< this where <:< is subcapturing, but treating all variables as frozen.
Attributes
- Inherited from:
- CaptureSet
If this is a variable, add cs
as a dependent set
Add new elements to this capture set if allowed.
Add new elements to this capture set if allowed.
Attributes
- origin
The set where the elements come from, or
empty
if not known.- Returns:
CompareResult.OK if elements were added, or a conflicting capture set that prevents addition otherwise.
- Inherited from:
- Var
Convert to Const. @pre: isConst
Cast to variable. @pre: !isConst
Invoke handler if this set has (or later aquires) the root capability *
Invoke handler if this set has (or later aquires) the root capability *
Attributes
- Definition Classes
- Var -> CaptureSet
- Inherited from:
- Var
A fallback text representation, if the pattern matching in Printers does not have a case for this showable element
A fallback text representation, if the pattern matching in Printers does not have a case for this showable element
Attributes
- Inherited from:
- Showable
The largest subset (via <:<) of this capture set that only contains elements
for which p
is true.
The largest subset (via <:<) of this capture set that only contains elements
for which p
is true.
Attributes
- Inherited from:
- CaptureSet
Is this capture set always empty? For unsolved capture veriables, returns always false.
Is this capture set always empty? For unsolved capture veriables, returns always false.
Attributes
- Inherited from:
- Var
Is this capture set constant (i.e. not an unsolved capture variable)? Solved capture variables count as constant.
Is this capture set constant (i.e. not an unsolved capture variable)? Solved capture variables count as constant.
Attributes
- Inherited from:
- Var
Is this capture set definitely non-empty?
Does this capture set contain the root reference *
as element?
Capture set obtained by applying tm
to all elements of the current capture set
and joining the results. If the current capture set is a variable, the same
transformation is applied to all future additions of new elements.
Capture set obtained by applying tm
to all elements of the current capture set
and joining the results. If the current capture set is a variable, the same
transformation is applied to all future additions of new elements.
Note: We have a problem how we handle the situation where we have a mapped set
cs2 = tm(cs1)
and then the propagation solver adds a new element x
to cs2
. What do we
know in this case about cs1
? We can answer this question in a sound way only
if tm
is a bijection on capture references or it is idempotent on capture references.
(see definition in IdempotentCapRefMap).
If tm
is a bijection we know that tm^-1(x)
must be in cs1
. If tm
is idempotent
one possible solution is that x
is in cs1
, which is what we assume in this case.
That strategy is sound but not complete.
If tm
is some other map, we don't know how to handle this case. For now,
we simply refuse to handle other maps. If they do need to be handled,
OtherMapped
provides some approximation to a solution, but it is neither
sound nor complete.
Attributes
- Inherited from:
- CaptureSet
Mark set as solved and propagate this info to all dependent sets
A more optimistic version of accountsFor, which does not take variable supersets
of the x
reference into account. A set might account for x
if it accounts
for x
in a state where we assume all supersets of x
have just the elements
known at this point. On the other hand if x's capture set has no known elements,
a set cs
might account for x
only if it subsumes x
or it contains the
root capability *
.
A more optimistic version of accountsFor, which does not take variable supersets
of the x
reference into account. A set might account for x
if it accounts
for x
in a state where we assume all supersets of x
have just the elements
known at this point. On the other hand if x's capture set has no known elements,
a set cs
might account for x
only if it subsumes x
or it contains the
root capability *
.
Attributes
- Inherited from:
- CaptureSet
A more optimistic version of subCaptures used to choose one of two typing rules
for selections and applications. cs1 mightSubcapture cs2
if cs2
might account for
every element currently known to be in cs1
.
A more optimistic version of subCaptures used to choose one of two typing rules
for selections and applications. cs1 mightSubcapture cs2
if cs2
might account for
every element currently known to be in cs1
.
Attributes
- Inherited from:
- CaptureSet
Reset dependent sets to what was recorded in state
Reset elements to what was recorded in state
The string representation of this showable element.
The string representation with each line after the first one indented by the given given margin (in spaces).
The string representation with each line after the first one indented by the given given margin (in spaces).
Attributes
- Inherited from:
- Showable
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
Attributes
- Inherited from:
- Showable
Widen the variable's elements to its upper approximation and mark it as constant from now on. This is used for contra-variant type variables in the results of defs and vals.
Widen the variable's elements to its upper approximation and mark it as constant from now on. This is used for contra-variant type variables in the results of defs and vals.
Attributes
- Inherited from:
- Var
The subcapturing test.
The subcapturing test.
Attributes
- frozen
if true, no new variables or dependent sets are allowed to be added when making this test. An attempt to add either will result in failure.
- Inherited from:
- CaptureSet
A mapping resulting from substituting parameters of a BindingType to a list of types
A mapping resulting from substituting parameters of a BindingType to a list of types
Attributes
- Inherited from:
- CaptureSet
A regular @retains or @retainsByName annotation with the elements of this set as arguments.
A regular @retains or @retainsByName annotation with the elements of this set as arguments.
Attributes
- Inherited from:
- CaptureSet
Adds variables to the ShownVars context property if that exists, which establishes a record of all variables printed in an error message. Prints variables wih ids under -Ycc-debug.
Adds variables to the ShownVars context property if that exists, which establishes a record of all variables printed in an error message. Prints variables wih ids under -Ycc-debug.
Attributes
- Definition Classes
- Inherited from:
- Var
Roughly: the intersection of all constant known supersets of this set. The aim is to find an as-good-as-possible constant set that is a superset of this set. The universal set {*} is a sound fallback.
Roughly: the intersection of all constant known supersets of this set. The aim is to find an as-good-as-possible constant set that is a superset of this set. The universal set {*} is a sound fallback.
Attributes
- Inherited from:
- Var
This capture set with a description that tells where it comes from
Concrete fields
Inherited fields
A handler to be invoked if the root reference *
is added to this set
The sets currently known to be dependent sets (i.e. new additions to this set are propagated to these dependent sets.)
The sets currently known to be dependent sets (i.e. new additions to this set are propagated to these dependent sets.)
Attributes
- Inherited from:
- Var
The provided description (using withDescription
) for this capture set or else ""
The provided description (using withDescription
) for this capture set or else ""
Attributes
- Inherited from:
- Var
The elements currently known to be in the set