Changed priority for default imports + default imports include all built-ins explicitly for java module

#KT-4374 Fixed
This commit is contained in:
Valentin Kipyatkov
2015-01-19 19:17:23 +03:00
parent ae9ebbec7d
commit b9d47ffe7a
14 changed files with 76 additions and 86 deletions
@@ -4745,6 +4745,12 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("DefaultImportsPriority.kt")
public void testDefaultImportsPriority() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/imports/DefaultImportsPriority.kt");
doTest(fileName);
}
@TestMetadata("DontImportRootScope.kt")
public void testDontImportRootScope() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/imports/DontImportRootScope.kt");
@@ -304,7 +304,7 @@ public class JetTypeCheckerTest extends JetLiteFixture {
assertSubtype("Derived_T<Int>", "Base_T<in Int>");
assertSubtype("MDerived_T<Int>", "Base_T<in Int>");
assertSubtype("ArrayList<Int>", "List<in Int>");
assertSubtype("ArrayList<Int>", "InvList<in Int>");
// assertSubtype("java.lang.Integer", "java.lang.Comparable<java.lang.Integer>?");
}
@@ -596,7 +596,14 @@ public class JetTypeCheckerTest extends JetLiteFixture {
InjectorForJavaDescriptorResolver injector = InjectorForJavaDescriptorResolverUtil.create(getProject(), trace, true);
ModuleDescriptor module = injector.getModule();
for (ImportPath defaultImport : module.getDefaultImports()) {
writableScope.importScope(module.getPackage(defaultImport.fqnPart()).getMemberScope());
FqName fqName = defaultImport.fqnPart();
if (defaultImport.isAllUnder()) {
writableScope.importScope(module.getPackage(fqName).getMemberScope());
}
else {
writableScope.addClassifierAlias(defaultImport.getImportedName(),
module.getPackage(fqName.parent()).getMemberScope().getClassifier(fqName.shortName()));
}
}
writableScope.importScope(module.getPackage(FqName.ROOT).getMemberScope());
writableScope.changeLockLevel(WritableScope.LockLevel.BOTH);