@@ -78,13 +78,6 @@ class ConformanceTestSuite(unittest.TestSuite):
7878 "proto3/set_null/map_timestamp_null_pruned" ,
7979 "proto3/set_null/map_duration_null_pruned" ,
8080 "proto3/set_null/map_wrapper_null_pruned" ,
81- # TODO(b/577138668): C++ type checker bug, though lower priority.
82- "type_deduction/type_decay/type_list_decay" ,
83- "type_deduction/type_decay/type_ternary_decay" ,
84- "type_deduction/type_decay/type_free_param_list_decay" ,
85- "type_deduction/type_decay/type_free_param_list_decay_order_independent" ,
86- "type_deduction/type_decay/type_nested_list_decay" ,
87- "type_deduction/type_decay/type_free_param_list_concat" ,
8881 # Skip until duration/timestamp range and proto wrapper validation is updated for spec parity.
8982 "timestamps/timestamp_arithmetic/add_duration_to_duration_max" ,
9083 "timestamps/timestamp_arithmetic/subtract_duration_from_duration_min" ,
@@ -317,8 +310,13 @@ def _convert_type(self, tp: checked_pb.Type) -> cel.Type:
317310 for param in tp .abstract_type .parameter_types
318311 ],
319312 )
313+ elif kind == "type" :
314+ # An unset type parameter denotes the unparameterized `type`.
315+ if tp .type .WhichOneof ("type_kind" ) is None :
316+ return cel .Type .TYPE
317+ return cel .Type .Type (self ._convert_type (tp .type ))
320318 else :
321- self .fail ("Unsupported type: " + str (type ))
319+ self .fail ("Unsupported type: " + str (tp ))
322320
323321 def _convert_value (self , value : value_pb .Value ) -> Any :
324322 if value .HasField ("null_value" ):
@@ -503,6 +501,8 @@ def assertType(self, result_type: cel.Type, expected_type: checked_pb.Type):
503501 ],
504502 ),
505503 )
504+ elif kind == "type" :
505+ self .assertEqual (result_type , self ._convert_type (expected_type ))
506506 else :
507507 self .fail ("Unsupported type validation: " + str (expected_type ))
508508
0 commit comments