Inliner

dotty.tools.dotc.inlines.Inliner
See theInliner companion object
class Inliner(val call: Tree)(using x$2: Context)

Produces an inlined version of call via its inlined method.

Attributes

call

the original call to an inlineable method

rhsToInline

the body of the inlineable method that replaces the call.

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

Concise view

Type members

Classlikes

class InlineTyper(initialErrorCount: Int, nestingLevel: Int) extends ReTyper

A typer for inlined bodies. Beyond standard typing, an inline typer performs the following functions:

A typer for inlined bodies. Beyond standard typing, an inline typer performs the following functions:

  1. Implement constant folding over inlined code
  2. Selectively expand ifs with constant conditions
  3. Inline arguments that are by-name closures
  4. Make sure inlined code is type-correct.
  5. Make sure that the tree's typing is idempotent (so that future -Ycheck passes succeed)

Attributes

Graph
Supertypes
class ReTyper
class Typer
trait Deriving
trait Checking
trait Dynamic
trait Implicits
class Namer
class Object
trait Matchable
class Any

Value members

Concrete methods

def inlined(rhsToInline: Tree): (List[MemberDef], Tree)

The Inlined node representing the inlined call

The Inlined node representing the inlined call

Attributes

Concrete fields

val call: Tree