Form a denotation by conjoining with denotation that
.
Form a denotation by conjoining with denotation that
.
NoDenotations are dropped. MultiDenotations are handled by merging parts with same signatures. SingleDenotations with equal signatures are joined as follows:
In a first step, consider only those denotations which have symbols
that are accessible from prefix pre
.
If there are several such denotations, try to pick one by applying the following three precedence rules in decreasing order of priority:
If there is exactly one (preferred) accessible denotation, return it.
If there is no preferred accessible denotation, return a JointRefDenotation
with one of the operand symbols (unspecified which one), and an info which
is the intersection (using &
or safe_&
if safeIntersection
is true)
of the infos of the operand denotations.
If SingleDenotations with different signatures are joined, return NoDenotation.
The denotation made up from the alternatives of this denotation that
are accessible from prefix pre
, or NoDenotation if no accessible alternative exists.
The denotation made up from the alternatives of this denotation that
are accessible from prefix pre
, or NoDenotation if no accessible alternative exists.
The set of alternative single-denotations making up this denotation
The set of alternative single-denotations making up this denotation
The alternatives of this denotation that satisfy the predicate p
.
The alternatives of this denotation that satisfy the predicate p
.
The denotation with info(s) as seen from prefix type
The denotation with info(s) as seen from prefix type
Resolve overloaded denotation to pick the ones with the given signature
when seen from prefix site
.
Resolve overloaded denotation to pick the ones with the given signature
when seen from prefix site
.
When true, consider only parameter signatures for a match.
If this is a SingleDenotation, return it, otherwise throw a TypeError
If this is a SingleDenotation, return it, otherwise throw a TypeError
Group contains a denotation that refers to given symbol
Group contains a denotation that refers to given symbol
The period (interval of phases) for which there exists a valid denotation in this flock.
The period (interval of phases) for which there exists a valid denotation in this flock.
The variant of this denotation that's current in the given context.
The variant of this denotation that's current in the given context.
If no such denotation exists: If Mode.FutureDefs is set, the
denotation with each alternative at its first point of definition,
otherwise a NotDefinedHere
exception is thrown.
Produce a denotation that is valid for the given context.
Produce a denotation that is valid for the given context. Usually called when !(validFor contains ctx.period) (even though this is not a precondition). If the runId of the context is the same as runId of this denotation, the right flock member is located, or, if it does not exist yet, created by invoking a transformer (@See Transformers). If the runId's differ, but this denotation is a SymDenotation and its toplevel owner class or module is still a member of its enclosing package, then the whole flock is brought forward to be valid in the new runId. Otherwise the symbol is stale, which constitutes an internal error.
If this denotation is overloaded, filter with given predicate.
If this denotation is overloaded, filter with given predicate. If result is still overloaded throw a TypeError. Note: disambiguate is slightly different from suchThat in that single-denotations that do not satisfy the predicate are left alone (whereas suchThat would map them to NoDenotation).
A denotation in the group exists
A denotation in the group exists
A fallback text representation, if the pattern matching in Printers does not have a case for this showable element
A fallback text representation, if the pattern matching in Printers does not have a case for this showable element
Keep only those denotations in this group which have a signature
that's not already defined by denots
.
Keep only those denotations in this group which have a signature
that's not already defined by denots
.
Keep only those denotations in this group whose flags do not intersect
with excluded
.
Keep only those denotations in this group whose flags do not intersect
with excluded
.
Keep only those denotations in this group which satisfy predicate p
.
Keep only those denotations in this group which satisfy predicate p
.
Find member of this denotation with given name and
produce a denotation that contains the type of the member
as seen from given prefix pre
.
Find member of this denotation with given name and
produce a denotation that contains the type of the member
as seen from given prefix pre
. Exclude all members that have
flags in excluded
from consideration.
First/last denotation in the group
First/last denotation in the group
Does this denotation have an alternative that satisfies the predicate p
?
Does this denotation have an alternative that satisfies the predicate p
?
The type info of the denotation, exists only for non-overloaded denotations
The type info of the denotation, exists only for non-overloaded denotations
The type info, or, if this is a SymDenotation where the symbol is not yet completed, the completer
The type info, or, if this is a SymDenotation where the symbol is not yet completed, the completer
The version of this SingleDenotation that was valid in the first phase of this run.
The version of this SingleDenotation that was valid in the first phase of this run.
Install this denotation to be the result of the given denotation transformer.
Install this denotation to be the result of the given denotation transformer. This is the implementation of the same-named method in SymDenotations. It's placed here because it needs access to private fields of SingleDenotation.
Invalidate all caches and fields that depend on base classes and their contents
Invalidate all caches and fields that depend on base classes and their contents
Is this denotation overloaded?
Is this denotation overloaded?
Is this a reference to a term symbol?
Is this a reference to a term symbol?
Is this a reference to a type symbol?
Is this a reference to a type symbol?
A denotation with the info of this denotation transformed using f
A denotation with the info of this denotation transformed using f
Keep only those inherited members M of this predenotation for which the following is true
Keep only those inherited members M of this predenotation for which the following is true
prevDenots
.pre
does not appear in ownDenots
Return the denotation as seen from pre
.
Called from SymDenotations.computeMember. There, ownDenots
are the denotations found in
the base class, which shadow any inherited denotations with the same signature.
prevDenots
are the denotations that are defined in the class or inherited from
a base type which comes earlier in the linearization.
Group contains a denotation with given signature
Group contains a denotation with given signature
The alternative of this denotation that has a type matching targetType
when seen
as a member of type site
, NoDenotation
if none exists.
The alternative of this denotation that has a type matching targetType
when seen
as a member of type site
, NoDenotation
if none exists.
The NamedType representing this denotation at its original location.
The NamedType representing this denotation at its original location.
Same as either typeRef
or termRefWithSig
depending whether this denotes a type or not.
The next SingleDenotation in this run, with wrap-around from last to first.
The next SingleDenotation in this run, with wrap-around from last to first.
There may be several SingleDenotation
s with different validity
representing the same underlying definition at different phases.
These are called a "flock". Flock members are generated by
If this denotation does not exist, fallback to alternative
If this denotation does not exist, fallback to alternative
Return symbol in this denotation that satisfies the given predicate.
Return symbol in this denotation that satisfies the given predicate.
if generateStubs is specified, return a stubsymbol if denotation is a missing ref.
Throw a TypeError
if predicate fails to disambiguate symbol or no alternative matches.
The string representation of this showable element.
The string representation of this showable element.
Show declaration string; useful for showing declarations as seen from subclasses.
Show declaration string; useful for showing declarations as seen from subclasses.
The summarized string representation of this showable element.
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
The signature of the denotation.
The signature of the denotation.
The unique alternative of this denotation that satisfies the predicate p
,
or NoDenotation if no satisfying alternative exists.
The unique alternative of this denotation that satisfies the predicate p
,
or NoDenotation if no satisfying alternative exists.
TypeError
if there is at more than one alternative that satisfies p
.
The referencing symbol, or NoSymbol is none exists
The referencing symbol, or NoSymbol is none exists
For ClassDenotations only: If caches influenced by parent classes are still valid, the denotation itself, otherwise a freshly initialized copy.
For ClassDenotations only: If caches influenced by parent classes are still valid, the denotation itself, otherwise a freshly initialized copy.
The TermRef representing this term denotation at its original location.
The TermRef representing this term denotation at its original location.
The TermRef representing this term denotation at its original location at the denotation's signature.
The TermRef representing this term denotation at its original location at the denotation's signature.
Unlike valRef
and termRef
, this will force the completion of the
denotation via a call to info
.
Convert to full denotation by &-ing all elements
Convert to full denotation by &-ing all elements
The text representation of this showable element.
The text representation of this showable element. This normally dispatches to a pattern matching method in Printers.
Apply a transformation f
to all denotations in this group that start at or after
given phase.
Apply a transformation f
to all denotations in this group that start at or after
given phase. Denotations are replaced while keeping the same validity periods.
The TypeRef representing this type denotation at its original location.
The TypeRef representing this type denotation at its original location.
The union of two groups.
The union of two groups.
Throws an UnsupportedOperationException
with the given method name.
Throws an UnsupportedOperationException
with the given method name.
The TermRef representing this term denotation at its original location
and at signature NotAMethod
.
The TermRef representing this term denotation at its original location
and at signature NotAMethod
.
The period during which this denotation is valid.
The period during which this denotation is valid.
Form a choice between this denotation and that one.
Form a choice between this denotation and that one.
The prefix type of the members of the denotation, used to determine an accessible symbol if it exists.
An error denotation that provides more info about alternatives that were found but that do not qualify. Produced by staticRef, consumed by requiredSymbol.