MissingRef
An error denotation that provides more info about the missing reference. Produced by staticRef, consumed by requiredSymbol.
Type members
Inherited types
Value members
Inherited methods
The set of alternative single-denotations making up this denotation
The set of alternative single-denotations making up this denotation
- Inherited from:
- Denotation
The denotation with info(s) as seen from prefix type
The denotation with info(s) as seen from prefix type
- Inherited from:
- PreDenotation
- Inherited from:
- SingleDenotation
If this is a SingleDenotation, return it, otherwise throw a TypeError
If this is a SingleDenotation, return it, otherwise throw a TypeError
- Inherited from:
- Denotation
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.
- Inherited from:
- SingleDenotation
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.
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.
- Inherited from:
- SingleDenotation
- Inherited from:
- SingleDenotation
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).
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).
- Inherited from:
- Denotation
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
- Inherited from:
- Showable
Find member of this denotation with given name
, all required
flags and no excluded
flag, 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
, all required
flags and no excluded
flag, and produce a denotation that contains the type of the member
as seen from given prefix pre
.
- Inherited from:
- Denotation
The type info. The info is an instance of TypeType iff this is a type denotation Uncompleted denotations set myInfo to a LazyType.
The type info. The info is an instance of TypeType iff this is a type denotation Uncompleted denotations set myInfo to a LazyType.
- Inherited from:
- Denotation
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.
- Inherited from:
- SingleDenotation
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.
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.
- Inherited from:
- 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
- Inherited from:
- SingleDenotation
True if the info of this denotation comes from a refinement.
True if the info of this denotation comes from a refinement.
- Inherited from:
- SingleDenotation
Is this a reference to a term symbol?
Is this a reference to a term symbol?
- Inherited from:
- Denotation
- Inherited from:
- SingleDenotation
matches
without a target name check.
matches
without a target name check.
For definitions coming from different languages, we pick a common language to compute their signatures. This allows us for example to override some Java definitions from Scala even if they have a different erasure (see i8615b, i9109b), Erasure takes care of adding any necessary bridge to make this work at runtime.
- Inherited from:
- SingleDenotation
The alternative of this denotation that has a type matching targetType
when seen
as a member of type site
and that has a target name matching targetName
, or
NoDenotation
if none exists.
The alternative of this denotation that has a type matching targetType
when seen
as a member of type site
and that has a target name matching targetName
, or
NoDenotation
if none exists.
- Inherited from:
- Denotation
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 by following this sequence of steps:
- If exactly one the denotations has an inaccessible symbol, pick the other one.
- Otherwise, if one of the infos overrides the other one, and the associated symbol does not score strictly lower than the other one, pick the associated denotation.
- Otherwise, if the two infos can be combined with
infoMeet
, pick that as result info, and pick the symbol that scores higher as result symbol, or picksym1
as a tie breaker. The picked info and symbol are combined in a JointDenotation. - Otherwise, if one of the two symbols scores strongly higher than the other one, pick the associated denotation.
- Otherwise return a multi-denotation consisting of both denotations.
Symbol scoring is determined according to the following ranking where earlier criteria trump later ones. Cases marked with (*) give a strong score advantage, the others a weak one.
- The symbol exists, and the other one does not. (*)
- The symbol is not a bridge, but the other one is. (*)
- The symbol is concrete, and the other one is deferred
- The symbol appears before the other in the linearization of
pre
- The symbol's visibility is strictly greater than the other one's.
- The symbol is a method, but the other one is not.
- Inherited from:
- Denotation
If this denotation does not exist, fallback to alternative
If this denotation does not exist, fallback to alternative
- Inherited from:
- Denotation
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.
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.
- Inherited from:
- Denotation
The string representation of this showable element.
The string representation of this showable element.
- Inherited from:
- Showable
Show declaration string; useful for showing declarations as seen from subclasses.
Show declaration string; useful for showing declarations as seen from subclasses.
- Inherited from:
- SingleDenotation
The string representation with each line after the first one indented by the given given margin (in spaces).
The string representation with each line after the first one indented by the given given margin (in spaces).
- Inherited from:
- Showable
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
- Inherited from:
- Showable
Overload of signature
which lets the caller pick the language used
to compute the signature of the info. Useful to match denotations defined in
different classes (see matchesLoosely
).
Overload of signature
which lets the caller pick the language used
to compute the signature of the info. Useful to match denotations defined in
different classes (see matchesLoosely
).
- Inherited from:
- SingleDenotation
For SymDenotations, the language-specific signature of the info, depending on where the symbol is defined. For non-SymDenotations, the Scala 3 signature.
For SymDenotations, the language-specific signature of the info, depending on where the symbol is defined. For non-SymDenotations, the Scala 3 signature.
Invariants:
- Before erasure, the signature of a denotation is always equal to the signature of its corresponding initial denotation.
- Two distinct overloads will have SymDenotations with distinct signatures (the SELECTin tag in Tasty relies on this to refer to an overload unambiguously). Note that this only applies to SymDenotations, in general we cannot assume that distinct SingleDenotations will have distinct signatures (cf #9050).
- Inherited from:
- SingleDenotation
Skip any denotations that have been removed by an installAfter or that are otherwise undefined.
Skip any denotations that have been removed by an installAfter or that are otherwise undefined.
- Inherited from:
- SingleDenotation
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.
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.
- Inherited from:
- SingleDenotation
Inherited fields
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
- Inherited from:
- SingleDenotation