ImplicitSearch

dotty.tools.dotc.typer.Implicits.ImplicitSearch
class ImplicitSearch(val pt: Type, val argument: Tree, span: Span)(using x$4: Context)

An implicit search; parameters as in inferImplicit

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Value members

Concrete methods

All available implicits, without ranking

All available implicits, without ranking

Attributes

Find a unique best implicit reference

Find a unique best implicit reference

Attributes

Check if the supplied candidate implicit and target type indicate a diverging implicit search.

Check if the supplied candidate implicit and target type indicate a diverging implicit search.

Value parameters

cand

The candidate implicit to be explored.

pt

The target type for the above candidate.

Attributes

Return the reference, if any, to a term under construction or already constructed in the current search history corresponding to the supplied target type.

Return the reference, if any, to a term under construction or already constructed in the current search history corresponding to the supplied target type.

A term is eligible if its type is a subtype of the target type and either it has already been constructed and is present in the current implicit dictionary, or it is currently under construction and is separated from the current search context by at least one by name argument position.

Note that because any suitable term found is defined as part of this search it will always be effectively in a more inner context than any other definition provided by explicit definitions. Consequently these terms have the highest priority and no other candidates need to be considered.

Value parameters

pt

The target type being searched for.

Attributes

def tryImplicit(cand: Candidate, contextual: Boolean): SearchResult

Try to type-check implicit reference, after checking that this is not a diverging search

Try to type-check implicit reference, after checking that this is not a diverging search

Attributes

Concrete fields

lazy val ptCoveringSet: Set[Symbol]

Fields needed for divergence checking

Fields needed for divergence checking

Attributes

lazy val ptSize: Int
lazy val wildPt: Type