소스 검색

Added type parameters to method descriptors.

Stan Hebben 6 년 전
부모
커밋
ad57dc2d83

+ 4
- 1
JavaBytecodeCompiler/src/main/java/org/openzen/zenscript/javabytecode/compiler/CompilerUtils.java 파일 보기

@@ -47,10 +47,13 @@ public class CompilerUtils {
47 47
 	}
48 48
 
49 49
     public static void tagMethodParameters(JavaBytecodeContext context, JavaCompiledModule module, FunctionHeader header, boolean isStatic) {
50
+		int index = header.getNumberOfTypeParameters();
51
+		
50 52
         for (int i = 0; i < header.parameters.length; i++) {
51 53
             FunctionParameter parameter = header.parameters[i];
52 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 파일 보기

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

Loading…
취소
저장