FIR: prioritize visible imported classes during type resolution
and produce an error on ambiguity.
This commit is contained in:
@@ -1,17 +0,0 @@
|
||||
// FILE: a.kt
|
||||
package a
|
||||
|
||||
class X
|
||||
|
||||
// FILE: b.kt
|
||||
package b
|
||||
|
||||
class X
|
||||
|
||||
// FILE: c.kt
|
||||
package c
|
||||
|
||||
import a.*
|
||||
import b.*
|
||||
|
||||
class Y : X
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: a.kt
|
||||
package a
|
||||
|
||||
|
||||
+1
-1
@@ -14,4 +14,4 @@ package c
|
||||
import a.X
|
||||
import b.X
|
||||
|
||||
class Y : X
|
||||
class Y : <!UNRESOLVED_REFERENCE!>X<!>
|
||||
-12
@@ -1,12 +0,0 @@
|
||||
// FILE: File.kt
|
||||
package pack
|
||||
|
||||
public open class InetAddressImpl
|
||||
|
||||
// FILE: Main.kt
|
||||
package a
|
||||
|
||||
import java.net.* // should not import java.net.InetAddressImpl because it's package local
|
||||
import pack.*
|
||||
|
||||
class X : <!UNRESOLVED_REFERENCE!>InetAddressImpl<!>() // should resolve to our pack.InetAddressImpl
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: File.kt
|
||||
package pack
|
||||
|
||||
|
||||
@@ -17,8 +17,8 @@ class D {
|
||||
import a.A.B
|
||||
import a.D.B
|
||||
|
||||
fun test(b: B) {
|
||||
B()
|
||||
fun test(b: <!UNRESOLVED_REFERENCE!>B<!>) {
|
||||
<!UNRESOLVED_REFERENCE!>B<!>()
|
||||
}
|
||||
|
||||
// FILE: d.kt
|
||||
@@ -26,6 +26,6 @@ import a.A.*
|
||||
import a.D.*
|
||||
|
||||
// todo ambiguvity here
|
||||
fun test2(b: B) {
|
||||
B()
|
||||
fun test2(b: <!UNRESOLVED_REFERENCE!>B<!>) {
|
||||
<!UNRESOLVED_REFERENCE!>B<!>()
|
||||
}
|
||||
-17
@@ -1,17 +0,0 @@
|
||||
// FILE: File1.kt
|
||||
package pack1
|
||||
|
||||
private class SomeClass
|
||||
|
||||
// FILE: File2.kt
|
||||
package pack2
|
||||
|
||||
public open class SomeClass
|
||||
|
||||
// FILE: Main.kt
|
||||
package a
|
||||
|
||||
import pack1.*
|
||||
import pack2.*
|
||||
|
||||
class X : <!EXPOSED_SUPER_CLASS, HIDDEN!>SomeClass<!>()
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: File1.kt
|
||||
package pack1
|
||||
|
||||
|
||||
@@ -1,21 +0,0 @@
|
||||
// FILE: File1.kt
|
||||
package pack1
|
||||
|
||||
public class SomeClass {
|
||||
private class N
|
||||
public open class PublicNested
|
||||
}
|
||||
|
||||
// FILE: File2.kt
|
||||
package pack2
|
||||
|
||||
public open class N
|
||||
|
||||
// FILE: Main.kt
|
||||
package a
|
||||
|
||||
import pack1.SomeClass.*
|
||||
import pack2.*
|
||||
|
||||
class X : <!EXPOSED_SUPER_CLASS, HIDDEN!>N<!>()
|
||||
class Y : PublicNested()
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// FILE: File1.kt
|
||||
package pack1
|
||||
|
||||
|
||||
+1
-1
@@ -24,4 +24,4 @@ package c
|
||||
import a.*
|
||||
import b.*
|
||||
|
||||
fun test(): x = d().x()
|
||||
fun test(): <!UNRESOLVED_REFERENCE!>x<!> = d().x()
|
||||
|
||||
Vendored
+2
-2
@@ -22,8 +22,8 @@ class A {
|
||||
import p1.*
|
||||
import p2.*
|
||||
|
||||
fun test(a: A) {
|
||||
a.m1()
|
||||
fun test(a: <!UNRESOLVED_REFERENCE!>A<!>) {
|
||||
a.<!UNRESOLVED_REFERENCE!>m1<!>()
|
||||
a.<!UNRESOLVED_REFERENCE!>m2<!>()
|
||||
}
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -39,8 +39,8 @@ import p1.*
|
||||
import p2.*
|
||||
import p3.*
|
||||
|
||||
fun test(a: A) {
|
||||
a.v1
|
||||
fun test(a: <!UNRESOLVED_REFERENCE!>A<!>) {
|
||||
a.<!UNRESOLVED_REFERENCE!>v1<!>
|
||||
a.<!UNRESOLVED_REFERENCE!>v2<!>
|
||||
a.<!UNRESOLVED_REFERENCE!>v3<!>
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -23,8 +23,8 @@ class A {
|
||||
import p1.*
|
||||
import p2.*
|
||||
|
||||
fun test(a: A) {
|
||||
a.m1()
|
||||
fun test(a: <!UNRESOLVED_REFERENCE!>A<!>) {
|
||||
a.<!UNRESOLVED_REFERENCE!>m1<!>()
|
||||
a.<!UNRESOLVED_REFERENCE!>m2<!>()
|
||||
}
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -40,8 +40,8 @@ import p1.*
|
||||
import p2.*
|
||||
import p3.*
|
||||
|
||||
fun test(a: A) {
|
||||
a.v1
|
||||
fun test(a: <!UNRESOLVED_REFERENCE!>A<!>) {
|
||||
a.<!UNRESOLVED_REFERENCE!>v1<!>
|
||||
a.<!UNRESOLVED_REFERENCE!>v2<!>
|
||||
a.<!UNRESOLVED_REFERENCE!>v3<!>
|
||||
}
|
||||
|
||||
+2
-2
@@ -29,6 +29,6 @@ fun test() {
|
||||
<!AMBIGUITY!>Cls<!>()
|
||||
take(<!AMBIGUITY!>Cls<!>())
|
||||
|
||||
Cls2()
|
||||
take(Cls2())
|
||||
<!UNRESOLVED_REFERENCE!>Cls2<!>()
|
||||
take(<!UNRESOLVED_REFERENCE!>Cls2<!>())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user