Importing root scope without members.

GitOrigin-RevId: 4086938e65d3274cd7f3b4f183fa52bcfdbcd050
This commit is contained in:
Evgeny Gerashchenko
2014-01-16 21:11:55 +03:00
committed by intellij-monorepo-bot
parent 1a8f6ee9b1
commit 2989c85770
41 changed files with 148 additions and 37 deletions
@@ -387,7 +387,7 @@ fun main(args: Array<String>) {
}
testClass(javaClass<AbstractReferenceResolveTest>()) {
model("resolve/references")
model("resolve/references", pattern = """^([^\.]+)\.kt$""")
}
testClass(javaClass<AbstractReferenceResolveWithLibTest>()) {
@@ -32,6 +32,7 @@ import org.jetbrains.jet.InTextDirectivesUtils;
import org.jetbrains.jet.plugin.JetWithJdkAndRuntimeLightProjectDescriptor;
import org.jetbrains.jet.testing.ReferenceUtils;
import java.io.File;
import java.util.List;
public abstract class AbstractReferenceResolveTest extends LightPlatformCodeInsightFixtureTestCase {
@@ -63,7 +64,14 @@ public abstract class AbstractReferenceResolveTest extends LightPlatformCodeInsi
}
protected void doTest(String path) {
myFixture.configureByFile(path);
assert path.endsWith(".kt") : path;
String extraFile = path.replace(".kt", ".Data.kt");
if (new File(extraFile).exists()) {
myFixture.configureByFiles(path, extraFile);
}
else {
myFixture.configureByFile(path);
}
if (InTextDirectivesUtils.isDirectiveDefined(myFixture.getFile().getText(), MULTIRESOLVE)) {
doMultiResolveTest();
@@ -34,7 +34,7 @@ import org.jetbrains.jet.resolve.AbstractReferenceResolveTest;
@InnerTestClasses({ReferenceResolveTestGenerated.DelegatedPropertyAccessors.class, ReferenceResolveTestGenerated.ForLoopIn.class, ReferenceResolveTestGenerated.Invoke.class})
public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest {
public void testAllFilesPresentInReferences() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("AnnotationForClass.kt")
@@ -72,6 +72,31 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
doTest("idea/testData/resolve/references/CtrlClickResolve.kt");
}
@TestMetadata("DontImportRootScope.kt")
public void testDontImportRootScope() throws Exception {
doTest("idea/testData/resolve/references/DontImportRootScope.kt");
}
@TestMetadata("FakeJavaLang1.kt")
public void testFakeJavaLang1() throws Exception {
doTest("idea/testData/resolve/references/FakeJavaLang1.kt");
}
@TestMetadata("FakeJavaLang2.kt")
public void testFakeJavaLang2() throws Exception {
doTest("idea/testData/resolve/references/FakeJavaLang2.kt");
}
@TestMetadata("FakeJavaLang3.kt")
public void testFakeJavaLang3() throws Exception {
doTest("idea/testData/resolve/references/FakeJavaLang3.kt");
}
@TestMetadata("FakeJavaLang4.kt")
public void testFakeJavaLang4() throws Exception {
doTest("idea/testData/resolve/references/FakeJavaLang4.kt");
}
@TestMetadata("GenericFunctionParameter.kt")
public void testGenericFunctionParameter() throws Exception {
doTest("idea/testData/resolve/references/GenericFunctionParameter.kt");
@@ -176,7 +201,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@InnerTestClasses({DelegatedPropertyAccessors.InSource.class, DelegatedPropertyAccessors.InStandardLibrary.class})
public static class DelegatedPropertyAccessors extends AbstractReferenceResolveTest {
public void testAllFilesPresentInDelegatedPropertyAccessors() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/delegatedPropertyAccessors"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/delegatedPropertyAccessors"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("unresolved.kt")
@@ -187,7 +212,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@TestMetadata("idea/testData/resolve/references/delegatedPropertyAccessors/inSource")
public static class InSource extends AbstractReferenceResolveTest {
public void testAllFilesPresentInInSource() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/delegatedPropertyAccessors/inSource"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/delegatedPropertyAccessors/inSource"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("getExtension.kt")
@@ -225,7 +250,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@TestMetadata("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary")
public static class InStandardLibrary extends AbstractReferenceResolveTest {
public void testAllFilesPresentInInStandardLibrary() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/delegatedPropertyAccessors/inStandardLibrary"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("lazy.kt")
@@ -253,7 +278,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@InnerTestClasses({ForLoopIn.InBuiltIns.class, ForLoopIn.InLibrary.class, ForLoopIn.InSource.class})
public static class ForLoopIn extends AbstractReferenceResolveTest {
public void testAllFilesPresentInForLoopIn() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("unresolvedIterator.kt")
@@ -264,7 +289,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@TestMetadata("idea/testData/resolve/references/forLoopIn/inBuiltIns")
public static class InBuiltIns extends AbstractReferenceResolveTest {
public void testAllFilesPresentInInBuiltIns() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn/inBuiltIns"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn/inBuiltIns"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("extension.kt")
@@ -282,7 +307,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@TestMetadata("idea/testData/resolve/references/forLoopIn/inLibrary")
public static class InLibrary extends AbstractReferenceResolveTest {
public void testAllFilesPresentInInLibrary() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn/inLibrary"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn/inLibrary"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("extension.kt")
@@ -300,7 +325,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
}
public void testAllFilesPresentInInSource() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn/inSource"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/forLoopIn/inSource"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("allMembers.kt")
@@ -328,7 +353,7 @@ public class ReferenceResolveTestGenerated extends AbstractReferenceResolveTest
@TestMetadata("idea/testData/resolve/references/invoke")
public static class Invoke extends AbstractReferenceResolveTest {
public void testAllFilesPresentInInvoke() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/invoke"), Pattern.compile("^(.+)\\.kt$"), true);
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("idea/testData/resolve/references/invoke"), Pattern.compile("^([^\\.]+)\\.kt$"), true);
}
@TestMetadata("lambdaAndParens.kt")
@@ -1,5 +1,3 @@
package testing.kt
class KotlinImpl : <caret>JavaBase()
// REF: (testing.kt).KotlinImpl
// REF: (<root>).KotlinImpl
@@ -1,6 +1,4 @@
package testing.kt
class KotlinImpl : <caret>JavaBase()
// REF: (testing.kt).KotlinImpl
// REF: (<root>).KotlinImpl
// REF: JavaBase
@@ -1,8 +1,6 @@
package testing.kt
trait KotlinTrait: <caret>JavaBase
class KotlinClass : JavaBase
// REF: (testing.kt).KotlinClass
// REF: (testing.kt).KotlinTrait
// REF: (<root>).KotlinClass
// REF: (<root>).KotlinTrait
@@ -1,5 +1,3 @@
package testing.kt
class TestFromJava() : BaseJava() {
override fun testMethod() {
}
@@ -9,5 +7,5 @@ fun test() {
BaseJava().testMethod<caret>()
}
// REF: (in testing.kt.TestFromJava).testMethod()
// REF: (in TestFromJava).testMethod()
// REF: (in BaseJava).testMethod()
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: /
package h
import util.div
trait H
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: /
package h
trait H
fun f(h: H) {
@@ -1,3 +1,3 @@
package util
fun H.div(i: Int) = 3
fun h.H.div(i: Int) = 3
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: foo
package h
import util.foo
trait H
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: foo
package h
trait H
fun f(h: H) {
@@ -1,3 +1,3 @@
package util
fun H.foo(other: H) = ""
fun h.H.foo(other: h.H) = ""
@@ -1,5 +1,7 @@
// "Import" "true"
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> jet.String.minus(str: jet.String): jet.String <i>defined in</i> root package</li><li><b>internal</b> <b>fun</b> jet.String.minus(i: java.lang.Integer): jet.String <i>defined in</i> root package</li></ul></html>
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> jet.String.minus(str: jet.String): jet.String <i>defined in</i> h</li><li><b>internal</b> <b>fun</b> jet.String.minus(i: java.lang.Integer): jet.String <i>defined in</i> h</li></ul></html>
package h
import util.minus
@@ -1,5 +1,7 @@
// "Import" "true"
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> jet.String.minus(str: jet.String): jet.String <i>defined in</i> root package</li><li><b>internal</b> <b>fun</b> jet.String.minus(i: java.lang.Integer): jet.String <i>defined in</i> root package</li></ul></html>
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> jet.String.minus(str: jet.String): jet.String <i>defined in</i> h</li><li><b>internal</b> <b>fun</b> jet.String.minus(i: java.lang.Integer): jet.String <i>defined in</i> h</li></ul></html>
package h
trait H
@@ -1,3 +1,3 @@
package util
fun H?.minus(s: String) = ""
fun h.H?.minus(s: String) = ""
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>public</b> <b>fun</b> jet.String?.plus(other: jet.Any?): jet.String <i>defined in</i> jet</li></ul></html>
package h
import util.plus
trait H
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>public</b> <b>fun</b> jet.String?.plus(other: jet.Any?): jet.String <i>defined in</i> jet</li></ul></html>
package h
trait H
fun f(h: H?) {
@@ -1,3 +1,3 @@
package util
fun H?.plus(s: String) = ""
fun h.H?.plus(s: String) = ""
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: ++
package h
import util.inc
trait H
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: ++
package h
trait H
fun f(h: H?) {
@@ -1,4 +1,4 @@
package util
fun H.inc(): H {
fun h.H.inc(): h.H {
}
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: *=
package h
import util.timesAssign
trait H
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: *=
package h
trait H
fun f(h: H) {
@@ -1,4 +1,4 @@
package util
fun H.div(i: Int) = 3
fun H.timesAssign(i: Int) {}
fun h.H.div(i: Int) = 3
fun h.H.timesAssign(i: Int) {}
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: -
package h
import util.minus
trait H
@@ -1,6 +1,8 @@
// "Import" "true"
// ERROR: Unresolved reference: -
package h
trait H
fun f(h: H?) {
@@ -1,3 +1,3 @@
package util
fun H?.minus() = ""
fun h.H?.minus() = ""
@@ -1,5 +1,7 @@
// "Import" "true"
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> A.plus(): jet.Int <i>defined in</i> root package</li><li><b>public</b> <b>fun</b> jet.String?.plus(other: jet.Any?): jet.String <i>defined in</i> jet</li></ul></html>
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> h.A.plus(): jet.Int <i>defined in</i> h</li><li><b>public</b> <b>fun</b> jet.String?.plus(other: jet.Any?): jet.String <i>defined in</i> jet</li></ul></html>
package h
import util.plus
@@ -1,5 +1,7 @@
// "Import" "true"
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> A.plus(): jet.Int <i>defined in</i> root package</li><li><b>public</b> <b>fun</b> jet.String?.plus(other: jet.Any?): jet.String <i>defined in</i> jet</li></ul></html>
// ERROR: <html>Unresolved reference. <br/> None of the following candidates is applicable because of receiver type mismatch: <ul><li><b>internal</b> <b>fun</b> h.A.plus(): jet.Int <i>defined in</i> h</li><li><b>public</b> <b>fun</b> jet.String?.plus(other: jet.Any?): jet.String <i>defined in</i> jet</li></ul></html>
package h
trait H
@@ -1,3 +1,3 @@
package util
fun H.plus() = ""
fun h.H.plus() = ""
@@ -0,0 +1,2 @@
class Klass {
}
@@ -0,0 +1,5 @@
package test
import <caret>Klass
//REF_EMPTY
@@ -0,0 +1,5 @@
class java {
class lang {
class Fake()
}
}
@@ -0,0 +1,7 @@
import java.lang.* // will import Fake
fun foo() {
<caret>Fake()
}
//REF: (java.lang).Fake
@@ -0,0 +1,5 @@
class java {
class lang {
class Fake()
}
}
@@ -0,0 +1,5 @@
fun foo() {
<caret>Fake() // not imported within "java.lang.*" default import
}
//REF_EMPTY
@@ -0,0 +1,5 @@
class java {
class lang {
class Fake()
}
}
@@ -0,0 +1,8 @@
package nonRoot
import java.lang.* // will not import Fake
fun foo() {
<caret>Fake()
}
//REF_EMPTY
@@ -0,0 +1,5 @@
class java {
class lang {
class Fake()
}
}
@@ -0,0 +1,7 @@
package nonRoot
fun foo() {
java.lang.<caret>Fake() // qualification doesn't help, because we are in other package
}
//REF_EMPTY