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 capability x.type
the set {x, x*}
otherwise the empty set.
If tp
denotes some version of a singleton capability 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
Should separatiion checking be disabled for the body of this method?
Should separatiion checking be disabled for the body of this method?
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