scala.caps
Members list
Type members
Experimental classlikes
Carrier trait for capture set type parameters
Carrier trait for capture set type parameters
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
-
class Any
Base trait for classes that represent capabilities in the object-capability model.
Base trait for classes that represent capabilities in the object-capability model.
A capability is a value representing a permission, access right, resource or effect. Capabilities are typically passed to code as parameters; they should not be global objects. Often, they come with access restrictions such as scoped lifetimes or limited sharing.
An example is the Label class in scala.util.boundary. It represents a capability in the sense that it gives permission to break to the enclosing boundary represented by the Label
. It has a scoped lifetime, since breaking to a Label
after the associated boundary
was exited gives a runtime exception.
Capability has a formal meaning when Capture Checking is turned on. But even without capture checking, extending this trait can be useful for documenting the intended purpose of a class.
Capability has exactly two subtraits: Shared and Exclusive.
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
-
class Any
- Known subtypes
-
trait ExclusiveCapabilitytrait Mutabletrait Readtrait Existstrait SharedCapabilitytrait Controlclass CanThrow[E]object capShow all
A marker trait for classifier capabilities that can appear in .only
qualifiers. Capability classes directly extending Classifier
are treated as classifier capbilities
A marker trait for classifier capabilities that can appear in .only
qualifiers. Capability classes directly extending Classifier
are treated as classifier capbilities
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
- Known subtypes
-
trait Controlclass CanThrow[E]trait ExclusiveCapabilitytrait Mutabletrait Readtrait SharedCapabilityShow all
A type constraint expressing that the capture set C
needs to contain the capability R
A type constraint expressing that the capture set C
needs to contain the capability R
Attributes
- Companion
- object
- Experimental
- true
- Source
- package.scala
- Supertypes
Base trait for capabilities that capture some continuation or return point in the stack. Examples are exceptions, labels, Async, CanThrow.
Base trait for capabilities that capture some continuation or return point in the stack. Examples are exceptions, labels, Async, CanThrow.
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
-
trait SharedCapabilitytrait Classifiertrait Capabilityclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
class CanThrow[E]
Marker trait for exclusive capabilities that are separation-checked
Marker trait for exclusive capabilities that are separation-checked
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
- Known subtypes
A trait that used to allow expressing existential types. Replaced by root.Result instances.
A trait that used to allow expressing existential types. Replaced by root.Result instances.
Attributes
- Deprecated
- true
- Experimental
- true
- Source
- package.scala
- Supertypes
Marker trait for classes with methods that require an exclusive reference.
Marker trait for classes with methods that require an exclusive reference.
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
-
trait ExclusiveCapabilitytrait Classifiertrait Capabilityclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
trait Read
Marker trait for classes with reader methods, typically extended by Mutable classes
Marker trait for classes with reader methods, typically extended by Mutable classes
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
-
trait Mutabletrait ExclusiveCapabilitytrait Classifiertrait Capabilityclass Objecttrait Matchableclass AnyShow all
Marker trait for capabilities that can be safely shared in a concurrent context. During separation checking, shared capabilities are not taken into account.
Marker trait for capabilities that can be safely shared in a concurrent context. During separation checking, shared capabilities are not taken into account.
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
- Known subtypes
The universal capture reference.
The universal capture reference.
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
- Self type
-
cap.type
An annotations on parameters and update methods. On a parameter it states that any capabilties passed in the argument are no longer available afterwards, unless they are of class SharableCapabilitty
. On an update method, it states that the this
of the enclosing class is consumed, which means that any capabilities of the method prefix are no longer available afterwards.
An annotations on parameters and update methods. On a parameter it states that any capabilties passed in the argument are no longer available afterwards, unless they are of class SharableCapabilitty
. On an update method, it states that the this
of the enclosing class is consumed, which means that any capabilities of the method prefix are no longer available afterwards.
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
- Self type
-
internal.type
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes
- Self type
-
unsafe.type
An annotation on parameters x
stating that the method's body makes use of the reach capability x*
. Consequently, when calling the method we need to charge the deep capture set of the actual argiment to the environment.
An annotation on parameters x
stating that the method's body makes use of the reach capability x*
. Consequently, when calling the method we need to charge the deep capture set of the actual argiment to the environment.
Note: This should go into annotations. For now it is here, so that we can experiment with it quickly between minor releases
Attributes
- Experimental
- true
- Source
- package.scala
- Supertypes