- 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:
Michael Schimmel
2026-02-19 23:18:04 +01:00
parent 16d9d41e3d
commit 3c0f2ec8ce
6 changed files with 147 additions and 60 deletions
+16
View File
@@ -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