fix member lookup rules in new eval ir tree builder

This commit is contained in:
Ryan Fleury
2024-08-07 08:22:22 -07:00
parent fee31daa55
commit 607442b92a
2 changed files with 20 additions and 1 deletions
+1 -1
View File
@@ -456,7 +456,7 @@ e_irtree_and_type_from_expr(Arena *arena, E_Expr *expr)
l_restype_kind == E_TypeKind_LRef ||
l_restype_kind == E_TypeKind_RRef)
{
check_type_key = e_type_unwrap(l_restype);
check_type_key = e_type_unwrap(e_type_direct_from_key(e_type_unwrap(l_restype)));
check_type_kind = e_type_kind_from_key(check_type_key);
}
e_msg_list_concat_in_place(&result.msgs, &l.msgs);
+19
View File
@@ -252,6 +252,22 @@ struct Has_A_Post_Forward_Reference{
struct Gets_Referenced_Forwardly value;
};
struct TypeWithMemberFunction
{
int x;
int y;
int z;
char *name;
__declspec(noinline) void SetInfo(int _x, int _y, char *_name)
{
x = _x;
y = _y;
z = 0;
name = _name;
OutputDebugStringA("setting info\n");
}
};
static void
no_params1(void){
@@ -379,6 +395,9 @@ type_coverage_eval_tests(void){
stks *stks_first = &stks_test[0];
stks *stks_ptr = stks_first + 8;
TypeWithMemberFunction twmf = {0};
twmf.SetInfo(123, 456, "foobar");
TestFunction *function = mule_get_module_function("dll_type_eval_tests");
function();