mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-08-14 17:28:07 +00:00
correctly apply lens type flags in shorthand chained exprs (fixes foo,x
hex inheriatnce)
This commit is contained in:
+5
-1
@@ -2404,9 +2404,13 @@ e_push_irtree_and_type_from_expr(Arena *arena, E_IRTreeAndType *root_parent, E_I
|
|||||||
if(str8_match(chained_expr->string, shorthand_lens_pair_table[shorthand_idx].shorthand, 0))
|
if(str8_match(chained_expr->string, shorthand_lens_pair_table[shorthand_idx].shorthand, 0))
|
||||||
{
|
{
|
||||||
String8 full_name = shorthand_lens_pair_table[shorthand_idx].full_name;
|
String8 full_name = shorthand_lens_pair_table[shorthand_idx].full_name;
|
||||||
|
E_Expr *lens_spec_expr = e_string2expr_map_lookup(e_ir_ctx->macro_map, full_name);
|
||||||
|
E_TypeKey lens_spec_type_key = lens_spec_expr->type_key;
|
||||||
|
E_Type *lens_spec_type = e_type_from_key(lens_spec_type_key);
|
||||||
result.type_key = e_type_key_cons(.kind = E_TypeKind_Lens,
|
result.type_key = e_type_key_cons(.kind = E_TypeKind_Lens,
|
||||||
.direct_key = result.type_key,
|
.direct_key = result.type_key,
|
||||||
.name = full_name);
|
.name = full_name,
|
||||||
|
.flags = lens_spec_type->flags);
|
||||||
matches_shorthand = 1;
|
matches_shorthand = 1;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,18 +5,18 @@
|
|||||||
//~ rjf: post-0.9.20 TODO notes
|
//~ rjf: post-0.9.20 TODO notes
|
||||||
//
|
//
|
||||||
//- fabian complaints / reports
|
//- fabian complaints / reports
|
||||||
// [ ] eval: pointer casts of register space should promote to process space
|
// [x] `foo, x` needs to correctly match `hex(foo)`, e.g. in application to expansions
|
||||||
|
// [ ] broadly, need to complete memory view & fix issues
|
||||||
|
// [ ] dumb panel click-through thing
|
||||||
|
// [ ] correct type interpretations; togglable interpretations
|
||||||
|
// [ ] make address editable; specialized version of the cursor address editor in tab right-click menu
|
||||||
|
// [x] eval: pointer casts of register space should promote to process space
|
||||||
// [ ] simplified default layout
|
// [ ] simplified default layout
|
||||||
// [ ] signify empty watch window "expression" slot more as a text field?
|
// [ ] signify empty watch window "expression" slot more as a text field?
|
||||||
// [ ] ambiguous parsing cases - need to re-introduce identifier resolution into eval parse. (foo *)&bar
|
// [ ] ambiguous parsing cases - need to re-introduce identifier resolution into eval parse. (foo *)&bar
|
||||||
// [ ] more control over string visualization; specifically, when *not* to do it, even when using e.g. char *s
|
// [ ] more control over string visualization; specifically, when *not* to do it, even when using e.g. char *s
|
||||||
// [ ] broadly, view discoverability / docs
|
// [ ] broadly, view discoverability / docs
|
||||||
// [ ] memory view deserves larger spot, in default layout
|
// [ ] memory view deserves larger spot, in default layout
|
||||||
// [ ] broadly, need to complete memory view & fix issues
|
|
||||||
// [ ] dumb panel click-through thing
|
|
||||||
// [ ] correct type interpretations; togglable interpretations
|
|
||||||
// [ ] make address editable; specialized version of the cursor address editor in tab right-click menu
|
|
||||||
// [ ] `foo, x` needs to correctly match `hex(foo)`, e.g. in application to expansions
|
|
||||||
// [ ] sign bits should not display on unsigned integers?
|
// [ ] sign bits should not display on unsigned integers?
|
||||||
// [ ] fix for-loop stepping oddities, likely single-line for-loop stepping
|
// [ ] fix for-loop stepping oddities, likely single-line for-loop stepping
|
||||||
// [ ] source/disasm ctx menu should include options for e.g. "go to selected thread"
|
// [ ] source/disasm ctx menu should include options for e.g. "go to selected thread"
|
||||||
|
|||||||
Reference in New Issue
Block a user