LookupTree

LookupTree is used to look up method definitions by argument types, although it's more general than that.

Author

Mark van Gulik

Parameters

Element

The kind of elements in the lookup tree, such as method definitions.

Result

What we expect to produce from a lookup activity, such as the tuple of most-specific matching method definitions for some arguments.

Inheritors

Constructors

Link copied to clipboard
constructor()

Properties

Link copied to clipboard
abstract val solutionOrNull: Result?

Answer the lookup solution (List of definitions at this leaf node, or null if this is not a leaf node.

Functions

Link copied to clipboard

Strengthen the type to a lookup tree suitable for method lookups.

Link copied to clipboard
abstract fun <AdaptorMemento> expandIfNecessary(signatureExtrasExtractor: (Element) -> Pair<A_Type?, List<A_Type>>, adaptor: LookupTreeAdaptor<Element, Result, AdaptorMemento>, numNaturalArgs: Int, memento: AdaptorMemento): DecisionStep<Element, Result>

If it has not already been computed, compute and cache the DecisionStep to use for making progress at this InternalLookupTree. Fail if this is not an InternalLookupTree.

Link copied to clipboard
open override fun toString(): String

abstract fun toString(indent: Int): String

Describe this LookupTree at a given indent level.