- Adjust Environment to use BoundNode for the function registry and
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.
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
|
||||
- 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
|
||||
....
|
||||
- TCO
|
||||
Reference in New Issue
Block a user