A tree that fully encloses this scope.
A tree that fully encloses this scope.
Traverses the scope tree from inner to outer and returns
the innermost scope, that is visible from pos
.
Traverses the scope tree from inner to outer and returns
the innermost scope, that is visible from pos
.
Traverses the scope tree from inner to outer and returns
the innermost scope, that is visible from t
.
Traverses the scope tree from inner to outer and returns
the innermost scope, that is visible from t
.
Is s
visible in this scope, but not in outerScope
?
Is s
visible in this scope, but not in outerScope
?
Symbols from which we know that they are visible in this scope.
Symbols from which we know that they are visible in this scope.
Returns a list of visible symbols whose name is equal
to name
.
Returns a list of visible symbols whose name is equal
to name
.
TODO: Handle symbols from other CUs
A scope that contains this scope in the "physical" structure.
A scope that contains this scope in the "physical" structure.
The outermost scope known.
The outermost scope known. Usually the package scope of the CU.
Returns a name based on preferred
that does not collide
with other visible symbols.
Returns a name based on preferred
that does not collide
with other visible symbols.
Is s
visible (and accessible) from this scope?
Is s
visible (and accessible) from this scope?
Scopes that are visible from this scope.
Scopes that are visible from this scope.
Returns a copy of this scope with syms
registered as known
symbols.
Returns a copy of this scope with syms
registered as known
symbols. Also propagates all symbols of syms
, that are not introduces
in this scope to outerScope
.
Register symbols as known symbols increases the performance of sees(s)
and helps to reduce the number of false negatives. This is because it is
easier to determine if a symbol is introduced by a scope than if it is
not introduced by it.
Traits, classes, objects and packages are transformed to MemberScopes.
MemberScopes are not structure sensitive. Therefore a member is also visible at positions before its definition.