FIR: rename AMBIGUITY to OVERLOAD_RESOLUTION_AMBIGUITY to match FE 1.0

This commit is contained in:
Mikhail Glukhikh
2021-04-02 11:51:36 +03:00
parent 71397a06fb
commit f0ff9ad5a7
168 changed files with 504 additions and 1197 deletions
@@ -40,6 +40,6 @@ import libPackageCase1ExplicitDuplicate.emptyArray
class Case1(){
fun case1() {
<!AMBIGUITY!>emptyArray<!><Int>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>emptyArray<!><Int>()
}
}
@@ -35,6 +35,6 @@ import libPackageCase1Explicit.emptyArray
class Case1(){
fun case1() {
<!AMBIGUITY!>emptyArray<!><Int>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>emptyArray<!><Int>()
}
}
@@ -13,7 +13,7 @@ import libCase1.*
import kotlin.text.*
fun case1() {
<!AMBIGUITY!>Regex<!>("")
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Regex<!>("")
}
// FILE: Lib1.kt
@@ -33,7 +33,7 @@ import kotlin.text.*
fun case2() {
<!AMBIGUITY!>Regex<!>("")
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Regex<!>("")
}
// FILE: Lib2.kt
@@ -80,7 +80,7 @@ import libCase5.a.*
import libCase5.b.*
fun case5() {
<!AMBIGUITY!>Regex<!>("")
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Regex<!>("")
}
// FILE: Lib6.kt
@@ -101,7 +101,7 @@ import libCase6.a.*
import libCase6.b.*
fun case6() {
<!AMBIGUITY!>MyRegex<!>("")
<!OVERLOAD_RESOLUTION_AMBIGUITY!>MyRegex<!>("")
}
// FILE: Lib8.kt
@@ -1,293 +0,0 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
*
* SPEC VERSION: 0.1-401
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
* NUMBER: 4
* DESCRIPTION:
*/
// FILE: TestCase1.kt
/*
* TESTCASE NUMBER: 1
*
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-39162
*/
package testPackCase1
import libCase1.a.*
import libCase1.b.*
fun case1() {
<!DEBUG_INFO_CALL("fqName: libCase1.a.Regex; typeCall: function")!>Regex("")<!>
}
// FILE: Lib1.kt
package libCase1.a
fun Regex(pattern: String) {}
object Regex {
operator fun invoke(s: String) {}
}
// FILE: Lib1_1.kt
package libCase1.b
enum class Regex{
;
companion object {
operator fun invoke(s: String) {}
}
}
// FILE: TestCase2.kt
/*
* TESTCASE NUMBER: 2
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-39162
*/
package testPackCase2
import libCase2.a.*
import libCase2.b.*
fun case2() {
<!DEBUG_INFO_CALL("fqName: libCase2.a.Regex; typeCall: function")!>Regex("")<!>
}
// FILE: Lib2.kt
package libCase2.a
fun Regex(pattern: String) {}
//object Regex {
// operator fun invoke(s: String) {}
//}
// FILE: Lib12.kt
package libCase2.b
enum class Regex{
;
companion object {
operator fun invoke(s: String) {}
}
}
// FILE: TestCase3.kt
/*
* TESTCASE NUMBER: 3
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-39162
*/
package testPackCase3
import libCase3.a.*
import libCase3.b.*
fun case3() {
<!DEBUG_INFO_CALL("fqName: libCase3.a.Regex; typeCall: function")!>Regex("")<!>
}
// FILE: Lib3.kt
package libCase3.a
fun Regex(pattern: String) {}
object Regex {
operator fun invoke(s: String) {}
}
// FILE: Lib1_3.kt
package libCase3.b
class Regex(val s: String)
// FILE: TestCase4.kt
/*
* TESTCASE NUMBER: 4
*/
package testPackCase4
import libCase4.a.*
import libCase4.b.*
fun case4() {
<!AMBIGUITY!>Regex<!>("")
}
// FILE: Lib4.kt
package libCase4.a
fun Regex(pattern: String) {}
//object Regex {
// operator fun invoke(s: String) {}
//}
// FILE: Lib14.kt
package libCase4.b
class Regex(val s: String)
// FILE: TestCase5.kt
/*
* TESTCASE NUMBER: 5
*/
package testPackCase5
import libCase5.a.*
import libCase5.b.*
fun case(){
<!AMBIGUITY!>A<!>()
}
// FILE: Lib5.kt
package libCase5.a
fun A() {} //(1)
//object A{
// operator fun invoke(){}
//}
// FILE: Lib6.kt
package libCase5.b
class A()
// FILE: TestCase6.kt
/*
* TESTCASE NUMBER: 6
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-39162
*/
package testPackCase6
import libCase6.a.*
import libCase6.b.*
fun case(){
<!DEBUG_INFO_CALL("fqName: libCase6.a.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
}
// FILE: Lib7.kt
package libCase6.a
fun A() : String = " " //(1)
object A{
//operator fun invoke(){}
}
// FILE: Lib8.kt
package libCase6.b
class A()
// FILE: TestCase7.kt
/*
* TESTCASE NUMBER: 7
*/
package testPackCase7
import libCase7.a.*
import libCase7.b.*
fun case7(){
<!AMBIGUITY!>A<!>()
}
object A{
//operator fun invoke(){}
}
// FILE: Lib9.kt
package libCase7.a
fun A() : String = " " //(1)
// FILE: Lib10.kt
package libCase7.b
class A()
// FILE: TestCase8.kt
/*
* TESTCASE NUMBER: 8
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-39162
*/
package testPackCase8
import libCase8.a.*
import libCase8.b.*
import libCase8.c.*
fun case8(){
<!DEBUG_INFO_CALL("fqName: libCase8.a.A; typeCall: function")!>A()<!>
A()
}
// FILE: Lib11.kt
package libCase8.a
fun A() : String = " " //(1)
// FILE: Lib1_2.kt
package libCase8.b
class A()
// FILE: Lib13.kt
package libCase8.c
object A{
//operator fun invoke(){}
}
// FILE: TestCase9.kt
/*
* TESTCASE NUMBER: 9
*/
package testPackCase
import libCase9.a.*
import libCase9.b.*
import libCase9.c.A
fun case9(){
<!AMBIGUITY!>A<!>()
}
// FILE: Lib1_4.kt
package libCase9.a
fun A() : String = " " //(1)
// FILE: Lib15.kt
package libCase9.b
class A()
// FILE: Lib16.kt
package libCase9.c
object A{
//operator fun invoke(){}
}
// FILE: TestCase10.kt
/*
* TESTCASE NUMBER: 10
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-39162
*/
package testPackCase
import libCase10.a.*
import libCase10.b.*
import libCase10.c.*
fun case10(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
}
// FILE: Liba.kt
package libCase10.a
fun A() : String = " " //(1)
// FILE: Libb.kt
package libCase10.b
class A()
// FILE: Libc.kt
package libCase10.c
interface A
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
@@ -26,9 +26,9 @@ import LibPackCase1.b.*
fun case1 (){
var b: B? = B()
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!AMBIGUITY!>+=<!> { C() }<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> { C() }<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!AMBIGUITY!>+=<!> {1}<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> {1}<!>
}
class B {
@@ -63,9 +63,9 @@ import LibPackCase2.b.*
fun case2 (){
var b: B = B()
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!AMBIGUITY!>+=<!> { C() }<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> { C() }<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!AMBIGUITY!>+=<!> {1}<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> {1}<!>
}
class B {
@@ -10,9 +10,9 @@ import LibPackCase1.a.*
import LibPackCase1.b.*
fun case1 (){
var b: B? = null
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!AMBIGUITY!>+=<!> { C() }<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> { C() }<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!AMBIGUITY!>+=<!> {1}<!>
<!DEBUG_INFO_CALL("fqName: fqName is unknown; typeCall: unresolved")!>b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> {1}<!>
}
class B {
@@ -15,9 +15,9 @@ import LibPackCase1.b.*
fun case1 (){
var b: B? = B()
b <!AMBIGUITY!>+=<!> { C() }
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> { C() }
b <!AMBIGUITY!>+=<!> {1}
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> {1}
}
class B {
@@ -15,9 +15,9 @@ import LibPackCase1.b.plusAssign
fun case1 (){
var b: B? = B()
b <!AMBIGUITY!>+=<!> { C() }
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> { C() }
b <!AMBIGUITY!>+=<!> {1}
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!> {1}
}
class B {
@@ -15,8 +15,8 @@ import LibPackCase1.b.plusAssign
fun case1 (){
var b: B = B()
b <!AMBIGUITY!>+=<!>{ C() }
b <!AMBIGUITY!>+=<!>{ 1 }
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!>{ C() }
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!>{ 1 }
}
class B
@@ -48,10 +48,10 @@ import LibPackCase2.b.plusAssign
fun case2 (){
var b: B = B()
b <!AMBIGUITY!>+=<!>{ C() }
b <!AMBIGUITY!>+=<!>{ 1 }
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!>{ C() }
b <!OVERLOAD_RESOLUTION_AMBIGUITY!>+=<!>{ 1 }
b.<!AMBIGUITY!>plusAssign<!>{ C() }
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>plusAssign<!>{ C() }
}
class B
@@ -8,7 +8,7 @@ class Case1() {
fun foo(vararg x: Short): Unit = TODO()//(2)
fun testcase() {
<!AMBIGUITY!>foo<!>(1, 1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
}
}
@@ -18,7 +18,7 @@ class Case2() {
fun foo(vararg x: Int?): Unit = TODO() // (1.2)
fun case(){
<!AMBIGUITY!>foo<!>(1, 1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
}
}
// TESTCASE NUMBER: 3
@@ -27,7 +27,7 @@ class Case3() {
fun foo(vararg x: Int?): Unit = TODO() // (1.2)
fun case(){
<!AMBIGUITY!>foo<!>(1, 1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
}
}
@@ -37,7 +37,7 @@ class Case4() {
fun foo(y: Int, x: Long): Unit = TODO() // (1.2)
fun case(){
<!AMBIGUITY!>foo<!>(1, 1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
}
}
@@ -48,8 +48,8 @@ class Case5() {
fun foo(y: Int, x: Long, a : Any =""): Unit = TODO() // (1.2)
fun case(){
<!AMBIGUITY!>foo<!>(1, 1)
<!AMBIGUITY!>foo<!>(1, 1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
}
}
@@ -61,5 +61,5 @@ interface C
fun foo(x: B) {} //(1)
fun foo(y: C, z: String = "foo") {} //2
fun bar() {
<!AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
}
@@ -11,5 +11,5 @@ interface C
fun foo(x: B) {} //(1)
fun foo(y: C, z: String = "foo") {} //2
fun bar() {
<!AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
}
@@ -13,7 +13,7 @@ import testPackCase1.I1.Companion.foo
class Case2() : I2, I1{
fun test(){
<!AMBIGUITY!>foo<!>(1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
}
}
@@ -39,7 +39,7 @@ import testPackCase2.I1.Companion.foo
class Case2() : I2, I1{
fun test(){
<!AMBIGUITY!>foo<!>(1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
}
}
@@ -15,7 +15,7 @@ import testPackCase1.I4.Companion.foo
class Case1() : I2, I1, I3, I4 {
fun test() {
<!AMBIGUITY!>foo<!>(1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
}
}
@@ -15,7 +15,7 @@ import testPackCase1.I4.Companion.foo
class Case1() : I2, I1, I3, I4 {
fun test() {
<!AMBIGUITY!>foo<!>(1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
}
}
@@ -15,7 +15,7 @@ import testPackCase1.I4.Companion.foo
class Case1() : I2, I1, I3, I4 {
fun test() {
<!AMBIGUITY!>foo<!>(1)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
}
}
@@ -15,9 +15,9 @@ interface I2
operator fun I2.invoke(): String = TODO()
fun case1(a: A) {
a.<!AMBIGUITY!>invoke<!>()
<!AMBIGUITY!>a<!>()
<!AMBIGUITY!>A()<!>()
a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>a<!>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>A()<!>()
}
// FILE: TestCase2.kt
@@ -33,10 +33,10 @@ interface Interface2
operator fun Interface2.invoke(): String = TODO()
fun case1(a: I) {
a.<!AMBIGUITY!>invoke<!>()
<!AMBIGUITY!>a<!>()
a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>a<!>()
val x = <!AMBIGUITY!>object : I {}<!> ()
val x = <!OVERLOAD_RESOLUTION_AMBIGUITY!>object : I {}<!> ()
}
// FILE: TestCase3.kt
@@ -53,8 +53,8 @@ interface Interface2
operator fun Interface2.invoke(x :() -> Unit): String = TODO()
fun case1(a: I) {
a.<!AMBIGUITY!>invoke<!>{}
<!AMBIGUITY!>a<!>{}
a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>{}
<!OVERLOAD_RESOLUTION_AMBIGUITY!>a<!>{}
val x = <!AMBIGUITY!>object : I {}<!> {}
val x = <!OVERLOAD_RESOLUTION_AMBIGUITY!>object : I {}<!> {}
}
@@ -15,9 +15,9 @@ interface I2
operator fun <R>I2.invoke(): String = TODO()
fun case1(a: A) {
a.<!AMBIGUITY!>invoke<!>()
<!AMBIGUITY!>a<!>()
<!AMBIGUITY!>A()<!>()
a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>a<!>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>A()<!>()
}
// FILE: TestCase2.kt
@@ -33,10 +33,10 @@ interface Interface2
operator fun <R>Interface2.invoke(): String = TODO()
fun case1(a: I) {
a.<!AMBIGUITY!>invoke<!>()
<!AMBIGUITY!>a<!>()
a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>()
<!OVERLOAD_RESOLUTION_AMBIGUITY!>a<!>()
val x = <!AMBIGUITY!>object : I {}<!> ()
val x = <!OVERLOAD_RESOLUTION_AMBIGUITY!>object : I {}<!> ()
}
// FILE: TestCase3.kt
@@ -53,8 +53,8 @@ interface Interface2
operator fun <T>Interface2.invoke(x :() -> Unit): String = TODO()
fun case1(a: I) {
a.<!AMBIGUITY!>invoke<!>{}
<!AMBIGUITY!>a<!>{}
a.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>{}
<!OVERLOAD_RESOLUTION_AMBIGUITY!>a<!>{}
val x = <!AMBIGUITY!>object : I {}<!> {}
val x = <!OVERLOAD_RESOLUTION_AMBIGUITY!>object : I {}<!> {}
}
@@ -9,5 +9,5 @@ interface C
fun foo(x: B) {} //(1)
fun foo(y: C, z: String = "foo") {} //2
fun case1() {
<!AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
}
@@ -14,8 +14,8 @@ import LibPackCase1.a.boo
import LibPackCase1.b.boo
fun case1 (b: B?){
b.<!AMBIGUITY!>boo<!>({ C() })
b.<!AMBIGUITY!>boo<!>({1})
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({ C() })
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({1})
}
class B {
@@ -49,8 +49,8 @@ import LibPackCase2.a.*
import LibPackCase2.b.*
fun case2 (b: B?){
b.<!AMBIGUITY!>boo<!>({ C() })
b.<!AMBIGUITY!>boo<!>({1})
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({ C() })
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({1})
}
class B {
@@ -14,6 +14,6 @@ fun case1(x: Any) {
x.<!DEBUG_INFO_CALL("fqName: case1.foo; typeCall: extension function")!>foo()<!> // to (3)
x.foo()
if (x is B1 && x is A1) {
x.<!AMBIGUITY!>foo<!>()
x.<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>()
}
}
@@ -10,6 +10,6 @@ class Case1 {
fun <T : Any> List<Any>.foo(x: T) {}
fun <T : Number> case(x: List<T>, y: T) {
x.<!AMBIGUITY!>foo<!>(y)
x.<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(y)
}
}
@@ -54,8 +54,8 @@ class Case3() : I {
fun x() = "" as CharSequence
fun case() {
I.<!AMBIGUITY!>invoke<!>(::<!UNRESOLVED_REFERENCE!>x<!>)
<!AMBIGUITY!>I<!>(::<!UNRESOLVED_REFERENCE!>x<!>)
<!AMBIGUITY!>Case3<!>(::<!UNRESOLVED_REFERENCE!>x<!>)
I.<!OVERLOAD_RESOLUTION_AMBIGUITY!>invoke<!>(::<!UNRESOLVED_REFERENCE!>x<!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>I<!>(::<!UNRESOLVED_REFERENCE!>x<!>)
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Case3<!>(::<!UNRESOLVED_REFERENCE!>x<!>)
}
}