Performs inlining, which is an optimization pass enabled with the -inline flag.


The AST is traversed, and every function call is considered for inlining using inlinecost.d. The function call is then inlined if this cost is below a threshold.


Walter Bright

Source: inline.d

  • Declaration

    void inlineScanModule(Module m);

    Scan function implementations in Module m looking for functions that can be inlined, and inline them in situ.


    Module m

    module to scan

  • Declaration

    Expression inlineCopy(Expression e, Scope* sc);

    Perform the "inline copying" of a default argument for a function parameter.

    Todo: The hack for bugzilla 4820 case is still questionable. Perhaps would have to handle a delegate expression with 'null' context properly in front-end.