EA-87016 - assert: PsiParameterListImpl.getParameterIndex

This commit is contained in:
Anna Kozlova
2016-09-01 16:38:42 +03:00
parent c030a5a060
commit 50e1965c91
4 changed files with 49 additions and 1 deletions
@@ -369,7 +369,7 @@ class InlineToAnonymousConstructorProcessor {
@Override public void visitReferenceExpression(final PsiReferenceExpression expression) {
super.visitReferenceExpression(expression);
final PsiElement psiElement = expression.resolve();
if (psiElement instanceof PsiParameter) {
if (psiElement instanceof PsiParameter && ((PsiParameter)psiElement).getDeclarationScope() == myConstructor) {
parameterReferences.add(Pair.create(expression, (PsiParameter)psiElement));
}
else if ((psiElement instanceof PsiField || psiElement instanceof PsiMethod) &&
@@ -0,0 +1,23 @@
class Test {
class <caret>A implements Runnable {
public A(int[] args) {
for (int arg : args) {
System.out.println(arg);
}
}
@Override
public void run() {
}
}
abstract class U {
{
A a = new A(new int[8]);
}
}
}
@@ -0,0 +1,21 @@
class Test {
abstract class U {
{
final int[] args = new int[8];
Runnable a = new Runnable() {
{
for (int arg : args) {
System.out.println(arg);
}
}
@Override
public void run() {
}
};
}
}
}
@@ -49,6 +49,10 @@ public class InlineToAnonymousClassTest extends LightRefactoringTestCase {
doTest(false, false);
}
public void testUnrelatedParameters() throws Exception {
doTest(false, false);
}
public void testConstructorWithArgumentsInExpression() throws Exception {
doTest(false, false);
}