Resources
-
Supertype: Restricted Resource:
-
Not
AnyResource
:-
A restricted resource type
T{Us}
is a subtype of a restricted resource typeV{Ws}
:-
When
T != AnyResource
: ifT == V
.Us
andWs
do not have to be subsets: The owner of the resource may freely restrict and unrestrict the resource.- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: if the run-time type isV
.- Static: No
- Dynamic: Yes
-
-
An unrestricted resource type
T
is a subtype of a restricted resource typeU{Vs}
:-
When
T != AnyResource
: ifT == U
.The owner of the resource may freely restrict the resource.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: if the run-time type isU
.- Static: No
- Dynamic: Yes
-
-
-
AnyResource
:-
A restricted resource type
T{Us}
is a subtype of a restricted resource typeAnyResource{Vs}
:-
When
T != AnyResource
: ifT
conforms toVs
.Us
andVs
do not have to be subsets.- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
:- Static: if
Vs
is a subset ofUs
- Dynamic: if the run-time type conforms to
Vs
- Static: if
-
-
An unrestricted resource type
T
is a subtype of a restricted resource typeAnyResource{Us}
:-
When
T != AnyResource
: ifT
conforms toUs
.- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: if the run-time type conforms toUs
.- Static: No
- Dynamic: Yes
-
-
-
-
Supertype: Unrestricted Resource:
-
Not
AnyResource
:-
A restricted resource type
T{Us}
is a subtype of an unrestricted resource typeV
:-
When
T != AnyResource
: ifT == V
.The owner of the resource may freely unrestrict the resource.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: if the run-time type isV
.- Static: No
- Dynamic: Yes
-
-
An unrestricted resource type
T
is a subtype of an unrestricted resource typeV
: ifT == V
.- Static: Yes
- Dynamic: Yes
-
-
AnyResource
-
A restricted resource type
T{Us}
or unrestricted resource typeT
is a subtype of the typeAnyResource
: always.- Static: Yes
- Dynamic: Yes
-
-
References
-
Authorized
An authorized reference type
auth &T
is a subtype of an unauthorized reference type&U
or an authorized reference typeauth &U
ifT
is a subtype ofU
.- Static: Yes
- Dynamic: Yes
-
Unauthorized
-
An unauthorized reference type
&T
is a subtype of an authorized reference typeauth &T
: never.The holder of the reference may not gain more permissions.
- Static: No
- Dynamic: No
-
Supertype: Reference to Restricted Resource
-
Not
AnyResource
:-
An unauthorized reference to a restricted resource type
&T{Us}
is a subtype of a reference to a restricted resource type&V{Ws}
:-
When
T != AnyResource
: ifT == V
andWs
is a subset ofUs
.The holder of the reference may not gain more permissions or knowledge and may only further restrict the reference to the resource.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
-
An unauthorized reference to an unrestricted resource type
&T
is a subtype of a reference to a restricted resource type&U{Vs}
:-
When
T != AnyResource
: ifT == U
.The holder of the reference may only further restrict the reference.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
-
-
AnyResource
:-
An unauthorized reference to a restricted resource type
&T{Us}
is a subtype of a reference to a restricted resource type&AnyResource{Vs}
: ifVs
is a subset ofUs
.The holder of the reference may only further restrict the reference.
The requirement for
T
to conform toVs
is implied by the subset requirement.- Static: Yes
- Dynamic: Yes
-
An unauthorized reference to an unrestricted resource type
&T
is a subtype of a reference to a restricted resource type&AnyResource{Us}
:-
When
T != AnyResource
: ifT
conforms toUs
.The holder of the reference may only restrict the reference.
- Static: Yes
- Dynamic: Yes
-
When
T == AnyResource
: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
-
-
-
Supertype: Unrestricted Resource:
-
Not
AnyResource
:-
An unauthorized reference to a restricted resource type
&T{Us}
is a subtype of a reference to an unrestricted resource type&V
: never.The holder of the reference may not gain more permissions or knowledge.
- Static: No
- Dynamic: No
-
An unauthorized reference to an unrestricted resource type
&T
is a subtype of a reference to an unrestricted resource type&V
: ifT == V
.- Static: Yes
- Dynamic: Yes
-
-
AnyResource
-
An unauthorized reference to a restricted resource type
&T{Us}
or to a unrestricted resource type&T
is a subtype of the type&AnyResource
: always.- Static: Yes
- Dynamic: Yes
-
-
-