summaryrefslogtreecommitdiff
path: root/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiParameterImpl.java
diff options
context:
space:
mode:
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.java20
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;
+ }
+
}