[TS] Correct trait construction with multiple supertraits
[ldk-java] / typescript_strings.py
index 92c734ac0f1eb912b8ca4087a884e7ca9e0aa4e7..b66181f37ddb5a840098680eefbaf27cf015b22b 100644 (file)
@@ -857,12 +857,10 @@ import * as bindings from '../bindings.mjs'
             return ("bindings.encodeUint8Array(" + inner + ")", "")
         elif mapped_ty.c_ty == "uint16_t" or mapped_ty.c_ty == "int16_t":
             return ("bindings.encodeUint16Array(" + inner + ")", "")
-        elif mapped_ty.c_ty == "uint32_t":
+        elif mapped_ty.c_ty == "uint32_t" or mapped_ty.rust_obj == "LDKStr":
             return ("bindings.encodeUint32Array(" + inner + ")", "")
         elif mapped_ty.c_ty == "int64_t" or mapped_ty.c_ty == "uint64_t":
             return ("bindings.encodeUint64Array(" + inner + ")", "")
-        elif mapped_ty.rust_obj == "LDKStr":
-            return ("XXX-unused", "")
         else:
             print(mapped_ty.c_ty)
             assert False
@@ -964,7 +962,6 @@ export enum {struct_name} {{
         for var in flattened_field_var_conversions:
             if isinstance(var, ConvInfo):
                 impl_constructor_arguments += f", {var.arg_name}: {var.java_hu_ty}"
-                super_instantiator += first_to_lower(var.arg_name) + ", "
                 if var.from_hu_conv is not None:
                     bindings_instantiator += ", " + var.from_hu_conv[0]
                     if var.from_hu_conv[1] != "":
@@ -973,7 +970,6 @@ export enum {struct_name} {{
                     bindings_instantiator += ", " + first_to_lower(var.arg_name)
             else:
                 bindings_instantiator += ", " + first_to_lower(var[1]) + ".instance_idx!"
-                super_instantiator += first_to_lower(var[1]) + "_impl, "
                 pointer_to_adder += "\t\timpl_holder.held.ptrs_to.push(" + first_to_lower(var[1]) + ");\n"
                 impl_constructor_arguments += f", {first_to_lower(var[1])}_impl: {var[0].replace('LDK', '')}Interface"
 
@@ -983,7 +979,14 @@ export enum {struct_name} {{
             if isinstance(var, ConvInfo):
                 trait_constructor_arguments += ", " + var.arg_name
             else:
-                super_constructor_statements += "\t\tconst " + first_to_lower(var[1]) + " = " + var[1] + ".new_impl(" + super_instantiator + ");\n"
+                super_constructor_statements += "\t\tconst " + first_to_lower(var[1]) + " = " + var[1] + ".new_impl(" + first_to_lower(var[1]) + "_impl"
+                super_instantiator = ""
+                for suparg in var[2]:
+                    if isinstance(suparg, ConvInfo):
+                        super_instantiator += ", " + suparg.arg_name
+                    else:
+                        super_instantiator += ", " + first_to_lower(suparg[1]) + "_impl"
+                super_constructor_statements += super_instantiator + ");\n"
                 trait_constructor_arguments += ", " + first_to_lower(var[1]) + ".instance_idx!"
                 for suparg in var[2]:
                     if isinstance(suparg, ConvInfo):