ImplicitSearch

class ImplicitSearch(val pt: Type, val argument: Tree, span: Span)(using x$4: Context)

An implicit search; parameters as in inferImplicit

class Object
trait Matchable
class Any

Value members

Concrete methods

All available implicits, without ranking

All available implicits, without ranking

Find a unique best implicit reference

Find a unique best implicit reference

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.

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.

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

Concrete fields

Fields needed for divergence checking

Fields needed for divergence checking

The expected type where parameters and uninstantiated typevars are replaced by wildcard types

The expected type where parameters and uninstantiated typevars are replaced by wildcard types