IDEA-184560 Java decompiler doesn't use stored parameter names - fixed param idx

master
Egor Ushakov 6 years ago
parent 8b9687ed20
commit 6715ecf53d
  1. 8
      src/org/jetbrains/java/decompiler/main/ClassWriter.java
  2. 4
      testData/results/TestMethodParametersAttr.dec

@ -716,8 +716,8 @@ public class ClassWriter {
appendParameterAnnotations(buffer, mt, paramCount);
if (methodParameters != null && paramCount < methodParameters.size()) {
appendModifiers(buffer, methodParameters.get(paramCount).myAccessFlags, CodeConstants.ACC_FINAL, isInterface, 0);
if (methodParameters != null && i < methodParameters.size()) {
appendModifiers(buffer, methodParameters.get(i).myAccessFlags, CodeConstants.ACC_FINAL, isInterface, 0);
}
else if (methodWrapper.varproc.getVarFinal(new VarVersionPair(index, 0)) == VarTypeProcessor.VAR_EXPLICIT_FINAL) {
buffer.append("final ");
@ -755,8 +755,8 @@ public class ClassWriter {
buffer.append(' ');
String parameterName;
if (methodParameters != null && paramCount < methodParameters.size()) {
parameterName = methodParameters.get(paramCount).myName;
if (methodParameters != null && i < methodParameters.size()) {
parameterName = methodParameters.get(i).myName;
}
else {
parameterName = methodWrapper.varproc.getVarName(new VarVersionPair(index, 0));

@ -12,7 +12,7 @@ public class TestMethodParametersAttr {
void local() {
class Local {
Local(final int this$0) {
Local(int p31) {
}// 36
void m(int p32) {
@ -51,7 +51,7 @@ public class TestMethodParametersAttr {
}
class C1 {
C1(final int this$0) {
C1(int p11) {
}// 24
void m(int p12) {

Loading…
Cancel
Save