fix enums not working for simple integer operations in eval

This commit is contained in:
Ryan Fleury
2024-10-07 16:04:03 -07:00
parent cf46ce7712
commit 3f19c45dd3
2 changed files with 6 additions and 5 deletions
+2 -2
View File
@@ -918,8 +918,8 @@ e_irtree_and_type_from_expr(Arena *arena, E_Expr *expr)
E_IRTreeAndType r_tree = e_irtree_and_type_from_expr(arena, r_expr); E_IRTreeAndType r_tree = e_irtree_and_type_from_expr(arena, r_expr);
e_msg_list_concat_in_place(&result.msgs, &l_tree.msgs); e_msg_list_concat_in_place(&result.msgs, &l_tree.msgs);
e_msg_list_concat_in_place(&result.msgs, &r_tree.msgs); e_msg_list_concat_in_place(&result.msgs, &r_tree.msgs);
E_TypeKey l_type = e_type_unwrap(l_tree.type_key); E_TypeKey l_type = e_type_unwrap_enum(e_type_unwrap(l_tree.type_key));
E_TypeKey r_type = e_type_unwrap(r_tree.type_key); E_TypeKey r_type = e_type_unwrap_enum(e_type_unwrap(r_tree.type_key));
E_TypeKind l_type_kind = e_type_kind_from_key(l_type); E_TypeKind l_type_kind = e_type_kind_from_key(l_type);
E_TypeKind r_type_kind = e_type_kind_from_key(r_type); E_TypeKind r_type_kind = e_type_kind_from_key(r_type);
if(l_type.kind == E_TypeKeyKind_Reg) if(l_type.kind == E_TypeKeyKind_Reg)
+4 -3
View File
@@ -6,6 +6,7 @@
// //
// [ ] remainder of @msgs pass: // [ ] remainder of @msgs pass:
// [ ] new universal ctx menu, hover, tooltips systems // [ ] new universal ctx menu, hover, tooltips systems
// [ ] fix memory view
// [ ] meta eval system // [ ] meta eval system
// [ ] target editor // [ ] target editor
// [ ] file path map editor // [ ] file path map editor
@@ -29,8 +30,6 @@
// [ ] mohit-reported callstack-frame-selection bug (with inlines) // [ ] mohit-reported callstack-frame-selection bug (with inlines)
// [ ] empty user file causing failure to launch // [ ] empty user file causing failure to launch
// [ ] decay arrays to pointers in pointer/value comparison // [ ] decay arrays to pointers in pointer/value comparison
// [ ] EVAL LOOKUP RULES -> currently going 0 -> rdis_count, but we need
// to prioritize the primary rdi
// [ ] file overrides -> always pick most specific one! found with conflicting // [ ] file overrides -> always pick most specific one! found with conflicting
// overrides, e.g. C:/devel/ -> D:/devel/, but also C:/devel/foo -> // overrides, e.g. C:/devel/ -> D:/devel/, but also C:/devel/foo ->
// C:/devel/bar, etc. // C:/devel/bar, etc.
@@ -41,12 +40,14 @@
// them being visible, it is confusing when you run and you stop there, // them being visible, it is confusing when you run and you stop there,
// because you're like "wait why did it stop" and then you later remember // because you're like "wait why did it stop" and then you later remember
// that's because there was a function breakpoint there. // that's because there was a function breakpoint there.
// [ ] codebase readme pass
// [ ] debugger readme pass // [ ] debugger readme pass
// [x] codebase readme pass
//////////////////////////////// ////////////////////////////////
//~ rjf: post-0.9.12 TODO notes //~ rjf: post-0.9.12 TODO notes
// //
// [ ] EVAL LOOKUP RULES -> currently going 0 -> rdis_count, but we need
// to prioritize the primary rdi
// [ ] (reported by forrest) 'set-next-statement' -> prioritize current // [ ] (reported by forrest) 'set-next-statement' -> prioritize current
// module/symbol, in cases where one line maps to many voffs // module/symbol, in cases where one line maps to many voffs
// [ ] collapse upstream state for theme/bindings/settings into entities; use cache accelerators if needed to make up difference // [ ] collapse upstream state for theme/bindings/settings into entities; use cache accelerators if needed to make up difference