dotty.tools.dotc.typer

SearchHistory

Related Doc: package typer

class SearchHistory extends AnyRef

Records the history of currently open implicit searches

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. SearchHistory
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new SearchHistory(searchDepth: Int, seen: Map[ClassSymbol, Int])

    searchDepth

    The number of open searches.

    seen

    A map that records for each class symbol of a type that's currently searched for the complexity of the type that is searched for (wrt typeSize). The map is populated only once searchDepth is greater than the threshold given in the XminImplicitSearchDepth setting.

Value Members

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

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

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  5. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  10. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  11. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  12. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  13. def nest(proto: Type)(implicit ctx: Context): SearchHistory

    Check for possible divergence.

    Check for possible divergence. If one is detected return the current search history (this will be used as a criterion to abandon the implicit search in rankImplicits). If no divergence is detected, produce a new search history nested in the current one which records that we are now also looking for type proto.

    As long as searchDepth is lower than the XminImplicitSearchDepth value in settings, a new history is always produced, so the implicit search is always undertaken. If searchDepth matches or exceeds the XminImplicitSearchDepth value, we test that the new search is for a class that is either not yet in the set of seen classes, or the complexity of the type proto being searched for is strictly lower than the complexity of the type that was previously encountered and that had the same class symbol as proto. A possible divergence is detected if that test fails.

  14. final def notify(): Unit

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

    Definition Classes
    AnyRef
  16. val searchDepth: Int

    The number of open searches.

  17. val seen: Map[ClassSymbol, Int]

    A map that records for each class symbol of a type that's currently searched for the complexity of the type that is searched for (wrt typeSize).

    A map that records for each class symbol of a type that's currently searched for the complexity of the type that is searched for (wrt typeSize). The map is populated only once searchDepth is greater than the threshold given in the XminImplicitSearchDepth setting.

  18. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  19. def toString(): String

    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped