diff options
Diffstat (limited to 'java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java')
-rw-r--r-- | java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java index e77e7ad01f5e..799f9b459e69 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java @@ -324,4 +324,24 @@ public class PsiParameterImpl extends JavaStubPsiElement<PsiParameterStub> imple final PsiElement declarationScope = getDeclarationScope(); return new LocalSearchScope(declarationScope); } + + @Override + public PsiElement getOriginalElement() { + PsiElement parent = getParent(); + if (parent instanceof PsiParameterList) { + PsiElement gParent = parent.getParent(); + if (gParent instanceof PsiMethod) { + PsiElement originalMethod = gParent.getOriginalElement(); + if (originalMethod instanceof PsiMethod) { + int index = ((PsiParameterList)parent).getParameterIndex(this); + PsiParameter[] originalParameters = ((PsiMethod)originalMethod).getParameterList().getParameters(); + if (index < originalParameters.length) { + return originalParameters[index]; + } + } + } + } + return this; + } + } |