4f8ef8c315
This commit introduces support for calling and referencing local functions and objects in evaluate expression on the IR backend. The primary incision is a lowering inserted after Local Declaration Lowering, that uses the intermediate data structures recorded by LDL to rewrite calls to local functions to the appropriate function in the binary, instead of predicting the compilation strategy. The required changes to the rest of the pipeline facilitate piping the required data around. The key to this transformation is that _captures by the local function_ must be introduced as _captures by the fragment function_, such that the evaluator infrastructure can find the appropriate values at run-time. This is necessary due to the strategy of compiling local functions to static functions instead of closures. Additional test coverage of stepping behavior support the corresponding changes in the Evaluator, part of the Kotlin Debugger plug-in.