@@ -2755,9 +2755,22 @@ def correct_type(type_name, meta=None, use_alias=True):
2755
2755
if type_name in type_conversion :
2756
2756
return type_conversion [type_name ]
2757
2757
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 + ">"
2759
2762
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 + ">"
2761
2774
if is_enum (type_name ):
2762
2775
if is_bitfield (type_name ):
2763
2776
base_class = get_enum_class (type_name )
0 commit comments