Attributes
- Companion
- object
- Graph
-
- Supertypes
Members list
Value members
Concrete methods
Check validity of consumed references refsToCheck
. The references are consumed because they are hidden in a Fresh result type or they are referred to in an argument to a @consume parameter or in a prefix of a @consume method -- which one applies is determined by the role parameter.
Check validity of consumed references refsToCheck
. The references are consumed because they are hidden in a Fresh result type or they are referred to in an argument to a @consume parameter or in a prefix of a @consume method -- which one applies is determined by the role parameter.
This entails the following checks:
- The reference must be defined in the same as method or class as the access.
- If the reference is to a term parameter, that parameter must be marked as @consume as well.
- If the reference is to a this type of the enclosing class, the access must be in a @consume method.
References that extend SharedCapability are excluded from checking. As a side effect, add all checked references with the given position pos
to the global consumed
map.
Value parameters
- descr
-
a textual description of the type and its relationship with the checked reference
- pos
-
position for error reporting
- refsToCheck
-
the referencves to check
- role
-
the role in which the type apears
- tpe
-
the type containing those references
Attributes
Check separation conditions of type tpe
that appears in role
.
Check separation conditions of type tpe
that appears in role
.
- Check that the parts of type
tpe
are mutually separated, as defined incheckParts
below. - Check that validity of all references consumed by the type as defined in
checkLegalRefs
below
Attributes
Check the (result-) type of a definition of symbol sym
Check the (result-) type of a definition of symbol sym
Attributes
- Check that the capabilities used at
tree
don't overlap with capabilities hidden by a previous definition. - Also check that none of the used capabilities was consumed before.
Attributes
Check (result-) type of tree
for separation conditions using checkType
. Excluded are parameters and definitions that have an =unsafeAssumeSeparate application as right hand sides. Hidden sets of checked definitions are added to defsShadow
.
Check (result-) type of tree
for separation conditions using checkType
. Excluded are parameters and definitions that have an =unsafeAssumeSeparate application as right hand sides. Hidden sets of checked definitions are added to defsShadow
.
Attributes
Report a failure where a previously consumed capability is used again,
Report a failure where a previously consumed capability is used again,
Value parameters
- loc
-
the position where the capability was consumed
- pos
-
the position where the capability was used again
- ref
-
the capability that is used after being consumed
Attributes
Report a failure where a capability is consumed in a loop.
Report a failure where a capability is consumed in a loop.
Value parameters
- loc
-
the position where the capability was consumed
- ref
-
the capability
Attributes
If tp
denotes some version of a singleton capture ref x.type
the set {x, x*}
otherwise the empty set.
If tp
denotes some version of a singleton capture ref x.type
the set {x, x*}
otherwise the empty set.
Attributes
Is tree
an application of caps.unsafe.unsafeAssumeSeparate
?
Is tree
an application of caps.unsafe.unsafeAssumeSeparate
?
Attributes
Report a separation failure in an application fn(args)
Report a separation failure in an application fn(args)
Value parameters
- clashing
-
the argument, function prefix, or entire function application result with which it clashes,
- fn
-
the function
- parts
-
the function prefix followed by the flattened argument list
- polyArg
-
the clashing argument to a polymorphic formal
Attributes
Report a use/definition failure, where a previously hidden capability is used again.
Report a use/definition failure, where a previously hidden capability is used again.
Value parameters
- clashing
-
the tree where the capability is previously hidden, or emptyTree if none exists
- hidden
-
the hidden set of the clashing def, or the global hidden set if no clashing def exists
- tree
-
the tree where the capability is used
- used
-
the uses of
tree
Attributes
Traverse tree
and perform separation checks everywhere
Traverse tree
and perform separation checks everywhere
Attributes
Inherited methods
Attributes
- Inherited from:
- TreeAccumulator
Attributes
- Inherited from:
- TreeAccumulator
Attributes
- Inherited from:
- TreeTraverser