KT-5025 Unnecessary qualifier inserted for class

#KT-5025 Fixed
This commit is contained in:
Valentin Kipyatkov
2014-05-19 22:01:46 +04:00
parent 58b82baa2b
commit 5ce3df4845
7 changed files with 34 additions and 6 deletions
@@ -60,7 +60,17 @@ public object ShortenReferences {
process(listOf(file), { element ->
if (rangeMarker.isValid()) {
val range = TextRange(rangeMarker.getStartOffset(), rangeMarker.getEndOffset())
val elementRange = element.getTextRange()!!
var elementRange = element.getTextRange()!!
// for qualified call expression take only the part without parenthesis
val calleeExpression = ((element as? JetDotQualifiedExpression)
?.getSelectorExpression() as? JetCallExpression)
?.getCalleeExpression()
if (calleeExpression != null) {
elementRange = TextRange(elementRange.getStartOffset(), calleeExpression.getTextRange()!!.getEndOffset())
}
when {
range.contains(elementRange) -> FilterResult.PROCESS
range.intersects(elementRange) -> FilterResult.GO_INSIDE
@@ -0,0 +1,5 @@
import java.util.TimeZone
fun foo() {
Time<caret>Zone()
}
@@ -0,0 +1,5 @@
import java.util.TimeZone
fun foo() {
TimeZone<caret>()
}
@@ -0,0 +1 @@
val x = <selection>java.util.Date</selection>(1)
@@ -0,0 +1,3 @@
import java.util.Date
val x = Date(1)
@@ -26,6 +26,8 @@ public class BasicCompletionHandlerTest : CompletionHandlerTestBase(){
fun testClassCompletionImport() = doTest(2, "SortedSet", null, '\n')
fun testClassCompletionInMiddle() = doTest(1, "TimeZone", " (java.util)", '\t')
fun testDoNotInsertImportForAlreadyImported() = doTest()
fun testDoNotInsertDefaultJsImports() = doTest()
@@ -16,17 +16,14 @@
package org.jetbrains.jet.shortenRefs;
import junit.framework.Assert;
import junit.framework.Test;
import junit.framework.TestSuite;
import java.io.File;
import java.util.regex.Pattern;
import org.jetbrains.jet.JetTestUtils;
import org.jetbrains.jet.test.InnerTestClasses;
import org.jetbrains.jet.test.TestMetadata;
import org.jetbrains.jet.shortenRefs.AbstractShortenRefsTest;
import java.io.File;
import java.util.regex.Pattern;
/** This class is generated by {@link org.jetbrains.jet.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */
@SuppressWarnings("all")
@@ -113,6 +110,11 @@ public class ShortenRefsTestGenerated extends AbstractShortenRefsTest {
doTest("idea/testData/shortenRefs/constructor/NoImportNeeded3.kt");
}
@TestMetadata("WorksForClassNameRange.kt")
public void testWorksForClassNameRange() throws Exception {
doTest("idea/testData/shortenRefs/constructor/WorksForClassNameRange.kt");
}
}
@TestMetadata("idea/testData/shortenRefs/java")