IDEA-123712 Groovy: @language annotation on method parameters with default values

reflected methods now have light parameters with original modifier lists
This commit is contained in:
Max Medvedev
2014-04-24 11:24:45 +04:00
parent 8ffcef2393
commit 637da92d7e
2 changed files with 11 additions and 1 deletions
@@ -50,6 +50,10 @@ public class GrLightParameter extends LightVariableBuilder<GrLightParameter> imp
myTypeElement = type == null ? null : new GrLightTypeElement(type, scope.getManager());
}
public void setModifierList(GrModifierList modifierList) {
myModifierList = modifierList;
}
@NotNull
private static PsiType getTypeNotNull(PsiType type, PsiElement scope) {
return type != null ? type : PsiType.getJavaLangObject(scope.getManager(), scope.getResolveScope());
@@ -129,7 +129,7 @@ public class GrReflectedMethodImpl extends LightMethodBuilder implements GrRefle
}
optionalParams--;
}
parameterList.addParameter(new GrLightParameter(parameter.getName(), parameter.getDeclaredType(), this));
parameterList.addParameter(createLightParameter(parameter));
}
LOG.assertTrue(optionalParams == 0);
@@ -137,6 +137,12 @@ public class GrReflectedMethodImpl extends LightMethodBuilder implements GrRefle
mySkippedParameters = skipped.toArray(new GrParameter[skipped.size()]);
}
private GrLightParameter createLightParameter(GrParameter parameter) {
GrLightParameter lightParameter = new GrLightParameter(parameter.getName(), parameter.getDeclaredType(), this);
lightParameter.setModifierList(parameter.getModifierList());
return lightParameter;
}
@NotNull
@Override
public GrMethod getBaseMethod() {