From 4039202806d1e41761ad0d331fc22f4ceb0a5a77 Mon Sep 17 00:00:00 2001 From: "Natalia.Ukhorskaya" Date: Tue, 12 Mar 2013 11:38:19 +0400 Subject: [PATCH] Optimize imports remove reference to get extension function #KT-3397 Fixed --- .../jetbrains/jet/lang/psi/JetArrayAccessExpression.java | 9 +++++++++ .../ArrayAccessExpression/ArrayAccessExpression_after.kt | 4 ++++ .../multifile/ArrayAccessExpression/main.kt | 4 ++++ .../multifile/ArrayAccessExpression/myClass.kt | 8 ++++++++ .../importOptimizer/OptimizeImportsMultiFileTest.java | 4 ++++ 5 files changed, 29 insertions(+) create mode 100644 idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/ArrayAccessExpression_after.kt create mode 100644 idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/main.kt create mode 100644 idea/testData/editor/optimizeImports/multifile/ArrayAccessExpression/myClass.kt 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();