From d3de91ee8685137b1673737ed2a886641f8cbb82 Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Tue, 11 May 2021 10:59:55 +0300 Subject: [PATCH] Revert "cgen: fix generics with generics fn type parameter (#10078)" This reverts commit e310513a5f3276e1c6c4f7cb5678fa7cf5c77c85. --- vlib/v/gen/c/cgen.v | 2 +- ...ics_with_generics_fn_type_parameter_test.v | 33 ------------------- 2 files changed, 1 insertion(+), 34 deletions(-) diff --git a/vlib/v/gen/c/cgen.v b/vlib/v/gen/c/cgen.v index c603778906..1cfc2fdac5 100644 --- a/vlib/v/gen/c/cgen.v +++ b/vlib/v/gen/c/cgen.v @@ -2373,7 +2373,7 @@ fn (mut g Gen) gen_assign_stmt(assign_stmt ast.AssignStmt) { } else {} } - right_sym := g.table.get_type_symbol(g.unwrap_generic(val_type)) + right_sym := g.table.get_type_symbol(val_type) is_fixed_array_copy := right_sym.kind == .array_fixed && val is ast.Ident g.is_assign_lhs = true g.assign_op = assign_stmt.op diff --git a/vlib/v/tests/generics_with_generics_fn_type_parameter_test.v b/vlib/v/tests/generics_with_generics_fn_type_parameter_test.v index a59db4b2b1..d5a0267187 100644 --- a/vlib/v/tests/generics_with_generics_fn_type_parameter_test.v +++ b/vlib/v/tests/generics_with_generics_fn_type_parameter_test.v @@ -4,40 +4,19 @@ fn neg(a int) int { fn indirect_call(func fn (int) int, a int) int { println(typeof(func).name) - assert typeof(func).name == typeof(neg).name return func(a) } fn generic_call(func T, a int) int { println(T.name) - assert T.name == typeof(neg).name return func(a) } fn generic_indirect_call(func T, a int) int { println(T.name) - assert T.name == typeof(neg).name return indirect_call(func, a) } -fn indirect_call_v2(func fn (int) int, a int) int { - f := func - assert typeof(f).name == typeof(neg).name - return f(a) -} - -fn generic_call_v2(func T, a int) int { - f := func - assert typeof(f).name == typeof(neg).name - return f(a) -} - -fn generic_indirect_call_v2(func T, a int) int { - f := func - assert typeof(f).name == typeof(neg).name - return indirect_call_v2(f, a) -} - fn test_generics_with_generics_fn_type_parameter() { mut ret := 0 @@ -52,16 +31,4 @@ fn test_generics_with_generics_fn_type_parameter() { ret = generic_indirect_call(neg, 4) println(ret) assert ret == -4 - - ret = indirect_call_v2(neg, 5) - println(ret) - assert ret == -5 - - ret = generic_call_v2(neg, 6) - println(ret) - assert ret == -6 - - ret = generic_indirect_call_v2(neg, 7) - println(ret) - assert ret == -7 }