3c0f2ec8ce
correctly initialize the `TypeChecker` with argument types during macro expansion. - Refactor `Specializer::compile` to perform type checking with provided arguments before specialization and to correctly extract the return type. - Enhance the `Dumper` to introspect and display specialized closure bodies. - Update `LambdaCollector` to use `BoundNode` consistently. - Modify `TypeChecker` to accept and inject specialized argument types for lambdas.
483 B
483 B
- Macro expansion
- Binding
- var lambdas
- Linking(var lambdas)
-Typechecker::check_with_args(template, ())
- lambdas = Lambda Collection <- fills registry
- Specializing call, say (tak int int int)
- found in lambdas: (tak any any any)->any
- var local_lambdas
- recurse Linking(var local_lambdas):
- TypeChecker::check_with_args(template, args)
- local_lambdas = Lambda Collection
- Specializing ....
- found in lambdas: (tak any any any)->any
- TCO