SingleApply

made.DoneOperation.SingleApply
trait SingleApply extends DoneOperation

Mix-in providing an ergonomic apply(outer, arg) shortcut for operations with exactly one input. The self-type refinement requires the mixing class to have Args = Arg *: EmptyTuple.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Self type
DoneOperation { type Args = Arg *: EmptyTuple; }

Members list

Type members

Types

type Arg

Inherited types

final type Args = Map[InputElems, ExtractOf]

Attributes

Inherited from:
DoneOperation

Inherited and Abstract types

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

Inherited from:
DoneOperation
type Label <: String

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

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

Attributes

Inherited from:
DoneOperation
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

Inherited from:
DoneOperation
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

Inherited from:
DoneOperation
type OutputType

The return type of the operation.

The return type of the operation.

Attributes

Inherited from:
DoneOperation
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

Inherited from:
DoneOperation
type Type

Attributes

Inherited from:
DoneOperation

Value members

Concrete methods

final def apply(outer: OuterType, arg: Arg): OutputType

Inherited and 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

Inherited from:
DoneOperation

Attributes

Inherited from:
DoneOperation

Givens

Inherited givens

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

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

Attributes

Inherited from:
DoneOperation

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

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

Attributes

Inherited from:
DoneOperation