expand eval to collecting irtree/type/lookup-rule, base all value string generation on entire root_eval rather than just root_expr; fixes wrong inheritance of tags in single-line visualization

This commit is contained in:
Ryan Fleury
2025-02-20 19:16:27 -08:00
parent 92df402ad1
commit 04c40e8359
7 changed files with 107 additions and 163 deletions
+2 -4
View File
@@ -11,10 +11,10 @@ typedef struct E_Eval E_Eval;
struct E_Eval
{
E_Value value;
E_Mode mode;
E_Space space;
E_ExprChain exprs;
E_TypeKey type_key;
E_IRTreeAndType irtree;
E_LookupRuleTagPair lookup_rule_tag;
E_InterpretationCode code;
E_MsgList msgs;
};
@@ -29,8 +29,6 @@ internal E_Eval e_eval_from_stringf(Arena *arena, char *fmt, ...);
internal E_Eval e_autoresolved_eval_from_eval(E_Eval eval);
internal E_Eval e_dynamically_typed_eval_from_eval(E_Eval eval);
internal E_Eval e_value_eval_from_eval(E_Eval eval);
internal E_Eval e_element_eval_from_array_eval_index(E_Eval eval, U64 index);
internal E_Eval e_member_eval_from_eval_member_name(E_Eval eval, String8 member_name);
internal E_Value e_value_from_string(String8 string);
internal E_Value e_value_from_stringf(char *fmt, ...);
internal E_Value e_value_from_expr(E_Expr *expr);