[Spec tests] Add call without an explicit receiver tests for top-level non-extension functions

This commit is contained in:
anastasiia.spaseeva
2020-07-28 11:14:42 +03:00
parent bef59055cd
commit 46774fb6d6
18 changed files with 1359 additions and 6 deletions
@@ -0,0 +1,24 @@
{
"1": {
"pos": {
"1": [
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.5.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.6.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
}
]
}
}
}
@@ -0,0 +1,29 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.*
interface I
class A : I
class B : I
fun case1(){
A.<!UNRESOLVED_REFERENCE!>invoke<!>()
}
// FILE: Lib.kt
package lib.case1
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,38 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
* NUMBER: 1
* DESCRIPTION: Top-level non-extension functions named f: callables implicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.*
interface I
class A : I
class B : I
fun case1(){
A.<!UNRESOLVED_REFERENCE!>invoke<!>()
}
// FILE: Lib.kt
package lib.case1
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,30 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 3
package tests.case1
import lib.case1.*
interface I
//class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A.invoke; typeCall: variable&invoke")!>A()<!>
}
// FILE: Lib.kt
package lib.case1
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,39 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
* NUMBER: 2
* DESCRIPTION: Top-level non-extension functions named f: callables implicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 3
package tests.case1
import lib.case1.*
interface I
//class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!><!OPERATOR_MODIFIER_REQUIRED!>A<!>()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A.invoke; typeCall: variable&invoke")!><!OPERATOR_MODIFIER_REQUIRED!>A<!>()<!>
}
// FILE: Lib.kt
package lib.case1
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,91 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.A
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.A
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.A.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.A
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: variable&invoke")!>A()<!>
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,100 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 5
* NUMBER: 2
* DESCRIPTION: Top-level non-extension functions named f: callables explicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.A
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.A
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.A.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.A
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.<init>; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A.invoke()<!>
A.<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,88 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.*
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.A.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.*
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.A.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.*
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,97 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
* NUMBER: 3
* DESCRIPTION: Top-level non-extension functions named f: callables implicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.*
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.A.<init>; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.*
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.A.<init>; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.*
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.<init>; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,89 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.*
interface I
//class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.*
interface I
//class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.A.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.*
interface I
//class A : I
class B : I
fun case3(){
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,98 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
* NUMBER: 4
* DESCRIPTION: Top-level non-extension functions named f: callables implicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.*
interface I
//class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.A; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.*
interface I
//class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.A.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun A() : String = ""
object A {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.*
interface I
//class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A.invoke()<!>
A.<!DEBUG_INFO_CALL("fqName: lib.case3.A.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun A() : String = ""
object A {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,91 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.B as A
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.B; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun B() : String = ""
object B {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.B as A
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.B.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun B() : String = ""
object B {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.B as A
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.B.invoke; typeCall: variable&invoke")!>A()<!>
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.B.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.B; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun B() : String = ""
object B {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,101 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 5
* declarations, type-alias -> paragraph 1 -> sentence 1
* NUMBER: 5
* DESCRIPTION: Top-level non-extension functions named f: callables explicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.B as A
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.B; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case1.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case1.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1
fun B() : String = ""
object B {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.B as A
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.B.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case2.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case2.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case2
//fun B() : String = ""
object B {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.B as A
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.<init>; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A.invoke()<!>
A.<!DEBUG_INFO_CALL("fqName: lib.case3.B.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.<init>; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case3
//fun B() : String = ""
object B {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,122 @@
// !LANGUAGE: +NewInference
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
// SKIP_TXT
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.b.C as B
import lib.case1.a.C as A
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.a.C; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>B()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.b.C; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1.a
fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: Lib.kt
package lib.case1.b
fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.a.C as A
import lib.case2.b.C as B
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.a.C.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>B()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.b.C.invoke; typeCall: variable&invoke")!>B()<!>
}
// FILE: Lib.kt
package lib.case2.a
//fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: Lib.kt
package lib.case2.b
//fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.b.C as B
import lib.case3.a.C as A
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.a.C.invoke; typeCall: variable&invoke")!>A()<!>
A.invoke()
A.<!DEBUG_INFO_CALL("fqName: lib.case3.a.C.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>B()<!>
<!DEBUG_INFO_CALL("fqName: lib.case3.b.C.invoke; typeCall: variable&invoke")!>B()<!>
B.invoke()
B.<!DEBUG_INFO_CALL("fqName: lib.case3.b.C.invoke; typeCall: function")!>invoke()<!>
}
// FILE: Lib.kt
package lib.case3.a
//fun B() : String = ""
object C {
/*operator*/ fun invoke() : Int = 1
}
// FILE: Lib.kt
package lib.case3.b
//fun C() : String = ""
object C {
/*operator*/ fun invoke() : Int = 1
}
@@ -0,0 +1,132 @@
// !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-464
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 4
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 5
* declarations, type-alias -> paragraph 1 -> sentence 1
* NUMBER: 6
* DESCRIPTION: Top-level non-extension functions named f: callables explicitly imported into the current file;
*/
// FILE: TestCase1.kt
// TESTCASE NUMBER: 1
package tests.case1
import lib.case1.b.C as B
import lib.case1.a.C as A
interface I
class A : I
class B : I
fun case1(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.a.C; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>B()<!>
<!DEBUG_INFO_CALL("fqName: lib.case1.b.C; typeCall: function")!>B()<!>
}
// FILE: Lib.kt
package lib.case1.a
fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: Lib.kt
package lib.case1.b
fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: TestCase2.kt
// TESTCASE NUMBER: 2
package tests.case2
import lib.case2.a.C as A
import lib.case2.b.C as B
interface I
class A : I
class B : I
fun case2(){
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.a.C.invoke; typeCall: variable&invoke")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>B()<!>
<!DEBUG_INFO_CALL("fqName: lib.case2.b.C.invoke; typeCall: variable&invoke")!>B()<!>
}
// FILE: Lib.kt
package lib.case2.a
//fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: Lib.kt
package lib.case2.b
//fun C() : String = ""
object C {
operator fun invoke() : Int = 1
}
// FILE: TestCase3.kt
// TESTCASE NUMBER: 3
package tests.case3
import lib.case3.b.C as B
import lib.case3.a.C as A
interface I
class A : I
class B : I
fun case3(){
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.A")!>A()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.A.<init>; typeCall: function")!>A()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>A.invoke()<!>
A.<!DEBUG_INFO_CALL("fqName: lib.case3.a.C.invoke; typeCall: function")!>invoke()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("tests.case3.B")!>B()<!>
<!DEBUG_INFO_CALL("fqName: tests.case3.B.<init>; typeCall: function")!>B()<!>
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Int")!>B.invoke()<!>
B.<!DEBUG_INFO_CALL("fqName: lib.case3.b.C.invoke; typeCall: function")!>invoke()<!>
}
// FILE: Lib.kt
package lib.case3.a
//fun B() : String = ""
object C {
/*operator*/ fun invoke() : Int = 1
}
// FILE: Lib.kt
package lib.case3.b
//fun C() : String = ""
object C {
/*operator*/ fun invoke() : Int = 1
}
@@ -27,7 +27,33 @@
"linkType": "main"
}
],
"4": [
{
"specVersion": "0.1-464",
"casesNumber": 1,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/neg/4.1.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 1,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/neg/4.2.kt",
"unexpectedBehaviour": false,
"linkType": "main"
}
],
"6": [
{
"specVersion": "0.1-464",
"casesNumber": 1,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/neg/4.1.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
},
{
"specVersion": "0.1-401",
"casesNumber": 5,
@@ -43,6 +69,14 @@
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/neg/6.4.kt",
"unexpectedBehaviour": true,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 1,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/neg/4.2.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
}
]
},
@@ -130,6 +164,22 @@
"unexpectedBehaviour": true,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.4.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.3.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
},
{
"specVersion": "0.1-278",
"casesNumber": 3,
@@ -140,6 +190,14 @@
}
],
"4": [
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.5.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-278",
"casesNumber": 3,
@@ -147,9 +205,49 @@
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.1.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.4.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables implicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.3.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.6.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.2.kt",
"unexpectedBehaviour": false,
"linkType": "main"
}
],
"5": [
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.5.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
},
{
"specVersion": "0.1-278",
"casesNumber": 3,
@@ -157,6 +255,22 @@
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/5.1.kt",
"unexpectedBehaviour": false,
"linkType": "main"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.6.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
},
{
"specVersion": "0.1-464",
"casesNumber": 3,
"description": "Top-level non-extension functions named f: callables explicitly imported into the current file;",
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/call-without-an-explicit-receiver/p-5/pos/4.2.kt",
"unexpectedBehaviour": false,
"linkType": "primary"
}
],
"7": [