mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-21 11:14:59 -07:00
fix ptr/ref coverage in expansions
This commit is contained in:
+2
-2
@@ -511,7 +511,7 @@ E_TYPE_ACCESS_FUNCTION_DEF(default)
|
||||
{
|
||||
break;
|
||||
}
|
||||
else if(l_restype_kind != E_TypeKind_Ptr && l_restype_kind != E_TypeKind_Array)
|
||||
else if(l_restype_kind != E_TypeKind_Ptr && l_restype_kind != E_TypeKind_Array && l_restype_kind != E_TypeKind_LRef && l_restype_kind != E_TypeKind_RRef)
|
||||
{
|
||||
e_msgf(arena, &result.msgs, E_MsgKind_MalformedInput, exprl->range, "Cannot index into this type.");
|
||||
break;
|
||||
@@ -567,7 +567,7 @@ E_TYPE_ACCESS_FUNCTION_DEF(default)
|
||||
|
||||
// rjf: ops to compute the base offset (resolve to value if addr-of-pointer)
|
||||
E_IRNode *base_tree = l.root;
|
||||
if(l_restype_kind == E_TypeKind_Ptr && l.mode != E_Mode_Value)
|
||||
if(e_type_kind_is_pointer_or_ref(l_restype_kind) && l.mode != E_Mode_Value)
|
||||
{
|
||||
base_tree = e_irtree_resolve_to_value(arena, l.mode, base_tree, l_restype);
|
||||
}
|
||||
|
||||
@@ -2308,7 +2308,9 @@ E_TYPE_EXPAND_INFO_FUNCTION_DEF(default)
|
||||
{
|
||||
E_TypeKind array_type_kind = e_type_kind_from_key(expand_type_key);
|
||||
if(array_type_kind == E_TypeKind_Array ||
|
||||
array_type_kind == E_TypeKind_Ptr)
|
||||
array_type_kind == E_TypeKind_Ptr ||
|
||||
array_type_kind == E_TypeKind_RRef ||
|
||||
array_type_kind == E_TypeKind_LRef)
|
||||
{
|
||||
E_Type *array_type = e_type_from_key(expand_type_key);
|
||||
result.expr_count = array_type->count;
|
||||
@@ -2384,6 +2386,8 @@ E_TYPE_EXPAND_RANGE_FUNCTION_DEF(default)
|
||||
|
||||
//- rjf: ptr case -> the lookup-range will return a range of dereferences
|
||||
else if(expand_type_kind == E_TypeKind_Ptr ||
|
||||
expand_type_kind == E_TypeKind_LRef ||
|
||||
expand_type_kind == E_TypeKind_RRef ||
|
||||
expand_type_kind == E_TypeKind_Array ||
|
||||
expand_type_kind == E_TypeKind_Set)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user