@@ -2755,9 +2755,22 @@ def correct_type(type_name, meta=None, use_alias=True):
27552755 if type_name in type_conversion :
27562756 return type_conversion [type_name ]
27572757 if type_name .startswith ("typedarray::" ):
2758- return type_name .replace ("typedarray::" , "TypedArray<" ) + ">"
2758+ arr_type_name = type_name .replace ("typedarray::" , "" )
2759+ if is_refcounted (arr_type_name ):
2760+ arr_type_name = "Ref<" + arr_type_name + ">"
2761+ return "TypedArray<" + arr_type_name + ">"
27592762 if type_name .startswith ("typeddictionary::" ):
2760- return type_name .replace ("typeddictionary::" , "TypedDictionary<" ).replace (";" , ", " ) + ">"
2763+ dict_type_name = type_name .replace ("typeddictionary::" , "" )
2764+ dict_type_names = dict_type_name .split (";" )
2765+ if is_refcounted (dict_type_names [0 ]):
2766+ key_name = "Ref<" + dict_type_names [0 ] + ">"
2767+ else :
2768+ key_name = dict_type_names [0 ]
2769+ if is_refcounted (dict_type_names [1 ]):
2770+ val_name = "Ref<" + dict_type_names [1 ] + ">"
2771+ else :
2772+ val_name = dict_type_names [1 ]
2773+ return "TypedDictionary<" + key_name + ", " + val_name + ">"
27612774 if is_enum (type_name ):
27622775 if is_bitfield (type_name ):
27632776 base_class = get_enum_class (type_name )
0 commit comments