[Spec tests] Add diagnostics tests for building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver

This commit is contained in:
anastasiia.spaseeva
2020-03-19 16:28:17 +03:00
committed by Victor Petukhov
parent 81b6e5a373
commit 3b35374186
29 changed files with 1291 additions and 117 deletions
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 6
* NUMBER: 1
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 4
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 9
* NUMBER: 10
@@ -13,6 +13,7 @@
// FILE: KotlinLib.kt
package test.lib
class MyClass {
//property-like (II prio)
companion object foo {
@@ -28,11 +29,12 @@ package overloadResolution
import test.lib.MyClass.foo as boo
//function-like (I prio)
class boo(){}
open class A()
class boo() : A() {}
fun box(): String {
val x = boo()
if (x is boo && !test.lib.MyClass.fooCompanionObj)
val x: Any = boo()
if (x !is A && test.lib.MyClass.fooCompanionObj)
return "OK"
return "NOK"
}
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 6
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 3
* NUMBER: 2
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 10
* NUMBER: 4
@@ -28,7 +28,7 @@ fun box(): String {
boo(1)
if (!test.lib.isFooCalled && isBooCalled)
if (test.lib.isFooCalled && !isBooCalled)
return "OK"
return "NOK"
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 7
* NUMBER: 5
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 7
* NUMBER: 6
@@ -32,7 +32,7 @@ fun foo() { fooFun = true }
fun box(): String {
foo()
if (!test.lib.isMarker && fooFun)
if (test.lib.isMarker && !fooFun)
return "OK"
return "NOK"
}
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 7
* NUMBER: 7
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 8
* NUMBER: 8
@@ -3,8 +3,8 @@
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 5 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 2
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 8
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 10
@@ -34,7 +34,7 @@ fun boo() { booFun = true }
fun box(): String {
boo()
if (booFun && !test.lib.MyClass.fooCompanionObj)
if (!booFun && test.lib.MyClass.fooCompanionObj)
return "OK"
return "NOK"
}
@@ -1,30 +0,0 @@
// WITH_RUNTIME
/*
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-253
* PLACE: overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* RELEVANT PLACES: overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 4
* overload-resolution, callables-and-invoke-convention -> paragraph 2 -> sentence 6
* NUMBER: 3
* DESCRIPTION: function-like prio is higher than property-like callables
*/
class foo(val a: Int)
var fooLambda: Boolean = false
val foo: (Int) -> Unit = { a: Int -> fooLambda = true }
fun box(): String {
val x = foo(1)
if (x is foo && !fooLambda)
return "OK"
return "NOK"
}
@@ -1,63 +1,57 @@
{
"6": {
"5": {
"pos": {
"1": [
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"unexpectedBehaviour": false
@@ -69,77 +63,70 @@
"pos": {
"2": [
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.6.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.6.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.7.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.7.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.8.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.8.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.9.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.9.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.4.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.4.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.5.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.5.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.1.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.1.kt",
"unexpectedBehaviour": false
}
],
"6": [
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.2.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.2.kt",
"unexpectedBehaviour": false
}
],
"4": [
{
"specVersion": "0.1-253",
"specVersion": "0.1-268",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.3.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-253",
"casesNumber": 0,
"description": "function-like prio is higher than property-like callables",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.10.kt",
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.10.kt",
"unexpectedBehaviour": false
}
]
@@ -0,0 +1,91 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
* RELEVANT PLACES: overload-resolution, c-level-partition -> paragraph 1 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 2 -> sentence 1
* overload-resolution, receivers -> paragraph 7 -> sentence 2
* overload-resolution, receivers -> paragraph 7 -> sentence 3
* NUMBER: 1
* DESCRIPTION: sets of non-extension member callables only
*/
package tests.test2
// TESTCASE NUMBER: 1
open class Case1() {
companion object foo {
operator fun invoke() {}
}
val propVal: Int = 1
val propVar: Int = 1
fun function() {}
val markerObj = object : Marker {}
fun innerFun() {
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVal()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVal()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVar()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVar()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.function; typeCall: function")!>function()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.function; typeCall: function")!>function()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Marker.invoke; typeCall: variable&invoke")!>markerObj()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.Marker.invoke; typeCall: variable&invoke")!>markerObj()<!>
}
operator fun Int.invoke() {}
inner class InnerClass {
fun innerClassFun() {
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVal()<!>
this@Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVal()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVar()<!>
this@Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.invoke; typeCall: variable&invoke")!>propVar()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.function; typeCall: function")!>function()<!>
this@Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.function; typeCall: function")!>function()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Marker.invoke; typeCall: variable&invoke")!>markerObj()<!>
this@Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Marker.invoke; typeCall: variable&invoke")!>markerObj()<!>
}
}
}
interface Marker {
operator fun invoke() {}
}
class ExtendCase1() : Case1() {
fun extFun() {
<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.ExtendCase1.invoke; typeCall: variable&invoke")!>propVal()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.ExtendCase1.invoke; typeCall: variable&invoke")!>propVal()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.ExtendCase1.invoke; typeCall: variable&invoke")!>propVar()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.ExtendCase1.invoke; typeCall: variable&invoke")!>propVar()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.ExtendCase1.function; typeCall: function")!>function()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.ExtendCase1.function; typeCall: function")!>function()<!>
<!DEBUG_INFO_CALL("fqName: tests.test2.Marker.invoke; typeCall: variable&invoke")!>markerObj()<!>
this.<!DEBUG_INFO_CALL("fqName: tests.test2.Marker.invoke; typeCall: variable&invoke")!>markerObj()<!>
}
}
fun case6() {
Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: operator function")!>invoke()<!>
Case1.<!DEBUG_INFO_CALL("fqName: tests.test2.Case1.foo.invoke; typeCall: variable&invoke")!>foo()<!>
}
@@ -0,0 +1,53 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
* RELEVANT PLACES: overload-resolution, c-level-partition -> paragraph 1 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 2 -> sentence 1
* overload-resolution, receivers -> paragraph 7 -> sentence 2
* overload-resolution, receivers -> paragraph 7 -> sentence 3
* NUMBER: 2
* DESCRIPTION: set of non-extension member callables only
*/
// TESTCASE NUMBER: 1
interface Marker {
operator fun invoke() {}
}
class Case1() {
fun foo() : Int =1
val foo = object : Marker {}
fun innerFun() {
<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: function")!>foo()<!>
this.<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: function")!>foo()<!>
}
inner class InnerClass0 {
val foo = object : Marker {}
fun innerClassFun() {
<!DEBUG_INFO_CALL("fqName: Marker.invoke; typeCall: variable&invoke")!>foo()<!>
this.<!DEBUG_INFO_CALL("fqName: Marker.invoke; typeCall: variable&invoke")!>foo()<!>
this@Case1.<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: function")!>foo()<!>
}
}
inner class InnerClass1 {
fun foo() : Int =1
fun innerClassFun() {
<!DEBUG_INFO_CALL("fqName: Case1.InnerClass1.foo; typeCall: function")!>foo()<!>
this.<!DEBUG_INFO_CALL("fqName: Case1.InnerClass1.foo; typeCall: function")!>foo()<!>
this@Case1.<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: function")!>foo()<!>
}
}
}
@@ -0,0 +1,53 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* NUMBER: 3
* DESCRIPTION: The sets of non-extension member callables named f of type T;
*/
class Marker {
fun foo() = println("non-extension member toplevel Marker.foo()")
val foo: String = "non-extension member toplevel Marker.foo"
}
// TESTCASE NUMBER: 1
class Case1() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
fun test() {
Marker().<!DEBUG_INFO_CALL("fqName: Marker.foo; typeCall: function")!>foo()<!>
}
}
fun case1() {
Marker().<!DEBUG_INFO_CALL("fqName: Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 2
class Case2() {
fun test() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
Marker().<!DEBUG_INFO_CALL("fqName: Marker.foo; typeCall: function")!>foo()<!>
}
}
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("top level extension marker.foo")
fun case2() {
Marker().<!DEBUG_INFO_CALL("fqName: Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 3
fun case3() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
Marker().<!DEBUG_INFO_CALL("fqName: Marker.foo; typeCall: function")!>foo()<!>
}
@@ -0,0 +1,66 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 3
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 4
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 5
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* overload-resolution, c-level-partition -> paragraph 1 -> sentence 1
* NUMBER: 4
* DESCRIPTION: sets of non-extension member callables, local, explicitly imported, declared in the package scope and star-imported extension callables
*/
// TESTCASE NUMBER: 1, 2, 3
// FILE: Marker.kt
package libPackage
class Marker {
fun foo() = println("non-extension member Marker.foo()")
val foo: String = "non-extension member Marker.foo"
}
// FILE: Tests.kt
package tests
import libPackage.Marker
// TESTCASE NUMBER: 1
class Case1() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
fun test() {
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
}
fun case1() {
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 2
class Case2() {
fun test() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
}
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("top level extension marker.foo")
fun case2() {
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 3
fun case3() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
@@ -0,0 +1,82 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 3
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 4
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 5
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* overload-resolution, callables-and-invoke-convention -> paragraph 6 -> sentence 1
* NUMBER: 5
* DESCRIPTION: sets of non-extension member callables, local, explicitly imported, declared in the package scope and star-imported extension callables
*/
// TESTCASE NUMBER: 1, 2, 3, 4, 5
// FILE: Marker.kt
package libPackage
class Marker {
fun foo() = println("non-extension member Marker.foo()")
val foo: Marker = <!DEBUG_INFO_LEAKING_THIS!>this<!>
operator fun invoke() = println("non-extension member Marker.invoke()")
}
// FILE: Tests.kt
package tests
import libPackage.Marker
// TESTCASE NUMBER: 1
class Case1() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
fun test() {
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
}
fun case1() {
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 2
class Case2() {
fun test() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
}
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("top level extension marker.foo")
fun case2() {
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 3
fun case3() {
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
Marker().<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 4
fun case4(marker : Marker?) {
marker?.<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 5
fun case5(marker : Marker?) {
fun bar(){
fun Marker.<!EXTENSION_SHADOWED_BY_MEMBER!>foo<!>() = println("local extension marker.foo")
marker?.<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
marker?.<!DEBUG_INFO_CALL("fqName: libPackage.Marker.foo; typeCall: function")!>foo()<!>
}
@@ -0,0 +1,103 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* RELEVANT PLACES: overload-resolution, c-level-partition -> paragraph 1 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 2
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 2 -> sentence 1
* overload-resolution, callables-and-invoke-convention -> paragraph 7 -> sentence 1
* overload-resolution, callables-and-invoke-convention -> paragraph 7 -> sentence 2
* overload-resolution, receivers -> paragraph 7 -> sentence 2
* overload-resolution, receivers -> paragraph 7 -> sentence 3
* NUMBER: 1
* DESCRIPTION: The sets of local extension callables
*/
// TESTCASE NUMBER: 1
class Case1() {
fun foo() : Int =1
val foo = object : MarkerCase1 {}
fun innerFun() {
this.<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: function")!>foo()<!>
}
inner class InnerClass0 {
val foo = object : MarkerCase1 {}
operator fun MarkerCase1.invoke() {}
fun innerClassFun() {
this.<!DEBUG_INFO_CALL("fqName: Case1.InnerClass0.invoke; typeCall: variable&invoke")!>foo()<!>
}
}
operator fun MarkerCase1.invoke() {}
inner class InnerClass1(){
val foo = object : MarkerCase1 {}
fun nestedClassFun(){
this.<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: variable&invoke")!>foo()<!>
}
}
}
interface MarkerCase1 {}
fun case1(){
operator fun MarkerCase1.invoke() {}
Case1().InnerClass0().<!DEBUG_INFO_CALL("fqName: case1.invoke; typeCall: variable&invoke")!>foo()<!>
Case1().InnerClass1().<!DEBUG_INFO_CALL("fqName: case1.invoke; typeCall: variable&invoke")!>foo()<!>
}
// TESTCASE NUMBER: 2
open class Case2() {
open fun fooCase2(): MarkerCase2 = object : MarkerCase2 {}
open val fooCase2 = object : MarkerCase2 {}
interface MarkerCase2 {}
open operator fun MarkerCase2.invoke() {}
fun innerFun() {
<!DEBUG_INFO_CALL("fqName: Case2.fooCase2; typeCall: function")!>fooCase2()<!>
this.<!DEBUG_INFO_CALL("fqName: Case2.fooCase2; typeCall: function")!>fooCase2()<!>
}
inner class InnerClass0 : Case2() {
override fun fooCase2(): MarkerCase2 {
return object : MarkerCase2 {}
}
override operator fun MarkerCase2.invoke() {}
fun innerClassFun() {
this@Case2.<!DEBUG_INFO_CALL("fqName: Case2.fooCase2; typeCall: function")!>fooCase2()<!>
this.<!DEBUG_INFO_CALL("fqName: Case2.InnerClass0.fooCase2; typeCall: function")!>fooCase2()<!>
}
}
inner class InnerClass1() {
val fooCase2 = object : MarkerCase2 {}
fun nestedClassFun() {
this.<!DEBUG_INFO_CALL("fqName: Case2.invoke; typeCall: variable&invoke")!>fooCase2()<!>
}
}
}
fun case2() {
operator fun Case2.MarkerCase2.invoke() {}
Case2().InnerClass0().<!DEBUG_INFO_CALL("fqName: Case2.InnerClass0.fooCase2; typeCall: function")!>fooCase2()<!>
Case2().InnerClass1().<!DEBUG_INFO_CALL("fqName: case2.invoke; typeCall: variable&invoke")!>fooCase2()<!>
}
@@ -0,0 +1,71 @@
// !LANGUAGE: +NewInference
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* RELEVANT PLACES: overload-resolution, c-level-partition -> paragraph 1 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 2
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 2 -> sentence 1
* NUMBER: 2
* DESCRIPTION: extension calls with explicit and implicit receiver
* UNEXPECTED BEHAVIOUR
* ISSUES: KT-36475
*/
// TESTCASE NUMBER: 1
class Case1 {
fun bar() {
val foo: String.() -> Unit = {} // (1)
fun String.foo(): Unit {} // (2)
"1".<!DEBUG_INFO_CALL("fqName: Case1.bar.foo; typeCall: extension function")!>foo()<!> // resolves to (2)
with("2") {
foo() //resolves to (1) !!!
this.<!DEBUG_INFO_CALL("fqName: Case1.bar.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".run {
<!DEBUG_INFO_CALL("fqName: kotlin.Function1.invoke; typeCall: variable&invoke")!>foo()<!> //resolves to (1) !!!
this.<!DEBUG_INFO_CALL("fqName: Case1.bar.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".apply {
<!DEBUG_INFO_CALL("fqName: kotlin.Function1.invoke; typeCall: variable&invoke")!>foo()<!> //resolves to (1) !!!
this.<!DEBUG_INFO_CALL("fqName: Case1.bar.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".also {
it.<!DEBUG_INFO_CALL("fqName: Case1.bar.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".let {
it.<!DEBUG_INFO_CALL("fqName: Case1.bar.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
}
}
class B {
val foo: String.() -> Unit = {} // (1)
fun String.foo(): Unit {} // (2)
fun bar() {
"1".<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> // resolves to (2)
val <!UNUSED_VARIABLE!>str<!> = "1"
with("2") {
<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
this.<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".run {
<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
this.<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".apply {
<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
this.<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".also {
it.<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
"".let {
it.<!DEBUG_INFO_CALL("fqName: B.foo; typeCall: extension function")!>foo()<!> //resolves to (2)
}
}
}
@@ -0,0 +1,30 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* RELEVANT PLACES: overload-resolution, c-level-partition -> paragraph 1 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 3 -> sentence 1
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 2 -> sentence 1
* NUMBER: 3
* DESCRIPTION: set of non-extension member callables only
*/
// TESTCASE NUMBER: 1
class Case1 {
operator fun String.invoke() :String{ return this} //fqName: Case1.invoke; typeCall: function
fun String.foo() : String = this //fqName: Case1.foo; typeCall: function;
fun bar() {
"".<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: extension function")!>foo()<!>
"".<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>invoke()<!>
<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>""()<!>
<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>""()()()() ()<!>
<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>""().invoke()()()<!>
<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>""().foo()().invoke()()<!>
<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>"1".foo()()<!>
<!DEBUG_INFO_CALL("fqName: Case1.invoke; typeCall: operator extension function")!>"1"()().invoke()()<!>.<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: extension function")!>foo()<!>
}
}
@@ -0,0 +1,71 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 3
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 4
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 5
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* overload-resolution, receivers -> paragraph 5 -> sentence 1
* NUMBER: 4
* DESCRIPTION: sets of local, explicitly imported, declared in the package scope and star-imported extension callables
*/
// FILE: Extensions.kt
package libPackage
public fun String?.orEmpty(): String = "my Extension for $this"
// FILE: TestCase1.kt
package sentence3
import libPackage.*
import libPackage.orEmpty
private fun String?.orEmpty(): String = "my top-level (pack scope) Extension for $this"
// TESTCASE NUMBER: 1
class Case1() {
fun String?.orEmpty(): String = "my local extension for $this"
fun case1(s: String?) {
s.<!DEBUG_INFO_CALL("fqName: sentence3.Case1.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
}
// FILE: TestCase2.kt
package sentence3
import libPackage.*
//import libPackage.orEmpty
private fun String?.orEmpty(): String = "my top-level (pack scope) Extension for $this"
// TESTCASE NUMBER: 2
class Case2() {
fun String?.orEmpty(): String = "my local extension for $this"
fun case2(s: String?) {
s.<!DEBUG_INFO_CALL("fqName: sentence3.Case2.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
}
// TESTCASE NUMBER: 3
class Case3() {
fun String?.orEmpty(): String = "my local extension for $this"
fun case3(s: String?) {
s.<!DEBUG_INFO_CALL("fqName: sentence3.Case3.orEmpty; typeCall: extension function")!>orEmpty()<!>
fun innerFirst(s: String?){
fun String?.orEmpty(): String = "my local inner extension for $this"
<!DEBUG_INFO_CALL("fqName: sentence3.Case3.case3.innerFirst.s; typeCall: typeCall is unknown")!>s<!>?.<!DEBUG_INFO_CALL("fqName: sentence3.Case3.case3.innerFirst.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
fun innerSecond(){
fun String?.orEmpty(): String = "my local inner extension for $this"
s.<!DEBUG_INFO_CALL("fqName: sentence3.Case3.case3.innerSecond.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
s.<!DEBUG_INFO_CALL("fqName: sentence3.Case3.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
}
@@ -0,0 +1,35 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE:overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 3
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 4
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 5
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* NUMBER: 1
* DESCRIPTION: sets of explicitly imported, declared in the package scope and star-imported extension callables
*/
// FILE: Extensions.kt
package libPackage
public fun String?.orEmpty(): String = "my Extension for $this"
// FILE: TestCase1.kt
package sentence3
import libPackage.*
import libPackage.orEmpty
private fun String?.orEmpty(): String = "my top level extension for $this"
// TESTCASE NUMBER: 1
fun case1(s: String?) {
s.<!DEBUG_INFO_CALL("fqName: libPackage.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
@@ -0,0 +1,122 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 4
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 9 -> sentence 1
* NUMBER: 1
* DESCRIPTION: sets of extension callables declared in the package scope
*/
package tests.diag
// TESTCASE NUMBER: 1, 2
operator fun Int.invoke() {}
// TESTCASE NUMBER: 3, 4
interface Marker {
operator fun invoke() {}
}
// TESTCASE NUMBER: 1
class Case1 {
val foo: Int = 1
}
fun case1() {
Case1().<!DEBUG_INFO_CALL("fqName: tests.diag.invoke; typeCall: variable&invoke")!>foo()<!>
val a = Case1()
a.<!DEBUG_INFO_CALL("fqName: tests.diag.invoke; typeCall: variable&invoke")!>foo()<!>
var b = Case1()
b.<!DEBUG_INFO_CALL("fqName: tests.diag.invoke; typeCall: variable&invoke")!>foo()<!>
}
// TESTCASE NUMBER: 2
class Case2 {
val foo: Int = 1
fun foo(): Int = 1
}
fun case2() {
Case2().<!DEBUG_INFO_CALL("fqName: tests.diag.Case2.foo; typeCall: function")!>foo()<!>
val a = Case2()
a.<!DEBUG_INFO_CALL("fqName: tests.diag.Case2.foo; typeCall: function")!>foo()<!>
var b = Case2()
b.<!DEBUG_INFO_CALL("fqName: tests.diag.Case2.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 3
class Case3() {
val foo = object : Marker {}
fun foo(): Int = 1
fun f() {
this.<!DEBUG_INFO_CALL("fqName: tests.diag.Case3.foo; typeCall: function")!>foo()<!>
}
}
fun case3() {
Case3().<!DEBUG_INFO_CALL("fqName: tests.diag.Case3.foo; typeCall: function")!>foo()<!>
val a = Case3()
a.<!DEBUG_INFO_CALL("fqName: tests.diag.Case3.foo; typeCall: function")!>foo()<!>
var b = Case3()
b.<!DEBUG_INFO_CALL("fqName: tests.diag.Case3.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 4
class Case4() {
val foo = object : Marker {}
fun f() {
this.<!DEBUG_INFO_CALL("fqName: tests.diag.Marker.invoke; typeCall: variable&invoke")!>foo()<!>
}
}
fun case4() {
Case4().<!DEBUG_INFO_CALL("fqName: tests.diag.Marker.invoke; typeCall: variable&invoke")!>foo()<!>
val a = Case4()
a.<!DEBUG_INFO_CALL("fqName: tests.diag.Marker.invoke; typeCall: variable&invoke")!>foo()<!>
var b = Case4()
b.<!DEBUG_INFO_CALL("fqName: tests.diag.Marker.invoke; typeCall: variable&invoke")!>foo()<!>
}
// TESTCASE NUMBER: 5
class Case5() {
companion object foo {
operator fun invoke() {}
}
fun innerFun() = this.<!DEBUG_INFO_CALL("fqName: tests.diag.Case5.foo; typeCall: function")!>foo()<!>
fun foo(): Int = 1
}
fun case5() {
Case5().<!DEBUG_INFO_CALL("fqName: tests.diag.Case5.foo; typeCall: function")!>foo()<!>
val a = Case5()
a.<!DEBUG_INFO_CALL("fqName: tests.diag.Case5.foo; typeCall: function")!>foo()<!>
var b = Case5()
b.<!DEBUG_INFO_CALL("fqName: tests.diag.Case5.foo; typeCall: function")!>foo()<!>
}
// TESTCASE NUMBER: 6
class Case6() {
companion object foo {
operator fun invoke() {}
}
fun innerFun() = <!DEBUG_INFO_CALL("fqName: tests.diag.Case6.foo.invoke; typeCall: variable&invoke")!>foo()<!>
}
fun case6() {
Case6.<!DEBUG_INFO_CALL("fqName: tests.diag.Case6.foo.invoke; typeCall: variable&invoke")!>foo()<!>
}
@@ -0,0 +1,33 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 4
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 5
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* NUMBER: 2
* DESCRIPTION: sets of declared in the package scope and star-imported extension callables
*/
// FILE: Extensions.kt
package libPackage
public fun String?.orEmpty(): String = "my Extension for $this"
// FILE: TestCase2.kt
package sentence3
import libPackage.*
//import libPackage.orEmpty
private fun String?.orEmpty(): String = "my top level extension for $this"
// TESTCASE NUMBER: 1
fun case2(s: String?) {
s.<!DEBUG_INFO_CALL("fqName: sentence3.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
@@ -0,0 +1,28 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 5
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* NUMBER: 1
* DESCRIPTION: set of star-imported extension callables
*/
// FILE: Extensions.kt
package libPackage
public fun String?.orEmpty(): String = "my Extension for $this"
// FILE: TestCase2.kt
package sentence3
import libPackage.*
// TESTCASE NUMBER: 1
fun case2(s: String?) {
s.<!DEBUG_INFO_CALL("fqName: libPackage.orEmpty; typeCall: extension function")!>orEmpty()<!>
}
@@ -0,0 +1,27 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
/*
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
*
* SPEC VERSION: 0.1-268
* PLACE: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 6
* RELEVANT PLACES: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 11 -> sentence 1
* NUMBER: 1
* DESCRIPTION: set of implicitly-imported extension callables
*/
// FILE: Extensions.kt
package libPackage
private fun String?.orEmpty(): String = "my private Extension for $this"
// FILE: TestCase2.kt
package sentence3
import libPackage.* //nothing to import, extension is private
// TESTCASE NUMBER: 1
fun case2(s: String) {
s.<!DEBUG_INFO_CALL("fqName: kotlin.text.orEmpty; typeCall: inline extension function")!>orEmpty()<!>
}
@@ -0,0 +1,177 @@
{
"6": {
"pos": {
"2": [
{
"specVersion": "0.1-268",
"casesNumber": 2,
"description": "The sets of local extension callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 3,
"description": "sets of local, explicitly imported, declared in the package scope and star-imported extension callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 3,
"description": "The sets of non-extension member callables named f of type T;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.3.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 3,
"description": "sets of non-extension member callables, local, explicitly imported, declared in the package scope and star-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.4.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of non-extension member callables only",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 5,
"description": "sets of non-extension member callables, local, explicitly imported, declared in the package scope and star-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.5.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "extension calls with explicit and implicit receiver",
"unexpectedBehaviour": true
}
],
"1": [
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of non-extension member callables only",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 3,
"description": "The sets of non-extension member callables named f of type T;",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 3,
"description": "sets of non-extension member callables, local, explicitly imported, declared in the package scope and star-imported extension callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 5,
"description": "sets of non-extension member callables, local, explicitly imported, declared in the package scope and star-imported extension callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "sets of non-extension member callables only",
"unexpectedBehaviour": false
}
],
"3": [
{
"specVersion": "0.1-268",
"casesNumber": 3,
"description": "sets of local, explicitly imported, declared in the package scope and star-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.4.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "sets of explicitly imported, declared in the package scope and star-imported extension callables",
"unexpectedBehaviour": false
}
],
"4": [
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "sets of explicitly imported, declared in the package scope and star-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/3.1.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 6,
"description": "sets of extension callables declared in the package scope",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "sets of declared in the package scope and star-imported extension callables",
"unexpectedBehaviour": false
}
],
"5": [
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of star-imported extension callables",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "sets of declared in the package scope and star-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/4.2.kt",
"unexpectedBehaviour": false
}
],
"6": [
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of implicitly-imported extension callables",
"unexpectedBehaviour": false
}
]
}
},
"9": {
"pos": {
"1": [
{
"specVersion": "0.1-268",
"casesNumber": 6,
"description": "sets of extension callables declared in the package scope",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/4.1.kt",
"unexpectedBehaviour": false
}
]
}
},
"11": {
"pos": {
"1": [
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of star-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/5.1.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of implicitly-imported extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/6.1.kt",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -0,0 +1,43 @@
{
"1": {
"pos": {
"1": [
{
"specVersion": "0.1-268",
"casesNumber": 2,
"description": "The sets of local extension callables",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.1.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of non-extension member callables only",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.2.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "set of non-extension member callables only",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.3.kt",
"unexpectedBehaviour": false
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "extension calls with explicit and implicit receiver",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.2.kt",
"unexpectedBehaviour": true
},
{
"specVersion": "0.1-268",
"casesNumber": 1,
"description": "sets of non-extension member callables only",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.1.kt",
"unexpectedBehaviour": false
}
]
}
}
}
@@ -25,7 +25,7 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
}
public void testAllFilesPresentInDiagnostics() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true, "helpers", "linked/type-inference", "linked/type-system/type-kinds/type-parameters", "linked/type-system/subtyping", "linked/control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "linked/declarations/classifier-declaration/classifier-initialization", "linked/declarations/function-declaration", "linked/declarations/property-declaration/property-initialization", "linked/annotations", "linked/statements/assignments/simple-assignments", "linked/inheritance", "linked/expressions/function-literals", "linked/expressions/call-and-property-access-expressions", "linked/overloadable-operators", "linked/overload-resolution", "linked/control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph");
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), null, true, "helpers", "linked/type-inference", "linked/type-system/type-kinds/type-parameters", "linked/type-system/subtyping", "linked/control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "linked/declarations/classifier-declaration/classifier-initialization", "linked/declarations/function-declaration", "linked/declarations/property-declaration/property-initialization", "linked/annotations", "linked/statements/assignments/simple-assignments", "linked/inheritance", "linked/expressions/function-literals", "linked/expressions/call-and-property-access-expressions", "linked/overloadable-operators", "linked/overload-resolution/c-level-partition", "linked/overload-resolution/determining-function-applicability-for-a-specific-call", "linked/control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph");
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked")
@@ -37,7 +37,7 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
}
public void testAllFilesPresentInLinked() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), null, true, "type-inference", "type-system/type-kinds/type-parameters", "type-system/subtyping", "control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "declarations/classifier-declaration/classifier-initialization", "declarations/function-declaration", "declarations/property-declaration/property-initialization", "annotations", "statements/assignments/simple-assignments", "inheritance", "expressions/function-literals", "expressions/call-and-property-access-expressions", "overloadable-operators", "overload-resolution", "control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph");
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), null, true, "type-inference", "type-system/type-kinds/type-parameters", "type-system/subtyping", "control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "declarations/classifier-declaration/classifier-initialization", "declarations/function-declaration", "declarations/property-declaration/property-initialization", "annotations", "statements/assignments/simple-assignments", "inheritance", "expressions/function-literals", "expressions/call-and-property-access-expressions", "overloadable-operators", "overload-resolution/c-level-partition", "overload-resolution/determining-function-applicability-for-a-specific-call", "control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph");
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/control--and-data-flow-analysis")
@@ -3371,6 +3371,141 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
}
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Overload_resolution extends AbstractDiagnosticsTestSpec {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInOverload_resolution() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution"), Pattern.compile("^(.+)\\.kt$"), null, true, "c-level-partition", "determining-function-applicability-for-a-specific-call");
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Building_the_overload_candidate_set_ocs extends AbstractDiagnosticsTestSpec {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInBuilding_the_overload_candidate_set_ocs() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Call_with_an_explicit_receiver extends AbstractDiagnosticsTestSpec {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInCall_with_an_explicit_receiver() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class P_6 extends AbstractDiagnosticsTestSpec {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInP_6() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Pos extends AbstractDiagnosticsTestSpec {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
@TestMetadata("1.1.kt")
public void test1_1() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.1.kt");
}
@TestMetadata("1.2.kt")
public void test1_2() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.2.kt");
}
@TestMetadata("1.3.kt")
public void test1_3() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.3.kt");
}
@TestMetadata("1.4.kt")
public void test1_4() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.4.kt");
}
@TestMetadata("1.5.kt")
public void test1_5() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/1.5.kt");
}
@TestMetadata("2.1.kt")
public void test2_1() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.1.kt");
}
@TestMetadata("2.2.kt")
public void test2_2() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.2.kt");
}
@TestMetadata("2.3.kt")
public void test2_3() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.3.kt");
}
@TestMetadata("2.4.kt")
public void test2_4() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/2.4.kt");
}
@TestMetadata("3.1.kt")
public void test3_1() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/3.1.kt");
}
@TestMetadata("4.1.kt")
public void test4_1() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/4.1.kt");
}
@TestMetadata("4.2.kt")
public void test4_2() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/4.2.kt");
}
@TestMetadata("5.1.kt")
public void test5_1() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/5.1.kt");
}
@TestMetadata("6.1.kt")
public void test6_1() throws Exception {
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos/6.1.kt");
}
public void testAllFilesPresentInPos() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver/p-6/pos"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
}
}
}
}
}
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/statements")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
@@ -3317,19 +3317,19 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6")
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class P_6 extends AbstractBlackBoxCodegenTestSpec {
public static class P_5 extends AbstractBlackBoxCodegenTestSpec {
private void runTest(String testDataFilePath) throws Exception {
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
}
public void testAllFilesPresentInP_6() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6"), Pattern.compile("^(.+)\\.kt$"), null, true);
public void testAllFilesPresentInP_5() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos")
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos")
@TestDataPath("$PROJECT_ROOT")
@RunWith(JUnit3RunnerWithInners.class)
public static class Pos extends AbstractBlackBoxCodegenTestSpec {
@@ -3339,56 +3339,51 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes
@TestMetadata("1.1.kt")
public void test1_1() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.1.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.1.kt");
}
@TestMetadata("1.10.kt")
public void test1_10() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.10.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.10.kt");
}
@TestMetadata("1.2.kt")
public void test1_2() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.2.kt");
}
@TestMetadata("1.3.kt")
public void test1_3() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.3.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.2.kt");
}
@TestMetadata("1.4.kt")
public void test1_4() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.4.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.4.kt");
}
@TestMetadata("1.5.kt")
public void test1_5() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.5.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.5.kt");
}
@TestMetadata("1.6.kt")
public void test1_6() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.6.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.6.kt");
}
@TestMetadata("1.7.kt")
public void test1_7() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.7.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.7.kt");
}
@TestMetadata("1.8.kt")
public void test1_8() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.8.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.8.kt");
}
@TestMetadata("1.9.kt")
public void test1_9() throws Exception {
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos/1.9.kt");
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos/1.9.kt");
}
public void testAllFilesPresentInPos() throws Exception {
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-6/pos"), Pattern.compile("^(.+)\\.kt$"), null, true);
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/callables-and-invoke-convention/p-5/pos"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
}
}