ValDefModule

scala.quoted.Quotes.reflectModule.ValDefModule

Methods of the module object val ValDef

Attributes

Source:
Quotes.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Concise view

Value members

Abstract methods

def apply(symbol: Symbol, rhs: Option[Term]): ValDef

Create a value definition val x, var x or lazy val x with the signature defined in the symbol.

Create a value definition val x, var x or lazy val x with the signature defined in the symbol.

The rhs should return be Some containing the implementation of the method. Returns None the method has no implementation. Any definition directly inside the implementation should have symbol as owner.

Use Symbol.asQuotes to create the rhs using quoted code.

See also: Tree.changeOwner

Attributes

Source:
Quotes.scala
def copy(original: Tree)(name: String, tpt: TypeTree, rhs: Option[Term]): ValDef

Attributes

Source:
Quotes.scala
def let(owner: Symbol, name: String, rhs: Term)(body: Ref => Term): Term

Creates a block { val <name> = <rhs: Term>; <body(x): Term> }

Creates a block { val <name> = <rhs: Term>; <body(x): Term> }

Usage:

ValDef.let(owner, "x", rhs1) { x =>
  ValDef.let(x.symbol.owner, "y", rhs2) { y =>
    // use `x` and `y`
  }
}

Attributes

Source:
Quotes.scala
def let(owner: Symbol, terms: List[Term])(body: List[Ref] => Term): Term

Creates a block { val x1 = <terms(0): Term>; ...; val xn = <terms(n-1): Term>; <body(List(x1, ..., xn)): Term> }

Creates a block { val x1 = <terms(0): Term>; ...; val xn = <terms(n-1): Term>; <body(List(x1, ..., xn)): Term> }

Usage:

ValDef.let(owner, rhsList) { xs =>
   ...
}

Attributes

Source:
Quotes.scala

Attributes

Source:
Quotes.scala

Concrete methods

def let(owner: Symbol, rhs: Term)(body: Ref => Term): Term

Creates a block { val x = <rhs: Term>; <body(x): Term> }

Creates a block { val x = <rhs: Term>; <body(x): Term> }

Usage:

ValDef.let(owner, rhs1) { x =>
  ValDef.let(owner, rhs2) { y =>
    // use `x` and `y`
  }
}

Attributes

Source:
Quotes.scala