DoneOperation

made.DoneOperation
See theDoneOperation companion object
sealed trait DoneOperation

Element representing a single operation (field or method) in a Done mirror.

Each entry in Done.Operations is a DoneOperation describing one member of the mirrored type: its label, metadata, input parameters, and output type. Methods with multiple parameter lists are flattened into a single InputElems tuple.

Attributes

See also
Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait EmptyApply
trait SingleApply

Members list

Type members

Types

final type Args = Map[InputElems, ExtractOf]
type InputElems <: Tuple

Tuple of InputElem subtypes describing the operation's parameters, in declaration order.

Tuple of InputElem subtypes describing the operation's parameters, in declaration order.

Attributes

type Label <: String

The member name (or the override provided by @name).

The member name (or the override provided by @name).

Attributes

type Metadata <: Tuple

Annotation metadata on the member, represented as a Tuple of Meta @ann entries. EmptyTuple when no MetaAnnotation annotations are present.

Annotation metadata on the member, represented as a Tuple of Meta @ann entries. EmptyTuple when no MetaAnnotation annotations are present.

Attributes

type OuterType

The enclosing type that declares this operation — equals Done.Type of the parent Done mirror.

The enclosing type that declares this operation — equals Done.Type of the parent Done mirror.

Attributes

type OutputType

The return type of the operation.

The return type of the operation.

Attributes

type ParamLists <: Tuple

Per-parameter-list arities, as a tuple of singleton Int types. Distinguishes method shapes that InputElems alone cannot:

Per-parameter-list arities, as a tuple of singleton Int types. Distinguishes method shapes that InputElems alone cannot:

  • no-parens def f / val => EmptyTuple (zero param lists)
  • empty-parens def f() => 0 *: EmptyTuple (one empty param list)
  • def f(a)(b, c) => 1 *: 2 *: EmptyTuple InputElems stays flattened; ParamLists records the list boundaries so dispatch can reconstruct them. (Phase 1 representation; full tuple-of-tuples is deferred.)

Attributes

type Type

Value members

Abstract methods

def apply(outer: OuterType, args: Args): OutputType

Invokes the underlying member on an instance of the enclosing type.

Invokes the underlying member on an instance of the enclosing type.

Arguments in args correspond positionally to InputElems (multiple parameter lists are flattened). Each argument is unboxed via asInstanceOf to its declared parameter type, so supplying a value of the wrong type will fail at runtime.

Value parameters

args

the positional arguments, in InputElems order

outer

the instance on which to invoke the member

Attributes

Givens

Givens

Path-dependent evidence that InputElems is a tuple of InputElems.

Path-dependent evidence that InputElems is a tuple of InputElems.

Attributes

Path-dependent evidence that Metadata is a tuple of Meta entries.

Path-dependent evidence that Metadata is a tuple of Meta entries.

Attributes