diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java index e8c225cfafc..d4e06b8fce1 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetArrayAccessExpression.java @@ -25,6 +25,7 @@ import com.intellij.psi.PsiReferenceService; import com.intellij.psi.impl.source.resolve.reference.ReferenceProvidersRegistry; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.JetNodeTypes; import org.jetbrains.jet.lexer.JetTokens; @@ -36,6 +37,14 @@ public class JetArrayAccessExpression extends JetReferenceExpression { super(node); } + @Nullable + @Override + public PsiReference getReference() { + PsiReference[] references = getReferences(); + if (references.length == 1) return references[0]; + else return null; + } + @NotNull @Override public PsiReference[] getReferences() { diff --git a/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/ArrayAccessExpression_after.kt b/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/ArrayAccessExpression_after.kt new file mode 100644 index 00000000000..1c80e559a11 --- /dev/null +++ b/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/ArrayAccessExpression_after.kt @@ -0,0 +1,4 @@ +import test1.MyClass +import test1.get + +val s = MyClass()[1] diff --git a/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/main.kt b/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/main.kt new file mode 100644 index 00000000000..1c80e559a11 --- /dev/null +++ b/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/main.kt @@ -0,0 +1,4 @@ +import test1.MyClass +import test1.get + +val s = MyClass()[1] diff --git a/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/myClass.kt b/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/myClass.kt new file mode 100644 index 00000000000..ea64e3bea3e --- /dev/null +++ b/idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/myClass.kt @@ -0,0 +1,8 @@ +package test1 + +public class MyClass { +} + +public fun MyClass.get(i: Int): Int { + return 1 +} diff --git a/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsMultiFileTest.java b/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsMultiFileTest.java index 345712ce97c..9bd8bfb8a86 100644 --- a/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsMultiFileTest.java +++ b/idea/tests/org/jetbrains/jet/plugin/importOptimizer/OptimizeImportsMultiFileTest.java @@ -34,6 +34,10 @@ public class OptimizeImportsMultiFileTest extends CodeInsightTestCase { doTest(getTestName(false) + "/main.kt", getTestName(false) + "/MyJavaClass.java"); } + public void testArrayAccessExpression() throws Exception { + doTest(getTestName(false) + "/main.kt", getTestName(false) + "/myClass.kt"); + } + public void doTest(String... fileNames) throws Exception { configureByFiles(null, fileNames); invokeFormatFile();