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.

Value parameters

call

the original call to an inlineable method

rhsToInline

the body of the inlineable method that replaces the call.

Attributes

Companion
object
Graph
Supertypes
class Object
trait Matchable
class Any

Members list

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

Supertypes
class ReTyper
trait ReChecking
class Typer
trait Migrations
trait Deriving
trait Checking
trait Dynamic
trait Inferencing
trait Implicits
trait Applications
trait TypeAssigner
class Namer
class Object
trait Matchable
class Any
Show all

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

def tryConstValue(tpe: Type): Tree

Concrete fields

val call: Tree