KT-6628 Allow imports of classes from root package

#KT-6628 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-01-20 18:05:35 +03:00
parent fa779bbdd2
commit 77a560775f
31 changed files with 115 additions and 185 deletions
@@ -36,8 +36,8 @@ remove.type.arguments=Remove type arguments
remove.useless.nullable=Remove useless '?'
remove.nullable.family=Remove '?'
remove.spread.sign=Remove '*'
remove.useless.import=Remove useless import for ''{0}''
remove.useless.import.family=Remove Useless Import
remove.conflicting.import=Remove conflicting import for ''{0}''
remove.conflicting.import.family=Remove Conflicting Import
replace.operation.in.binary.expression=Replace operation in a binary expression
replace.cast.with.static.assert=Replace a cast with a static assert
replace.with.dot.call=Replace with dot call
@@ -127,7 +127,6 @@ public class QuickFixRegistrar {
QuickFixes.factories.put(UNRESOLVED_REFERENCE_WRONG_RECEIVER, unresolvedReferenceFactory);
JetSingleIntentionActionFactory removeImportFixFactory = RemovePsiElementSimpleFix.createRemoveImportFactory();
QuickFixes.factories.put(USELESS_SIMPLE_IMPORT, removeImportFixFactory);
QuickFixes.factories.put(CONFLICTING_IMPORT, removeImportFixFactory);
QuickFixes.factories.put(SUPERTYPE_NOT_INITIALIZED, ChangeToConstructorInvocationFix.createFactory());
@@ -66,10 +66,10 @@ public class RemovePsiElementSimpleFix extends JetIntentionAction<PsiElement> {
JetExpression exp = directive.getImportedReference();
if (exp != null) {
return new RemovePsiElementSimpleFix(directive,
JetBundle.message("remove.useless.import", exp.getText()));
JetBundle.message("remove.conflicting.import", exp.getText()));
}
return new RemovePsiElementSimpleFix(directive,
JetBundle.message("remove.useless.import",""));
JetBundle.message("remove.conflicting.import",""));
}
}
};
@@ -2,7 +2,7 @@ import testData.libraries.*
fun foo() {
processDouble(1.0);
processDouble(Double())
processDouble(testData.libraries.Double())
}
// main.kt
@@ -0,0 +1,8 @@
// "Remove conflicting import for 'java.util.ArrayList'" "true"
package test
import java.util.HashMap as ArrayList
fun foo(a : ArrayList<String, String>) {
}
@@ -0,0 +1,9 @@
// "Remove conflicting import for 'java.util.ArrayList'" "true"
package test
import java.util.ArrayList<caret>
import java.util.HashMap as ArrayList
fun foo(a : ArrayList<String, String>) {
}
@@ -1,8 +0,0 @@
// "Remove useless import for 'test'" "true"
package test
import org.jetbrains
fun main(args : Array<String>) {
}
@@ -1,9 +0,0 @@
// "Remove useless import for 'test'" "true"
package test
import org.jetbrains
import test<caret>
fun main(args : Array<String>) {
}
@@ -1,8 +1,8 @@
package nonRoot
import java.lang.* // will not import Fake
import java.lang.*
fun foo() {
<caret>Fake()
}
//REF_EMPTY
//REF: (java.lang).Fake
@@ -2,4 +2,4 @@ package test
import <caret>Klass
//REF_EMPTY
//REF: (<root>).Klass
@@ -30,7 +30,7 @@ import java.util.regex.Pattern;
@SuppressWarnings("all")
@TestMetadata("idea/testData/quickfix")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({QuickFixTestGenerated.Abstract.class, QuickFixTestGenerated.AddStarProjections.class, QuickFixTestGenerated.AutoImports.class, QuickFixTestGenerated.ChangeSignature.class, QuickFixTestGenerated.CheckArguments.class, QuickFixTestGenerated.CreateFromUsage.class, QuickFixTestGenerated.Expressions.class, QuickFixTestGenerated.Migration.class, QuickFixTestGenerated.Modifiers.class, QuickFixTestGenerated.Nullables.class, QuickFixTestGenerated.Override.class, QuickFixTestGenerated.PlatformClasses.class, QuickFixTestGenerated.Supercalls.class, QuickFixTestGenerated.SupertypeInitialization.class, QuickFixTestGenerated.Suppress.class, QuickFixTestGenerated.TypeAddition.class, QuickFixTestGenerated.TypeImports.class, QuickFixTestGenerated.TypeMismatch.class, QuickFixTestGenerated.TypeProjection.class, QuickFixTestGenerated.UselessImports.class, QuickFixTestGenerated.Variables.class, QuickFixTestGenerated.When.class})
@InnerTestClasses({QuickFixTestGenerated.Abstract.class, QuickFixTestGenerated.AddStarProjections.class, QuickFixTestGenerated.AutoImports.class, QuickFixTestGenerated.ChangeSignature.class, QuickFixTestGenerated.CheckArguments.class, QuickFixTestGenerated.ConflictingImports.class, QuickFixTestGenerated.CreateFromUsage.class, QuickFixTestGenerated.Expressions.class, QuickFixTestGenerated.Migration.class, QuickFixTestGenerated.Modifiers.class, QuickFixTestGenerated.Nullables.class, QuickFixTestGenerated.Override.class, QuickFixTestGenerated.PlatformClasses.class, QuickFixTestGenerated.Supercalls.class, QuickFixTestGenerated.SupertypeInitialization.class, QuickFixTestGenerated.Suppress.class, QuickFixTestGenerated.TypeAddition.class, QuickFixTestGenerated.TypeImports.class, QuickFixTestGenerated.TypeMismatch.class, QuickFixTestGenerated.TypeProjection.class, QuickFixTestGenerated.Variables.class, QuickFixTestGenerated.When.class})
@RunWith(JUnit3RunnerWithInners.class)
public class QuickFixTestGenerated extends AbstractQuickFixTest {
public void testAllFilesPresentInQuickfix() throws Exception {
@@ -617,6 +617,21 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
}
}
@TestMetadata("idea/testData/quickfix/conflictingImports")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class ConflictingImports extends AbstractQuickFixTest {
public void testAllFilesPresentInConflictingImports() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/conflictingImports"), Pattern.compile("^before(\\w+)\\.kt$"), true);
}
@TestMetadata("beforeRemoveConflictingImport.kt")
public void testRemoveConflictingImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/conflictingImports/beforeRemoveConflictingImport.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/quickfix/createFromUsage")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({CreateFromUsage.CreateClass.class, CreateFromUsage.CreateFunction.class, CreateFromUsage.CreateVariable.class})
@@ -4641,21 +4656,6 @@ public class QuickFixTestGenerated extends AbstractQuickFixTest {
}
}
@TestMetadata("idea/testData/quickfix/uselessImports")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class UselessImports extends AbstractQuickFixTest {
public void testAllFilesPresentInUselessImports() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), new File("idea/testData/quickfix/uselessImports"), Pattern.compile("^before(\\w+)\\.kt$"), true);
}
@TestMetadata("beforeRemoveUselessImport.kt")
public void testRemoveUselessImport() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/quickfix/uselessImports/beforeRemoveUselessImport.kt");
doTest(fileName);
}
}
@TestMetadata("idea/testData/quickfix/variables")
@TestDataPath("$PROJECT_ROOT")
@InnerTestClasses({Variables.ChangeMutability.class, Variables.ChangeToBackingField.class, Variables.ChangeToFunctionInvocation.class, Variables.ChangeToPropertyName.class, Variables.RemoveValVarFromParameter.class})
@@ -97,12 +97,6 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
doTest(fileName);
}
@TestMetadata("DontImportRootScope.kt")
public void testDontImportRootScope() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/DontImportRootScope.kt");
doTest(fileName);
}
@TestMetadata("EnumValues.kt")
public void testEnumValues() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/EnumValues.kt");
@@ -145,6 +139,12 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
doTest(fileName);
}
@TestMetadata("ImportFromRootScope.kt")
public void testImportFromRootScope() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/ImportFromRootScope.kt");
doTest(fileName);
}
@TestMetadata("InClassParameter.kt")
public void testInClassParameter() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/resolve/references/InClassParameter.kt");