dotty.tools.dotc.core.Denotations

MultiDenotation

Related Doc: package Denotations

case class MultiDenotation(denot1: Denotation, denot2: Denotation) extends Denotation with Product with Serializable

An overloaded denotation consisting of the alternatives of both given denotations.

Linear Supertypes
Serializable, Serializable, Product, Equals, Denotation, Showable, DotClass, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. MultiDenotation
  2. Serializable
  3. Serializable
  4. Product
  5. Equals
  6. Denotation
  7. Showable
  8. DotClass
  9. AnyRef
  10. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new MultiDenotation(denot1: Denotation, denot2: Denotation)

Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. def &(that: Denotation, pre: Type, safeIntersection: Boolean = false)(implicit ctx: Context): 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 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:

    1. Prefer denotations with more specific infos. 2. If infos are equally specific, prefer denotations with concrete symbols over denotations with abstract symbols. 3. If infos are equally specific and symbols are equally concrete, prefer denotations with symbols defined in subclasses over denotations with symbols defined in proper superclasses.

    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.

    Definition Classes
    Denotation
  4. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  5. def accessibleFrom(pre: Type, superAccess: Boolean)(implicit ctx: Context): Denotation

    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.

    Definition Classes
    MultiDenotationDenotation
  6. final def alternatives: List[SingleDenotation]

    The set of alternative single-denotations making up this denotation

    The set of alternative single-denotations making up this denotation

    Definition Classes
    Denotation
  7. def altsWith(p: (Symbol) ⇒ Boolean): List[SingleDenotation]

    The alternatives of this denotation that satisfy the predicate p.

    The alternatives of this denotation that satisfy the predicate p.

    Definition Classes
    MultiDenotationDenotation
  8. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  9. final def asSingleDenotation: SingleDenotation

    Definition Classes
    Denotation
  10. final def asSymDenotation: SymDenotation

    Definition Classes
    Denotation
  11. def atSignature(sig: Signature, site: Type, relaxed: Boolean)(implicit ctx: Context): Denotation

    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.

    relaxed

    When true, consider only parameter signatures for a match.

    Definition Classes
    MultiDenotationDenotation
  12. def checkUnique(implicit ctx: Context): SingleDenotation

    If this is a SingleDenotation, return it, otherwise throw a TypeError

    If this is a SingleDenotation, return it, otherwise throw a TypeError

    Definition Classes
    Denotation
  13. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  14. def current(implicit ctx: Context): Denotation

    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.

    Definition Classes
    MultiDenotationDenotation
  15. def currentIfExists(implicit ctx: Context): Denotation

    The variant of this denotation that's current in the given context, or NotDefinedHereDenotation if this denotation does not exist at current phase, but is defined elsewhere in this run.

    The variant of this denotation that's current in the given context, or NotDefinedHereDenotation if this denotation does not exist at current phase, but is defined elsewhere in this run.

    Definition Classes
    MultiDenotationDenotation
  16. val denot1: Denotation

  17. val denot2: Denotation

  18. def derivedMultiDenotation(d1: Denotation, d2: Denotation): MultiDenotation

  19. def disambiguate(p: (Symbol) ⇒ Boolean)(implicit ctx: Context): SingleDenotation

    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).

    Definition Classes
    Denotation
  20. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. def exists: Boolean

    Is this denotation different from NoDenotation or an ErrorDenotation?

    Is this denotation different from NoDenotation or an ErrorDenotation?

    Definition Classes
    Denotation
  22. def fallbackToText(printer: Printer): Text

    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

    Definition Classes
    Showable
  23. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  24. def findMember(name: Name, pre: Type, excluded: FlagSet)(implicit ctx: Context): Denotation

    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.

    Definition Classes
    Denotation
  25. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  26. def hasAltWith(p: (SingleDenotation) ⇒ Boolean): Boolean

    Does this denotation have an alternative that satisfies the predicate p?

    Does this denotation have an alternative that satisfies the predicate p?

    Definition Classes
    MultiDenotationDenotation
  27. final def info(implicit ctx: Context): Nothing

    The type info of the denotation, exists only for non-overloaded denotations

    The type info of the denotation, exists only for non-overloaded denotations

    Definition Classes
    MultiDenotationDenotation
  28. final def infoOrCompleter: Nothing

    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

    Definition Classes
    MultiDenotationDenotation
  29. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  30. final def isOverloaded: Boolean

    Is this denotation overloaded?

    Is this denotation overloaded?

    Definition Classes
    Denotation
  31. def isTerm: Boolean

    Is this a reference to a term symbol?

    Is this a reference to a term symbol?

    Definition Classes
    Denotation
  32. final def isType: Boolean

    Is this a reference to a type symbol?

    Is this a reference to a type symbol?

    Definition Classes
    MultiDenotationDenotation
  33. def mapInfo(f: (Type) ⇒ Type)(implicit ctx: Context): Denotation

    A denotation with the info of this denotation transformed using f

    A denotation with the info of this denotation transformed using f

    Definition Classes
    MultiDenotationDenotation
  34. def matchingDenotation(site: Type, targetType: Type)(implicit ctx: Context): SingleDenotation

    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.

    Definition Classes
    Denotation
  35. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  36. final def notify(): Unit

    Definition Classes
    AnyRef
  37. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  38. final def orElse(that: ⇒ Denotation): Denotation

    If this denotation does not exist, fallback to alternative

    If this denotation does not exist, fallback to alternative

    Definition Classes
    Denotation
  39. def requiredClass(name: PreName)(implicit ctx: Context): ClassSymbol

    Definition Classes
    Denotation
  40. def requiredMethod(name: PreName, argTypes: List[Type])(implicit ctx: Context): TermSymbol

    Definition Classes
    Denotation
  41. def requiredMethod(name: PreName)(implicit ctx: Context): TermSymbol

    Definition Classes
    Denotation
  42. def requiredMethodRef(name: PreName, argTypes: List[Type])(implicit ctx: Context): TermRef

    Definition Classes
    Denotation
  43. def requiredMethodRef(name: PreName)(implicit ctx: Context): TermRef

    Definition Classes
    Denotation
  44. def requiredSymbol(p: (Symbol) ⇒ Boolean, source: AbstractFile = null, generateStubs: Boolean = true)(implicit ctx: Context): Symbol

    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.

    Definition Classes
    Denotation
  45. def requiredValue(name: PreName)(implicit ctx: Context): TermSymbol

    Definition Classes
    Denotation
  46. def requiredValueRef(name: PreName)(implicit ctx: Context): TermRef

    Definition Classes
    Denotation
  47. def show(implicit ctx: Context): String

    The string representation of this showable element.

    The string representation of this showable element.

    Definition Classes
    Showable
  48. def showSummary(implicit ctx: Context): String

    Definition Classes
    Showable
  49. def showSummary(depth: Int)(implicit ctx: Context): String

    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.

    Definition Classes
    Showable
  50. final def signature(implicit ctx: Context): Signature

    The signature of the denotation.

    The signature of the denotation.

    Definition Classes
    MultiDenotationDenotation
  51. def suchThat(p: (Symbol) ⇒ Boolean)(implicit ctx: Context): SingleDenotation

    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.

    Definition Classes
    MultiDenotationDenotation
    Exceptions thrown

    TypeError if there is at more than one alternative that satisfies p.

  52. val symbol: Symbol

    The referencing symbol, or NoSymbol is none exists

    The referencing symbol, or NoSymbol is none exists

    Definition Classes
    Denotation
  53. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  54. def toString(): String

    Definition Classes
    MultiDenotation → AnyRef → Any
  55. def toText(printer: Printer): Text

    The text representation of this showable element.

    The text representation of this showable element. This normally dispatches to a pattern matching method in Printers.

    Definition Classes
    DenotationShowable
  56. def unsupported(methodName: String): Nothing

    Throws an UnsupportedOperationException with the given method name.

    Throws an UnsupportedOperationException with the given method name.

    Definition Classes
    DotClass
  57. final def validFor: Period

    The period during which this denotation is valid.

    The period during which this denotation is valid.

    Definition Classes
    MultiDenotationDenotation
  58. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  59. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  60. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  61. def |(that: Denotation, pre: Type)(implicit ctx: Context): Denotation

    Form a choice between this denotation and that one.

    Form a choice between this denotation and that one.

    pre

    The prefix type of the members of the denotation, used to determine an accessible symbol if it exists.

    Definition Classes
    Denotation

Inherited from Serializable

Inherited from Serializable

Inherited from Product

Inherited from Equals

Inherited from Denotation

Inherited from Showable

Inherited from DotClass

Inherited from AnyRef

Inherited from Any

Ungrouped