14.4. Automated refactoring tools

The REFACTOR module implements automated code refactoring transformations. It provides tools for renaming symbols, extracting functions, and other structural code changes that preserve program semantics.

All functions and symbols are in “refactor” module, use require to get access to it.

require daslib/refactor

14.4.1. Function annotations

refactor::ExtractMethodMacro

Function annotation implementing extract-method refactoring.

refactor::ExtractVariableFunction

Function annotation for extract-variable target functions.

14.4.2. Call macros

refactor::extract_variable

Call macro implementing extract-variable refactoring.

14.4.3. Refactoring operations

refactor::extract_expression(method_name: string; expr: auto) : auto()

Marks an expression for expression extraction refactoring.

Arguments
  • method_name : string

  • expr : auto

refactor::extract_method(method_name: string; blk: block<():void>)

Marks a block of code for method extraction refactoring.

Arguments
  • method_name : string

  • blk : block<void>

refactor::extract_variable_nonref(method_name: string; expr: auto) : auto()

Marks an expression for variable extraction by value.

Arguments
  • method_name : string

  • expr : auto

refactor::extract_variable_ref(method_name: string; expr: auto(TT)& ==const) : TT&()

Marks an expression for variable extraction by reference.

Arguments
  • method_name : string

  • expr : auto(TT)&!