The separation checker is a tree traverser that is run after capture checking. It checks tree nodes for various separation conditions, explained in the methods below. Rough summary:
- Hidden sets of arguments must not be referred to in the same application
- Hidden sets of (result-) types must not be referred to alter in the same scope.
- Returned hidden sets can only refer to consume parameters.
- If returned hidden sets refer to an encloding this, the reference must be from a consume method.
- Consumed entities cannot be used subsequently.
- Entitites cannot be consumed in a loop.
Attributes
Members list
Type members
Classlikes
Enumerates kinds of captures encountered so far
Enumerates kinds of captures encountered so far
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
A fixed consumed set consisting of the given references refs and associated source positions locs
A fixed consumed set consisting of the given references refs and associated source positions locs
Attributes
- Supertypes
A class for segmented sets of consumed references. References are associated with the source positions where they first appeared. References are compared with eq.
A class for segmented sets of consumed references. References are associated with the source positions where they first appeared. References are compared with eq.
Attributes
- Supertypes
- Known subtypes
-
class ConstConsumedSetclass MutConsumedSet
Attributes
- Supertypes
A mutable consumed set, which is initially empty
A mutable consumed set, which is initially empty
Attributes
- Supertypes
Attributes
- Supertypes
Value members
Concrete fields
Extensions
Extensions
Reduce a non-empty footprint set to
Reduce a non-empty footprint set to
- all its non-terminial capabilities if that set is nonempty, or
- all its non-hidden capabilities if that set is nonempty, or
- the set itself if it consists only of hidden terminal capabilities.