Fix symbol binding #58
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request resolves a critical
UnboundSymbolsErrorin the Arrow Reflection Kotlin compiler plugin by ensuring correct symbol binding during IR generation, and documents the investigation and solution in a new debugging report. The main fix preserves the original FIR symbol instance rather than creating a new one, which maintains the required binding chain between FIR and IR phases. Additional improvements include better handling ofCallableIdmismatches for transformation tests, regeneration of test expectation files, and code cleanups. One transformation test still fails due to stricter IR validation, but this is identified as a test framework artifact rather than a production issue.Symbol Binding and IR Generation Improvements
FirMetaCodegenExtension.ktto preserve the original function symbol in generated functions, preventingUnboundSymbolsErrorand ensuring FIR-to-IR symbol binding is maintained.CallableIds when necessary for transformation tests, using reflection to update the symbol'sCallableIdonly if there is a mismatch, without breaking symbol binding.Documentation and Debugging
DEBUGGING_REPORT.md) detailing the investigation, root cause, attempted solutions, technical analysis, and recommendations related to the symbol binding issue.References:
[1] [2] [3] [4] [5] [6] [7] [8]