# dmd.inline

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

#### Discussion

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.

#### Authors

Walter Bright

#### License

Boost License 1.0

Source: inline.d

Documentation: https://dlang.org/phobos/dmd_inline.html

Coverage: https://codecov.io/gh/dlang/dmd/src/master/src/dmd/inline.d

- `inlineScanModule`

  #### Declaration

  `void `inlineScanModule`(Module `m`);`

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

  #### Parameters

  `Module `m`` | module to scan

- `inlineCopy`

  #### Declaration

  `Expression `inlineCopy`(Expression `e`, Scope* `sc`);`

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

  Todo: The hack for https://issues.dlang.org/show_bug.cgi?id=4820 case is still questionable. Perhaps would have to handle a delegate expression with '`null`' context properly in front-end.