PreDenotation

dotty.tools.dotc.core.Denotations.PreDenotation
abstract class PreDenotation

A PreDenotation represents a group of single denotations or a single multi-denotation It is used as an optimization to avoid forming MultiDenotations too eagerly.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Type members

Value members

Abstract methods

def aggregate[T](f: SingleDenotation => T, g: (T, T) => T): T

Map f over all single denotations and aggregate the results with g.

Map f over all single denotations and aggregate the results with g.

Attributes

protected def computeAsSeenFrom(pre: Type)(using Context): AsSeenFromResult

Group contains a denotation that refers to given symbol

Group contains a denotation that refers to given symbol

Attributes

A denotation in the group exists

A denotation in the group exists

Attributes

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.

Attributes

def filterWithFlags(required: FlagSet, excluded: FlagSet)(using Context): PreDenotation

Keep only those denotations in this group that have all of the flags in required, but none of the flags in excluded.

Keep only those denotations in this group that have all of the flags in required, but none of the flags in excluded.

Attributes

Keep only those denotations in this group which satisfy predicate p.

Keep only those denotations in this group which satisfy predicate p.

Attributes

First/last denotation in the group

First/last denotation in the group

Attributes

def mapInherited(ownDenots: PreDenotation, prevDenots: PreDenotation, pre: Type)(using Context): PreDenotation

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

  • M is not marked Private
  • If M has a unique symbol, it does not appear in prevDenots.
  • M's signature as seen from prefix 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.

Attributes

def matches(other: SingleDenotation)(using Context): Boolean

Group contains a denotation with the same signature as other

Group contains a denotation with the same signature as other

Attributes

def toDenot(pre: Type)(using Context): Denotation

Convert to full denotation by &-ing all elements

Convert to full denotation by &-ing all elements

Attributes

Concrete methods

The denotation with info(s) as seen from prefix type

The denotation with info(s) as seen from prefix type

Attributes

The union of two groups.

The union of two groups.

Attributes