Given a root variable and a target variable with the following structure:
Root Variable
|_ Layer 1 Field
|_ Layer 2 Field
|_ ...
|_ Target Variable
After alias inferences about the target variable are made, the addresses of some fields in this structure are recovered.
At an earlier Step n'
If any of these fields are read, its structure should be partially recovered without further variable expansion.
Current
Layer 1 Field (alias ID recovered)
Ideal
Layer 1 Field (alias ID recovered)
|_ Layer 2 Field
|_ ...
|_ Target Variable (alias ID recovered)
In this example, since the alias IDs are recorded, alias inferencing could be omitted.
TODO
[x] Variable Expansion: When a variable to be expanded has recorded fields, keep the fields with alias IDs after variable expansion (instead of field returned by LLM, which doesn't have an alias ID).
[x] Alias Inference: After processing each inference response, update the alias IDs in the corresponding steps.
[x] Definition Inference: Split alias and definition inference to two functions.
At Step n
Given a root variable and a target variable with the following structure:
After alias inferences about the target variable are made, the addresses of some fields in this structure are recovered.
At an earlier Step n'
If any of these fields are read, its structure should be partially recovered without further variable expansion. Current
Ideal
In this example, since the alias IDs are recorded, alias inferencing could be omitted.
TODO