Browse Source

Added type parameters to method descriptors.

Stan Hebben 6 years ago
parent
commit
ad57dc2d83

+ 4
- 1
JavaBytecodeCompiler/src/main/java/org/openzen/zenscript/javabytecode/compiler/CompilerUtils.java View File

47
 	}
47
 	}
48
 
48
 
49
     public static void tagMethodParameters(JavaBytecodeContext context, JavaCompiledModule module, FunctionHeader header, boolean isStatic) {
49
     public static void tagMethodParameters(JavaBytecodeContext context, JavaCompiledModule module, FunctionHeader header, boolean isStatic) {
50
+		int index = header.getNumberOfTypeParameters();
51
+		
50
         for (int i = 0; i < header.parameters.length; i++) {
52
         for (int i = 0; i < header.parameters.length; i++) {
51
             FunctionParameter parameter = header.parameters[i];
53
             FunctionParameter parameter = header.parameters[i];
52
             String parameterType = context.getDescriptor(parameter.type);
54
             String parameterType = context.getDescriptor(parameter.type);
53
-            module.setParameterInfo(parameter, new JavaParameterInfo(isStatic ? i : i + 1, parameterType));
55
+            module.setParameterInfo(parameter, new JavaParameterInfo(isStatic ? index : index + 1, parameterType));
56
+			index++;
54
         }
57
         }
55
     }
58
     }
56
 
59
 

+ 3
- 0
JavaShared/src/main/java/org/openzen/zenscript/javashared/JavaContext.java View File

314
 	
314
 	
315
 	private String getMethodDescriptor(FunctionHeader header, boolean isEnumConstructor) {
315
 	private String getMethodDescriptor(FunctionHeader header, boolean isEnumConstructor) {
316
         StringBuilder descBuilder = new StringBuilder("(");
316
         StringBuilder descBuilder = new StringBuilder("(");
317
+		for (int i = 0; i < header.getNumberOfTypeParameters(); i++)
318
+			descBuilder.append("Ljava/lang/Class;");
319
+		
317
         if (isEnumConstructor)
320
         if (isEnumConstructor)
318
             descBuilder.append("Ljava/lang/String;I");
321
             descBuilder.append("Ljava/lang/String;I");
319
 		
322
 		

Loading…
Cancel
Save