Skip to content

Commit f7b0b75

Browse files
l46kokcopybara-github
authored andcommitted
Add test cases around map type parameter propagation
PiperOrigin-RevId: 981946267
1 parent 0a38cb9 commit f7b0b75

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

checker/internal/type_inference_context_test.cc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1048,6 +1048,32 @@ TEST(TypeInferenceContextTest,
10481048
EXPECT_FALSE(context.IsAssignable(param_r, TypeType(&arena, param_t)));
10491049
}
10501050

1051+
TEST(TypeInferenceContextTest,
1052+
TypeTypeAssignability_OccursCheck_MapTypeParamToTypeParam_ReturnsFalse) {
1053+
google::protobuf::Arena arena;
1054+
TypeInferenceContext context(&arena);
1055+
1056+
Type param_t =
1057+
context.InstantiateTypeParams(TypeType(&arena, TypeParamType("T")));
1058+
Type t_var = param_t.AsType()->GetType();
1059+
Type map_type = TypeType(&arena, MapType(&arena, StringType(), t_var));
1060+
1061+
EXPECT_FALSE(context.IsAssignable(map_type, param_t));
1062+
}
1063+
1064+
TEST(TypeInferenceContextTest,
1065+
TypeTypeAssignability_OccursCheck_TypeParamToMapTypeParam_ReturnsFalse) {
1066+
google::protobuf::Arena arena;
1067+
TypeInferenceContext context(&arena);
1068+
1069+
Type param_t =
1070+
context.InstantiateTypeParams(TypeType(&arena, TypeParamType("T")));
1071+
Type t_var = param_t.AsType()->GetType();
1072+
Type map_type = TypeType(&arena, MapType(&arena, StringType(), t_var));
1073+
1074+
EXPECT_FALSE(context.IsAssignable(param_t, map_type));
1075+
}
1076+
10511077
TEST(TypeInferenceContextTest,
10521078
TypeTypeOverloadResolution_TypeParamInTypeType_ResolvesReturnTypeInt) {
10531079
google::protobuf::Arena arena;

0 commit comments

Comments
 (0)