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