KT-1579 "Can't import nested class/trait" partially: Entry can be imported, but Map.Entry in code is still unresolved

This commit is contained in:
Svetlana Isakova
2012-03-16 17:09:18 +04:00
parent ba841816c8
commit 114988ac82
15 changed files with 341 additions and 273 deletions
@@ -70,7 +70,7 @@ fun bar() {}
//FILE:c.kt
package c
import C.*
import <!CANNOT_IMPORT_FROM_ELEMENT!>C<!>.*
object C {
fun f() {
@@ -79,7 +79,7 @@ object C {
}
fun foo() {
if (i == 3) f()
if (<!UNRESOLVED_REFERENCE!>i<!> == 3) <!UNRESOLVED_REFERENCE!>f<!>()
}
//FILE:d.kt
@@ -96,4 +96,4 @@ class A() {
open class B() {}
object C : B() {}
}
}
}
@@ -0,0 +1,9 @@
//FILE:a.kt
package lib
trait WithInner {
trait Inner {
}
}
//FILE:b.kt
package user
import lib.WithInner.Inner
@@ -0,0 +1,12 @@
//FILE:a.kt
//+JDK
package a
import java.util.Map.*
fun foo(b : Entry<String, String>) = b
//FILE:b.kt
//+JDK
package b
import java.util.Map.Entry
fun bar(b : Entry<String, String>) = b
@@ -0,0 +1,24 @@
// import all members from class object
package c
import A.*
import <!CANNOT_IMPORT_FROM_ELEMENT!>M<!>.*
fun foo() {
val <!UNUSED_VARIABLE!>b<!>: B = B()
var <!UNUSED_VARIABLE!>r<!>: <!UNRESOLVED_REFERENCE!>R<!> = <!UNRESOLVED_REFERENCE!>R<!>()
}
class A() {
class object {
class B() {
class object {
}
}
}
}
object M {
fun foo() {}
class R() {}
}
@@ -0,0 +1,33 @@
package d
//import from objects before properties resolve
import <!CANNOT_IMPORT_FROM_ELEMENT!>A<!>.*
import <!CANNOT_IMPORT_FROM_ELEMENT!>M<!>.R
import <!CANNOT_IMPORT_FROM_ELEMENT!>M<!>.R.bar
import <!CANNOT_IMPORT_FROM_ELEMENT!>M<!>.T
import <!CANNOT_IMPORT_FROM_ELEMENT!>M<!>.Y
var r: T = <!UNRESOLVED_REFERENCE!>T<!>()
val y: T = <!UNRESOLVED_REFERENCE!>Y<!>
fun f() {
<!UNRESOLVED_REFERENCE!>bar<!>()
<!UNRESOLVED_REFERENCE!>R<!>.bar()
<!UNRESOLVED_REFERENCE!>B<!>.foo()
}
object M {
object R {
fun bar() {}
}
open class T() {}
object Y : T() {}
}
object A {
object B {
fun foo() {}
}
}
@@ -35,7 +35,7 @@ object N {
//FILE:b.kt
package b
import N.M
import <!CANNOT_IMPORT_FROM_ELEMENT!>N<!>.M
import A.P
import b.A.B
@@ -45,7 +45,7 @@ fun foo() {
P.foo()
M.bar()
<!UNRESOLVED_REFERENCE!>M<!>.bar()
}
class A() {
@@ -66,65 +66,4 @@ object N {
object M {
fun bar() {}
}
}
//FILE:c.kt
// import all members from class object
package c
import A.*
import M.*
fun foo() {
val <!UNUSED_VARIABLE!>b<!>: B = B()
var <!UNUSED_VARIABLE!>r<!>: R = R()
}
class A() {
class object {
class B() {
class object {
}
}
}
}
object M {
fun foo() {}
class R() {}
}
//FILE:d.kt
package d
//import from objects before properties resolve
import A.*
import M.R
import M.R.<!CANNOT_BE_IMPORTED!>bar<!>
import M.T
import M.Y
var r: T = T()
val y: T = Y
fun f() {
<!UNRESOLVED_REFERENCE!>bar<!>()
R.bar()
B.foo()
}
object M {
object R {
fun bar() {}
}
open class T() {}
object Y : T() {}
}
object A {
object B {
fun foo() {}
}
}
}