@@ -276,7 +276,7 @@ let rec s_tcpp = function
276
276
| CppThis _ -> " CppThis"
277
277
| CppSuper _ -> " CppSuper"
278
278
| CppCode _ -> " CppCode"
279
- | CppClosure _ -> " CppClosure "
279
+ | CppCallable _ -> " CppCallable "
280
280
| CppVar (VarLocal _ ) -> " CppVarLocal"
281
281
| CppVar (VarClosure _ ) -> " CppVarClosure"
282
282
| CppVar (VarThis _ ) -> " CppVarThis"
@@ -296,7 +296,7 @@ let rec s_tcpp = function
296
296
| CppCall (FuncInstance (obj , inst , field ), _ ) ->
297
297
(match inst with
298
298
| InstObjC -> " CppCallObjCInstance("
299
- | InstPtr -> " CppCallInstance("
299
+ | InstPtr _ -> " CppCallInstance("
300
300
| _ -> " CppCallStruct(" )
301
301
^ tcpp_to_string obj.cpptype ^ " ," ^ field.cf_name ^ " )"
302
302
| CppCall (FuncInterface _ , _ ) -> " CppCallInterface"
@@ -366,7 +366,13 @@ and tcpp_to_string_suffix suffix tcpp =
366
366
| TCppRest _ -> " vaarg_list"
367
367
| TCppVarArg -> " vararg"
368
368
| TCppAutoCast -> " ::cpp::AutoCast"
369
- | TCppVariant -> " ::cpp::Variant"
369
+ | TCppVariant None -> " ::cpp::Variant"
370
+ | TCppVariant Some t -> Printf. sprintf " ::cpp::Variant( %s )" (tcpp_to_string t)
371
+ | TCppCallable (arguments , return ) ->
372
+ let return_str = tcpp_to_string return in
373
+ let arguments_str = arguments |> List. map tcpp_to_string |> String. concat " ," in
374
+
375
+ Printf. sprintf " ::hx::Callable< %s ( %s ) >" return_str arguments_str
370
376
| TCppEnum enum -> " ::" ^ join_class_path_remap enum.e_path " ::" ^ suffix
371
377
| TCppScalar scalar -> scalar
372
378
| TCppString -> " ::String"
@@ -384,7 +390,6 @@ and tcpp_to_string_suffix suffix tcpp =
384
390
tcpp_objc_block_struct argTypes retType ^ " ::t"
385
391
| TCppDynamicArray -> " ::cpp::VirtualArray" ^ suffix
386
392
| TCppObjectArray _ -> " ::Array" ^ suffix ^ " < ::Dynamic>"
387
- | TCppWrapped _ -> " ::Dynamic"
388
393
| TCppScalarArray value ->
389
394
" ::Array" ^ suffix ^ " < " ^ tcpp_to_string value ^ " >"
390
395
| TCppObjC klass ->
@@ -647,7 +652,7 @@ let rec cpp_is_native_array_access t =
647
652
| _ -> false
648
653
649
654
let cpp_is_dynamic_type = function
650
- | TCppDynamic | TCppObject | TCppVariant | TCppWrapped _ | TCppGlobal | TCppNull
655
+ | TCppDynamic | TCppObject | TCppVariant _ | TCppGlobal | TCppNull
651
656
| TCppInterface _
652
657
-> true
653
658
| _ -> false
@@ -665,10 +670,10 @@ let is_object_element member_type =
665
670
| TCppFunction _
666
671
| TCppDynamicArray
667
672
| TCppObjectArray _
668
- | TCppWrapped _
669
673
| TCppScalarArray _
670
674
| TCppClass
671
- -> true
675
+ | TCppCallable _
676
+ -> true
672
677
| _ -> false
673
678
674
679
let cpp_variant_type_of t = match t with
@@ -684,7 +689,6 @@ let cpp_variant_type_of t = match t with
684
689
| TCppDynamicArray
685
690
| TCppObjectArray _
686
691
| TCppScalarArray _
687
- | TCppWrapped _
688
692
| TCppObjC _
689
693
| TCppObjCBlock _
690
694
| TCppRest _
@@ -695,6 +699,7 @@ let cpp_variant_type_of t = match t with
695
699
| TCppClass
696
700
| TCppGlobal
697
701
| TCppNull
702
+ | TCppCallable _
698
703
| TCppEnum _ -> TCppDynamic
699
704
| TCppString -> TCppString
700
705
| TCppFunction _
@@ -711,7 +716,7 @@ let cpp_variant_type_of t = match t with
711
716
| TCppScalar " double"
712
717
| TCppScalar "float" -> TCppScalar (" Float" )
713
718
| TCppScalar _ -> TCppScalar (" int" )
714
- | TCppVariant -> TCppVariant
719
+ | TCppVariant v -> TCppVariant v
715
720
716
721
let cpp_cast_variant_type_of t = match t with
717
722
| TCppObjectArray _
0 commit comments