-
- Downloads
Fix function parameter initialization.
Context management for parameters of functions was incorrect. To fix it we store a context identifier which allows to identify precisely parameters location (in memory). Thanks to this fix, the following code produces the correct output (as it was the case before context introduction) `` let f: R -> R, x -> x+3; let g: R -> R, x -> 2*f(x); R x = g(2); ``
Showing
- src/language/ASTNodeFunctionExpressionBuilder.cpp 1 addition, 1 deletionsrc/language/ASTNodeFunctionExpressionBuilder.cpp
- src/language/SymbolTable.hpp 27 additions, 6 deletionssrc/language/SymbolTable.hpp
- src/language/node_processor/BreakProcessor.hpp 1 addition, 1 deletionsrc/language/node_processor/BreakProcessor.hpp
- src/language/node_processor/CFunctionProcessor.hpp 5 additions, 4 deletionssrc/language/node_processor/CFunctionProcessor.hpp
- src/language/node_processor/ContinueProcessor.hpp 1 addition, 1 deletionsrc/language/node_processor/ContinueProcessor.hpp
- src/language/node_processor/ExecutionPolicy.hpp 63 additions, 11 deletionssrc/language/node_processor/ExecutionPolicy.hpp
- src/language/node_processor/FunctionProcessor.hpp 9 additions, 8 deletionssrc/language/node_processor/FunctionProcessor.hpp
- src/language/node_processor/LocalNameProcessor.hpp 4 additions, 2 deletionssrc/language/node_processor/LocalNameProcessor.hpp
- tests/test_ExecutionPolicy.cpp 3 additions, 3 deletionstests/test_ExecutionPolicy.cpp
Loading
Please register or sign in to comment