[FIR] Fix TEST SPEC tests
Ensure the test data contents for both the frontends are identical. This is needed for proper analysis of K2-differences.
This commit is contained in:
committed by
Space Team
parent
e6633d3d92
commit
7541732752
+8
@@ -1,6 +1,14 @@
|
||||
// !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-401
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver, call-with-an-explicit-type-receiver -> paragraph 3 -> sentence 2
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION:
|
||||
*/
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 1
|
||||
|
||||
+14
@@ -1,6 +1,20 @@
|
||||
// !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
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
|
||||
* PRIMARY LINKS: 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
|
||||
|
||||
+15
@@ -1,5 +1,20 @@
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-268
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
|
||||
* PRIMARY LINKS: 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() {
|
||||
|
||||
+15
@@ -1,6 +1,21 @@
|
||||
// !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
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 2
|
||||
* PRIMARY LINKS: 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
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-trailing-lambda-expressions -> paragraph 1 -> sentence 2
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: sets of local, explicitly imported, declared in the package scope and star-imported extension callables
|
||||
*/
|
||||
|
||||
// FILE: Extensions.kt
|
||||
package libPackage
|
||||
|
||||
|
||||
+12
@@ -1,6 +1,18 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNREACHABLE_CODE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -IMPLICIT_NOTHING_RETURN_TYPE -DEBUG_INFO_LEAKING_THIS -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-280
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 2 -> sentence 1
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 4 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: Implicit receiver: 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
|
||||
|
||||
+12
@@ -1,6 +1,18 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -UNREACHABLE_CODE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -IMPLICIT_NOTHING_RETURN_TYPE -DEBUG_INFO_LEAKING_THIS -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-300
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-with-trailing-lambda-expressions -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 2 -> sentence 1
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-named-parameters -> paragraph 4 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: call-with-trailing-lambda-expressions,Implicit receiver: 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
|
||||
|
||||
-62
@@ -1,62 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase1.listOf; typeCall: function")!>listOf(elements = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
|
||||
fun <T> listOf(vararg elements: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
|
||||
fun case2() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase2.listOf; typeCall: function")!>listOf(elements = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(): T = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase2
|
||||
import testsCase2.*
|
||||
|
||||
fun <T> listOf(vararg elements: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
val listOf: A
|
||||
get() = A()
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
|
||||
fun case3() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase3
|
||||
import testsCase3.*
|
||||
|
||||
private fun <T> listOf(vararg elements: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
val listOf: A
|
||||
get() = A()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-153
@@ -1,153 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_SHADOWED_BY_MEMBER -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.listOf
|
||||
|
||||
class Case1() {
|
||||
fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
fun case1() {
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase1.Case1.listOf; typeCall: function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
import testsCase1.*
|
||||
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
import libPackageCase2Explicit.listOf
|
||||
|
||||
class Case2() {
|
||||
fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
val listOf: A
|
||||
get() = A()
|
||||
|
||||
fun case1() {
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase2.Case2.listOf; typeCall: function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase2
|
||||
import testsCase2.*
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib4.kt
|
||||
package libPackageCase2Explicit
|
||||
import testsCase2.*
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
package testsCase2
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
import libPackageCase3Explicit.listOf
|
||||
|
||||
class Case3() {
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T =
|
||||
{ TODO() }): List<T> = TODO()
|
||||
|
||||
val listOf: A
|
||||
get() = A()
|
||||
|
||||
fun case1() {
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
// FILE: Lib5.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
package libPackageCase3
|
||||
import testsCase3.*
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib6.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
package libPackageCase3Explicit
|
||||
import testsCase3.*
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
package testsCase3
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_SHADOWED_BY_MEMBER -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-182
@@ -1,182 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.listOf
|
||||
|
||||
class Case1() {
|
||||
|
||||
fun case1_0() {
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase1.Case1.case1_0.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
|
||||
fun case1_1() {
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase1.Case1.case1_0.case1_1.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
import testsCase1.*
|
||||
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-37179
|
||||
*/
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
import libPackageCase2Explicit.listOf
|
||||
|
||||
class Case2() {
|
||||
|
||||
fun case1_0() {
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase2.Case2.case1_0.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
|
||||
fun case1_1() {
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase2.Case2.case1_0.case1_1.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T =
|
||||
{ TODO() }): List<T> = TODO()
|
||||
|
||||
fun case2_0() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase2.Case2.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib3.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package libPackageCase2
|
||||
import testsCase2.*
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib4.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package libPackageCase2Explicit
|
||||
import testsCase2.*
|
||||
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package testsCase2
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
|
||||
/*
|
||||
* TESTCASE NUMBER: 3
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-37179
|
||||
*/
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
import libPackageCase3Explicit.listOf
|
||||
|
||||
class Case3() {
|
||||
|
||||
fun case1_0() {
|
||||
//fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
|
||||
fun case1_1() {
|
||||
// fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
//fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
fun case2_0() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib5.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package libPackageCase3
|
||||
import testsCase3.*
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib6.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
package libPackageCase3Explicit
|
||||
import testsCase3.*
|
||||
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE -EXTENSION_FUNCTION_SHADOWED_BY_MEMBER_PROPERTY_WITH_INVOKE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-125
@@ -1,125 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.listOf
|
||||
|
||||
class Case1() {
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase1Explicit.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
import testsCase1.*
|
||||
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
import libPackageCase2Explicit.listOf
|
||||
|
||||
class Case2() {
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase2Explicit.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase2
|
||||
import testsCase2.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib4.kt
|
||||
package libPackageCase2Explicit
|
||||
import testsCase2.*
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
package testsCase2
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
import libPackageCase3Explicit.listOf
|
||||
|
||||
class Case3() {
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib5.kt
|
||||
package libPackageCase3
|
||||
import testsCase3.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib6.kt
|
||||
package libPackageCase3Explicit
|
||||
import testsCase3.*
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
private fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
package testsCase3
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-115
@@ -1,115 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.listOf
|
||||
|
||||
class Case1() {
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase1.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
import libPackageCase2Explicit.listOf
|
||||
|
||||
class Case2() {
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase2.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase2
|
||||
import testsCase2.*
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib4.kt
|
||||
package libPackageCase2Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
package testsCase2
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
import libPackageCase3Explicit.listOf
|
||||
|
||||
class Case3() {
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
// FILE: Lib5.kt
|
||||
package libPackageCase3
|
||||
import testsCase3.*
|
||||
|
||||
fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib6.kt
|
||||
package libPackageCase3Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
package testsCase3
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
private fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.listOf
|
||||
|
||||
class Case1() {
|
||||
|
||||
fun case() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase1.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case1.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
import libPackageCase2Explicit.listOf
|
||||
|
||||
class Case2() {
|
||||
|
||||
fun case() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase2.listOf; typeCall: extension function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase2
|
||||
import testsCase2.*
|
||||
|
||||
val Case2.listOf: A
|
||||
get() = A()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
fun <T> Case2.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib4.kt
|
||||
package libPackageCase2Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
package testsCase2
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
import libPackageCase3Explicit.listOf
|
||||
|
||||
class Case3() {
|
||||
|
||||
fun case() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
|
||||
// FILE: Lib5.kt
|
||||
package libPackageCase3
|
||||
import testsCase3.*
|
||||
|
||||
val Case3.listOf: A
|
||||
get() = A()
|
||||
|
||||
fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
private fun <T> Case3.listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib6.kt
|
||||
package libPackageCase3Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
package testsCase3
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-110
@@ -1,110 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 0, 1, 2, 3, 4
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
class A() {
|
||||
infix fun foo(x: ()->Int) = "member fun foo"
|
||||
}
|
||||
|
||||
// FILE: Extensions2.kt
|
||||
// TESTCASE NUMBER: 0
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
infix fun A.foo(x: ()->Int) = "pack scope extension fun foo"
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
class Case1() {
|
||||
infix fun A.foo(x: ()->Int) = "local extension fun foo"
|
||||
|
||||
fun case1() {
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo {1}<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo {1}<!>
|
||||
}
|
||||
}
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
interface Case2 {
|
||||
infix fun A.foo(x: ()->Int) = "local extension fun foo"
|
||||
|
||||
fun case2() {
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo {1}<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo {1}<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testPack
|
||||
import libPackage.A
|
||||
|
||||
infix fun A.foo(x: ()->Int) = "my package scope top level trim"
|
||||
|
||||
|
||||
fun case3() {
|
||||
infix fun A.foo(x: ()->Int) = "my local scope trim"
|
||||
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo {1}<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo {1}<!>
|
||||
}
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package testPackNew
|
||||
import libPackage.A
|
||||
|
||||
infix fun A.foo(x: ()->Int) = "my package scope top level trim"
|
||||
|
||||
|
||||
fun case4() {
|
||||
|
||||
infix fun A.foo(x: ()->Int) = "my local trim"
|
||||
|
||||
fun subfun() {
|
||||
infix fun A.foo(x: ()->Int) = "my local trim"
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo {1}<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo {1}<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase5.kt
|
||||
// TESTCASE NUMBER: 5
|
||||
package testPackNew
|
||||
|
||||
class A() {
|
||||
fun foo(i: ()->Int) {}
|
||||
infix fun A.foo(i: ()->Int) {}
|
||||
|
||||
fun bar(a: A) {
|
||||
//todo: add info if function is infix one
|
||||
<!DEBUG_INFO_CALL("fqName: testPackNew.A.foo; typeCall: infix extension function")!>a foo {1}<!>
|
||||
}
|
||||
|
||||
fun buz(a: A) {
|
||||
fun foo(i: ()->Int) {}
|
||||
//todo: add info if function is infix one
|
||||
<!DEBUG_INFO_CALL("fqName: testPackNew.A.foo; typeCall: infix extension function")!>a foo {1}<!>
|
||||
}
|
||||
|
||||
fun boo(a: A) {
|
||||
infix fun A.foo(i: ()->Int) {}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackNew.A.boo.foo; typeCall: infix extension function")!>a foo {1}<!>
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-95
@@ -1,95 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.listOf
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase1Explicit.listOf; typeCall: function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
import libPackageCase2Explicit.listOf
|
||||
|
||||
fun case2() {
|
||||
<!DEBUG_INFO_CALL("fqName: libPackageCase2Explicit.listOf; typeCall: function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase2
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib4.kt
|
||||
package libPackageCase2Explicit
|
||||
import testsCase2.*
|
||||
|
||||
val listOf: A
|
||||
get() = A()
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
package testsCase2
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
import libPackageCase3Explicit.listOf
|
||||
|
||||
fun case3() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
// FILE: Lib5.kt
|
||||
package libPackageCase3
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: Lib6.kt
|
||||
package libPackageCase3Explicit
|
||||
import testsCase3.*
|
||||
|
||||
val listOf: A
|
||||
get() = A()
|
||||
|
||||
private fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
package testsCase3
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-78
@@ -1,78 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
import libPackageCase1.*
|
||||
|
||||
fun case1() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase1.listOf; typeCall: function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack1.kt
|
||||
package testsCase1
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testsCase2
|
||||
import libPackageCase2.*
|
||||
|
||||
fun case2() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase2.listOf; typeCall: function")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase2
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack2.kt
|
||||
package testsCase2
|
||||
import testsCase2.*
|
||||
|
||||
public val listOf: A
|
||||
get() = A()
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testsCase3
|
||||
import libPackageCase3.*
|
||||
|
||||
fun case3() {
|
||||
<!DEBUG_INFO_CALL("fqName: testsCase3.A.invoke; typeCall: variable&invoke")!>listOf(elements1 = arrayOf(1), body = { "" })<!>
|
||||
}
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase3
|
||||
|
||||
public fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack3.kt
|
||||
package testsCase3
|
||||
import testsCase3.*
|
||||
|
||||
public val listOf: A
|
||||
get() = A()
|
||||
|
||||
class A {
|
||||
operator fun <T> invoke(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
}
|
||||
|
||||
private fun <T> listOf(vararg elements1: T = TODO(), body: () -> T = { TODO() }): List<T> = TODO()
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-44
@@ -1,44 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
fun <T> Case1.emptyArray(): Array<T> = TODO()
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Explicit
|
||||
import testsCase1.*
|
||||
|
||||
fun <T> Case1.emptyArray(): Array<T> = TODO()
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase1ExplicitDuplicate
|
||||
import testsCase1.*
|
||||
|
||||
fun <T> Case1.emptyArray(): Array<T> = TODO()
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack.kt
|
||||
package testsCase1
|
||||
fun <T> Case1.emptyArray(): Array<T> = TODO()
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
|
||||
// FILE: TestCase.kt
|
||||
package testsCase1
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Explicit.emptyArray
|
||||
import libPackageCase1ExplicitDuplicate.emptyArray
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1(){
|
||||
|
||||
fun case1() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>emptyArray<!><Int>()
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+16
@@ -1,6 +1,22 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||
*
|
||||
* SPEC VERSION: 0.1-278
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 4 -> sentence 1
|
||||
* 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-without-an-explicit-receiver -> paragraph 8 -> sentence 1
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 6 -> sentence 1
|
||||
* overload-resolution, building-the-overload-candidate-set-ocs, call-with-specified-type-parameters -> paragraph 1 -> sentence 2
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: The overload candidate sets for each pair of implicit receivers: declared in the package scope extension callables
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testsCase1
|
||||
|
||||
-39
@@ -1,39 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libPackageCase1
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
fun <T> Case1.emptyArray(): Array<T> = TODO()
|
||||
// FILE: Lib2.kt
|
||||
package libPackageCase1Duplicate
|
||||
import testsCase1.*
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
fun <T> Case1.emptyArray(): Array<T> = TODO()
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libPackageCase1Explicit
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
|
||||
// FILE: LibtestsPack.kt
|
||||
package testsCase1
|
||||
|
||||
public fun <T> emptyArray(): Array<T> = TODO()
|
||||
|
||||
// FILE: TestCase.kt
|
||||
package testsCase1
|
||||
import libPackageCase1.*
|
||||
import libPackageCase1Duplicate.*
|
||||
import libPackageCase1Explicit.emptyArray
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1(){
|
||||
|
||||
fun case1() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>emptyArray<!><Int>()
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -NOTHING_TO_INLINE
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-28
@@ -1,28 +0,0 @@
|
||||
// !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
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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
|
||||
|
||||
-112
@@ -1,112 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 1
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
*/
|
||||
package testPackCase1
|
||||
import libCase1.*
|
||||
import kotlin.text.*
|
||||
|
||||
fun case1() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Regex<!>("")
|
||||
}
|
||||
|
||||
// FILE: Lib1.kt
|
||||
package libCase1
|
||||
fun Regex(pattern: String) {}
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 2
|
||||
* ISSUES: KT-39073
|
||||
*/
|
||||
package testPackCase2
|
||||
import libCase2.a.*
|
||||
import libCase2.b.*
|
||||
import kotlin.text.*
|
||||
|
||||
|
||||
fun case2() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Regex<!>("")
|
||||
}
|
||||
|
||||
// FILE: Lib2.kt
|
||||
package libCase2.a
|
||||
fun Regex(pattern: String) {}
|
||||
|
||||
// FILE: Lib3.kt
|
||||
package libCase2.b
|
||||
fun Regex(pattern: String) {}
|
||||
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 4
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-39157
|
||||
*/
|
||||
package testPackCase4
|
||||
import libCase4.a.*
|
||||
import libCase4.b.*
|
||||
import kotlin.text.*
|
||||
|
||||
fun case4() {
|
||||
<!DEBUG_INFO_CALL("fqName: libCase4.a.Regex; typeCall: function")!>Regex("")<!>
|
||||
}
|
||||
|
||||
// FILE: Lib4.kt
|
||||
package libCase4.a
|
||||
fun Regex(pattern: String) {}
|
||||
|
||||
// FILE: Lib5.kt
|
||||
package libCase4.b
|
||||
class Regex(pattern: String) {}
|
||||
|
||||
|
||||
|
||||
// FILE: TestCase5.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 5
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
*/
|
||||
package testPackCase5
|
||||
import libCase5.a.*
|
||||
import libCase5.b.*
|
||||
|
||||
fun case5() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>Regex<!>("")
|
||||
}
|
||||
|
||||
// FILE: Lib6.kt
|
||||
package libCase5.a
|
||||
fun Regex(pattern: String) {}
|
||||
|
||||
// FILE: Lib7.kt
|
||||
package libCase5.b
|
||||
class Regex(pattern: String) {}
|
||||
|
||||
// FILE: TestCase6.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 6
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
*/
|
||||
package testPackCase6
|
||||
import libCase6.a.*
|
||||
import libCase6.b.*
|
||||
|
||||
fun case6() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>MyRegex<!>("")
|
||||
}
|
||||
|
||||
// FILE: Lib8.kt
|
||||
package libCase6.a
|
||||
fun MyRegex(pattern: String) {}
|
||||
|
||||
// FILE: Lib9.kt
|
||||
package libCase6.b
|
||||
class MyRegex(pattern: String) {}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !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
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !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
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !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-401
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION:
|
||||
*/
|
||||
|
||||
// FILE: TestCase11.kt
|
||||
/*
|
||||
|
||||
+8
@@ -1,6 +1,14 @@
|
||||
// !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-401
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, call-without-an-explicit-receiver -> paragraph 5 -> sentence 6
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION:
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
|
||||
-84
@@ -1,84 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
class A() {
|
||||
fun foo(x: Int) = "member fun foo"
|
||||
}
|
||||
|
||||
// FILE: Extensions2.kt
|
||||
// TESTCASE NUMBER: 1, 2, 3, 4
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
fun A.foo(x: Int) = "pack scope extension fun foo"
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
class Case1() {
|
||||
fun A.foo(x: Int) = "local extension fun foo"
|
||||
|
||||
fun case1() {
|
||||
val a = A()
|
||||
a <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
A() <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
}
|
||||
}
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
interface Case2 {
|
||||
fun A.foo(x: Int) = "local extension fun foo"
|
||||
|
||||
fun case2() {
|
||||
val a = A()
|
||||
a <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
A() <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testPack
|
||||
import libPackage.A
|
||||
|
||||
fun A.foo(x: Int) = "my package scope top level contains"
|
||||
|
||||
|
||||
fun case3() {
|
||||
fun A.foo(x: Int) ="my local scope contains"
|
||||
|
||||
val a = A()
|
||||
a <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
A() <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
}
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package testPackNew
|
||||
import libPackage.A
|
||||
|
||||
fun A.foo(x: Int) = "my package scope top level contains"
|
||||
|
||||
|
||||
fun case4() {
|
||||
|
||||
fun A.foo(x: Int) = "my local contains"
|
||||
|
||||
fun subfun() {
|
||||
fun A.foo(x: Int) = "my local contains"
|
||||
val a = A()
|
||||
a <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
A() <!INFIX_MODIFIER_REQUIRED!>foo<!> 1
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-103
@@ -1,103 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my contains")
|
||||
return true
|
||||
}
|
||||
// FILE: Extensions2.kt
|
||||
|
||||
package sentence3
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope contains")
|
||||
return true
|
||||
}
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.contains
|
||||
|
||||
class Case1() {
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my local class scope contains")
|
||||
return true
|
||||
}
|
||||
|
||||
fun case1() {
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
}
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package sentence3
|
||||
import libPackage.contains
|
||||
|
||||
interface Case2 {
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my local interface scope contains")
|
||||
return true
|
||||
}
|
||||
|
||||
fun case2() {
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testPack
|
||||
import libPackage.contains
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope top level contains")
|
||||
return true
|
||||
}
|
||||
|
||||
fun case3() {
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope top level contains")
|
||||
return true
|
||||
}
|
||||
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package testPackNew
|
||||
import libPackage.contains
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope top level contains")
|
||||
return true
|
||||
}
|
||||
|
||||
fun case4() {
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my local contains")
|
||||
return true
|
||||
}
|
||||
|
||||
fun subfun() {
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my local contains")
|
||||
return true
|
||||
}
|
||||
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-48
@@ -1,48 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my contains")
|
||||
return true
|
||||
}
|
||||
// FILE: Extensions2.kt
|
||||
|
||||
package sentence3
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope contains")
|
||||
return true
|
||||
}
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.contains
|
||||
|
||||
|
||||
fun case1() {
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package sentence3
|
||||
import libPackage.contains
|
||||
|
||||
|
||||
fun case2() {
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my local contains")
|
||||
return true
|
||||
}
|
||||
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-45
@@ -1,45 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my contains")
|
||||
return true
|
||||
}
|
||||
// FILE: Extensions2.kt
|
||||
|
||||
package sentence3
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope contains")
|
||||
return true
|
||||
}
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.*
|
||||
|
||||
|
||||
fun case1() {
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testPack
|
||||
import libPackage.*
|
||||
|
||||
operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope top level contains")
|
||||
return true
|
||||
}
|
||||
|
||||
fun case2() {
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Extensions.kt
|
||||
package libPackage
|
||||
|
||||
private infix operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my contains")
|
||||
return true
|
||||
}
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
package sentence3
|
||||
import libPackage.* //nothing to import, extension is private
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
fun case1() {
|
||||
val regex = Regex("")
|
||||
"" <!INFIX_MODIFIER_REQUIRED!>contains<!> regex
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-109
@@ -1,109 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 0, 1, 2, 3, 4
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
class A() {
|
||||
infix fun foo(x: Int) = "member fun foo"
|
||||
}
|
||||
|
||||
// FILE: Extensions2.kt
|
||||
// TESTCASE NUMBER: 0
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
infix fun A.foo(x: Int) = "pack scope extension fun foo"
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
class Case1() {
|
||||
infix fun A.foo(x: Int) = "local extension fun foo"
|
||||
|
||||
fun case1() {
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo 1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo 1<!>
|
||||
}
|
||||
}
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package sentence3
|
||||
import libPackage.A
|
||||
|
||||
interface Case2 {
|
||||
infix fun A.foo(x: Int) = "local extension fun foo"
|
||||
|
||||
fun case2() {
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo 1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo 1<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testPack
|
||||
import libPackage.A
|
||||
|
||||
infix fun A.foo(x: Int) = "my package scope top level contains"
|
||||
|
||||
|
||||
fun case3() {
|
||||
infix fun A.foo(x: Int) = "my local scope contains"
|
||||
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo 1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo 1<!>
|
||||
}
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package testPackNew
|
||||
import libPackage.A
|
||||
|
||||
infix fun A.foo(x: Int) = "my package scope top level contains"
|
||||
|
||||
|
||||
fun case4() {
|
||||
|
||||
infix fun A.foo(x: Int) = "my local contains"
|
||||
|
||||
fun subfun() {
|
||||
infix fun A.foo(x: Int) = "my local contains"
|
||||
val a = A()
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>a foo 1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.A.foo; typeCall: infix function")!>A() foo 1<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase5.kt
|
||||
// TESTCASE NUMBER: 5
|
||||
package testPackNew
|
||||
|
||||
class A() {
|
||||
fun foo(i: Int) {}
|
||||
infix fun A.foo(i: Int) {}
|
||||
|
||||
fun bar(a: A) {
|
||||
//todo: add info if function is infix one
|
||||
<!DEBUG_INFO_CALL("fqName: testPackNew.A.foo; typeCall: infix extension function")!>a foo 1<!>
|
||||
}
|
||||
|
||||
fun buz(a: A){
|
||||
fun foo(i: Int) {}
|
||||
//todo: add info if function is infix one
|
||||
<!DEBUG_INFO_CALL("fqName: testPackNew.A.foo; typeCall: infix extension function")!>a foo 1<!>
|
||||
}
|
||||
|
||||
fun boo(a: A){
|
||||
infix fun A.foo(i: Int) {}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackNew.A.boo.foo; typeCall: infix extension function")!>a foo 1<!>
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-46
@@ -1,46 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// FILE: Extensions1.kt
|
||||
package libPackage
|
||||
|
||||
infix operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my contains")
|
||||
return true
|
||||
}
|
||||
// FILE: Extensions2.kt
|
||||
|
||||
package sentence3
|
||||
|
||||
infix operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my package scope contains")
|
||||
return true
|
||||
}
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
package sentence3
|
||||
import libPackage.contains
|
||||
|
||||
|
||||
fun case1() {
|
||||
val regex = Regex("")
|
||||
<!DEBUG_INFO_CALL("fqName: libPackage.contains; typeCall: infix operator extension function")!>"" contains regex<!>
|
||||
}
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
|
||||
package sentence3
|
||||
import libPackage.contains
|
||||
|
||||
|
||||
fun case2() {
|
||||
infix operator fun CharSequence.contains(regex: Regex): Boolean {
|
||||
println("my local contains")
|
||||
return true
|
||||
}
|
||||
val regex = Regex("")
|
||||
<!DEBUG_INFO_CALL("fqName: sentence3.case2.contains; typeCall: infix operator extension function")!>"" contains regex<!>
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: call with lambda as argument
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: plusAssign as inline function
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: inline plusAssign functions
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-39819
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
// FILE: TestCase1.kt
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 6
|
||||
* DESCRIPTION: without inline plusAssign functions
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-39820
|
||||
*/
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 7
|
||||
* DESCRIPTION: without inline plusAssign functions
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-39820
|
||||
*/
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 8
|
||||
* DESCRIPTION: without inline plusAssign functions
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-39820
|
||||
*/
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
|
||||
+10
@@ -1,6 +1,16 @@
|
||||
// !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-448
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, determining-function-applicability-for-a-specific-call, description -> paragraph 2 -> sentence 2
|
||||
* NUMBER: 9
|
||||
* DESCRIPTION: without inline plusAssign functions
|
||||
*/
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
|
||||
-35
@@ -1,35 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: LibCase1b.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package LibPackCase1.b
|
||||
|
||||
import testPackCase1.B
|
||||
import LibPackCase1.a.*
|
||||
|
||||
inline operator fun B?.plusAssign( c: ()->C) { //(2)
|
||||
val x = {1}
|
||||
<!DEBUG_INFO_CALL("fqName: LibPackCase1.a.plusAssign; typeCall: inline operator extension function")!>this += x<!> //to (1)
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>this += x<!>
|
||||
}
|
||||
|
||||
class C
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
package testPackCase1
|
||||
|
||||
import LibPackCase1.a.*
|
||||
import LibPackCase1.b.*
|
||||
|
||||
class B {
|
||||
private inline operator fun plusAssign(crossinline c: ()->C) {}
|
||||
private inline operator fun plus(crossinline c: ()->C): C =C()
|
||||
}
|
||||
|
||||
// FILE: LibCase1a.kt
|
||||
package LibPackCase1.a
|
||||
import testPackCase1.B
|
||||
|
||||
inline operator fun B?.plusAssign( c: ()->Int) { } //(1)
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-114
@@ -1,114 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNNECESSARY_SAFE_CALL -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
|
||||
fun case1(a: A, c: C) {
|
||||
a?.b <!UNSAFE_CALL!>.<!><!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign(c)<!>
|
||||
|
||||
val x = {
|
||||
a?.b<!UNSAFE_CALL!>.<!><!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign(c)<!>
|
||||
}()
|
||||
|
||||
a?.b<!UNSAFE_CALL!>.<!><!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign({ c }())<!>
|
||||
}
|
||||
|
||||
class A(val b: B)
|
||||
|
||||
class B {
|
||||
operator fun plusAssign(c: C) {
|
||||
print("1")
|
||||
}
|
||||
|
||||
operator fun plus(c: C): C {
|
||||
print("2")
|
||||
return c
|
||||
}
|
||||
}
|
||||
|
||||
class C
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testPackCase2
|
||||
|
||||
fun case2(a: A?, c: C) {
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||
|
||||
val x = {
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||
}()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.B.plusAssign; typeCall: operator function")!>a?.b += { c }()<!>
|
||||
|
||||
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension function")!>plusAssign({ c }())<!>
|
||||
|
||||
}
|
||||
|
||||
class A(val b: B)
|
||||
|
||||
class B {
|
||||
operator fun plusAssign(c: C) {
|
||||
print("1")
|
||||
}
|
||||
|
||||
operator fun plus(c: C): C {
|
||||
print("2")
|
||||
return c
|
||||
}
|
||||
}
|
||||
|
||||
operator fun B?.plusAssign(c: C) {
|
||||
print("3")
|
||||
}
|
||||
|
||||
class C
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testPackCase3
|
||||
|
||||
fun case3(a: A?, c: C) {
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||
|
||||
val x = {
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||
}()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.B.plusAssign; typeCall: operator function")!>a?.b += { c }()<!>
|
||||
|
||||
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension function")!>plusAssign({ c }())<!>
|
||||
|
||||
}
|
||||
|
||||
class A(val b: B)
|
||||
|
||||
class B {
|
||||
operator fun plusAssign(c: C) {
|
||||
print("1")
|
||||
}
|
||||
|
||||
operator fun plus(c: C): C {
|
||||
print("2")
|
||||
return c
|
||||
}
|
||||
}
|
||||
|
||||
operator fun B?.plusAssign(c: C) {
|
||||
print("3")
|
||||
}
|
||||
|
||||
operator fun B?.plusAssign(c: Any) {
|
||||
print("4")
|
||||
}
|
||||
|
||||
|
||||
class C
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNNECESSARY_SAFE_CALL -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+85
-110
@@ -1,5 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION -EXTENSION_SHADOWED_BY_MEMBER
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
/*
|
||||
@@ -7,18 +6,16 @@
|
||||
*
|
||||
* SPEC VERSION: 0.1-268
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 2 -> sentence 3
|
||||
* PRIMARY LINKS: overload-resolution, building-the-overload-candidate-set-ocs, call-with-an-explicit-receiver -> paragraph 6 -> sentence 1
|
||||
* PRIMARY LINKS: 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, operator-call -> paragraph 4 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: Non-extension member callables
|
||||
*/
|
||||
|
||||
|
||||
// FILE: LibCase1.kt
|
||||
// TESTCASE NUMBER: 1, 2
|
||||
// TESTCASE NUMBER: 1, 2
|
||||
// FILE: LibCase11.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package libPackage
|
||||
|
||||
import testPackCase1.Case
|
||||
import testPackCase1.Case.Inv
|
||||
import testPackCase1.Case.E
|
||||
@@ -28,61 +25,61 @@ operator fun Case.E.plus(value: Int) = Inv()
|
||||
operator fun Case.Inv.invoke(i: Int) = 1
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1, 2
|
||||
// FILE: TestCase11.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
import libPackage.plus
|
||||
import libPackage.*
|
||||
import libPackage.invoke
|
||||
|
||||
class Case() {
|
||||
|
||||
class E(val plus: Inv? = null) {
|
||||
operator fun plus(value: Int) = Case()
|
||||
/*operator*/ fun plus(value: Int) = Case()
|
||||
}
|
||||
|
||||
class Inv() {
|
||||
operator fun invoke(value: Int) = Case()
|
||||
/*operator*/ fun invoke(value: Int) = Case()
|
||||
}
|
||||
|
||||
fun foo(e: E) {
|
||||
operator fun E.plus(value: Int) = Case()
|
||||
|
||||
run {
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.Case.E.plus; typeCall: operator function")!>e+1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.Case.foo.plus; typeCall: operator extension function")!>e + 1<!>
|
||||
}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.Case.E.plus; typeCall: operator function")!>e+1<!>
|
||||
e.<!DEBUG_INFO_CALL("fqName: testPackCase1.Case.E.plus; typeCall: operator function")!>plus(1)<!>
|
||||
e.plus?.<!DEBUG_INFO_CALL("fqName: testPackCase1.Case.Inv.invoke; typeCall: operator function")!>invoke(1)<!> //ok
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.Case.foo.plus; typeCall: operator extension function")!>e + 1<!>
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: LibCase3.kt
|
||||
// TESTCASE NUMBER: 3, 4
|
||||
// FILE: LibCase12.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package libPackage
|
||||
import testPackCase3.Case
|
||||
import testPackCase3.Case.Inv
|
||||
import testPackCase3.Case.E
|
||||
import testPackCase2.Case
|
||||
import testPackCase2.Case.Inv
|
||||
import testPackCase2.Case.E
|
||||
|
||||
operator fun Case.E.plus(value: Int) = Inv()
|
||||
operator fun Case.E.plus(value: Int) = Inv()
|
||||
operator fun Case.Inv.invoke(i: Int) = 1
|
||||
|
||||
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3, 4
|
||||
package testPackCase3
|
||||
// FILE: TestCase12.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testPackCase2
|
||||
import libPackage.plus
|
||||
import libPackage.*
|
||||
import libPackage.invoke
|
||||
|
||||
operator fun Case.E.plus(value: Int) = Case()
|
||||
|
||||
class Case() {
|
||||
|
||||
class E(val plus: Inv? = null) {
|
||||
operator fun plus(value: Int) = Case()
|
||||
/*operator*/ fun plus(value: Int) = Case()
|
||||
}
|
||||
|
||||
class Inv() {
|
||||
operator fun invoke(value: Int) = Case()
|
||||
/*operator*/ fun invoke(value: Int) = Case()
|
||||
}
|
||||
|
||||
fun foo(e: E) {
|
||||
@@ -91,89 +88,79 @@ class Case() {
|
||||
run {
|
||||
operator fun E.plus(value: Int) = Case()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.Case.E.plus; typeCall: operator function")!>e+1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.Case.foo.plus; typeCall: operator extension function")!>e + 1<!>
|
||||
}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.Case.E.plus; typeCall: operator function")!>e+1<!>
|
||||
}
|
||||
fun boo(e: E) {
|
||||
/*operator*/ fun E.plus(value: Int) = Case()
|
||||
|
||||
run {
|
||||
/*operator*/ fun E.plus(value: Int) = Case()
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.Case.E.plus; typeCall: operator function")!>e+1<!>
|
||||
}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.Case.E.plus; typeCall: operator function")!>e+1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.Case.foo.plus; typeCall: operator extension function")!>e + 1<!>
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: LibCase5.kt
|
||||
// TESTCASE NUMBER: 5, 6
|
||||
// FILE: LibCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package libPackage
|
||||
|
||||
import testPackCase5.Case
|
||||
import testPackCase5.Case.Inv
|
||||
import testPackCase5.Case.E
|
||||
import testPackCase3.Case
|
||||
import testPackCase3.Case.Inv
|
||||
import testPackCase3.Case.E
|
||||
|
||||
operator fun Case.E.plusAssign(value: Int) {}
|
||||
operator fun Case.Inv.invoke(i: Int) {}
|
||||
|
||||
|
||||
// FILE: TestCase6.kt
|
||||
// TESTCASE NUMBER: 5, 6
|
||||
package testPackCase5
|
||||
// FILE: TestCase3.kt
|
||||
// TESTCASE NUMBER: 3
|
||||
package testPackCase3
|
||||
import libPackage.plusAssign
|
||||
import libPackage.*
|
||||
import libPackage.invoke
|
||||
|
||||
import libPackage.*
|
||||
class Case() {
|
||||
|
||||
class E(val plusAssign: Inv? = null) {
|
||||
operator fun plusAssign(value: Int) {}
|
||||
/*operator*/ fun plusAssign(value: Int) {}
|
||||
}
|
||||
|
||||
class Inv() {
|
||||
operator fun invoke(value: Int) {}
|
||||
/*operator*/ fun invoke(value: Int) {}
|
||||
}
|
||||
|
||||
fun foo(e: E) {
|
||||
operator fun Case.E.plusAssign(value: Int) {}
|
||||
operator fun E.plusAssign(value: Int) {}
|
||||
|
||||
run {
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase5.Case.E.plusAssign; typeCall: operator function")!>e+=1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.Case.foo.plusAssign; typeCall: operator extension function")!>e += 1<!>
|
||||
}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase5.Case.E.plusAssign; typeCall: operator function")!>e+=1<!>
|
||||
e.<!DEBUG_INFO_CALL("fqName: testPackCase5.Case.E.plusAssign; typeCall: operator function")!>plusAssign(1)<!>
|
||||
e.plusAssign?.<!DEBUG_INFO_CALL("fqName: testPackCase5.Case.Inv.invoke; typeCall: operator function")!>invoke(1)<!> //ok
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase3.Case.foo.plusAssign; typeCall: operator extension function")!>e += 1<!>
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: LibCase7.kt
|
||||
// TESTCASE NUMBER: 7, 8
|
||||
// FILE: LibCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package libPackage
|
||||
import testPackCase8.Case
|
||||
import testPackCase8.Case.Inv
|
||||
import testPackCase8.Case.E
|
||||
import testPackCase4.Case
|
||||
import testPackCase4.Case.Inv
|
||||
import testPackCase4.Case.E
|
||||
|
||||
operator fun Case.E.plusAssign(value: Int) {}
|
||||
operator fun Case.Inv.invoke(i: Int) {}
|
||||
|
||||
// FILE: TestCase8.kt
|
||||
// TESTCASE NUMBER: 7, 8
|
||||
package testPackCase8
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package testPackCase4
|
||||
import libPackage.plusAssign
|
||||
import libPackage.*
|
||||
import libPackage.invoke
|
||||
|
||||
operator fun Case.E.plusAssign(value: Int) {}
|
||||
|
||||
class Case() {
|
||||
|
||||
class E(val plusAssign: Inv? = null) {
|
||||
operator fun plusAssign(value: Int) {}
|
||||
/*operator*/ fun plusAssign(value: Int) {}
|
||||
}
|
||||
|
||||
class Inv() {
|
||||
operator fun invoke(value: Int) {}
|
||||
/*operator*/ fun invoke(value: Int) {}
|
||||
}
|
||||
|
||||
fun foo(e: E) {
|
||||
@@ -182,60 +169,48 @@ class Case() {
|
||||
run {
|
||||
operator fun E.plusAssign(value: Int) {}
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase8.Case.E.plusAssign; typeCall: operator function")!>e+=1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase4.Case.foo.plusAssign; typeCall: operator extension function")!>e += 1<!>
|
||||
}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase8.Case.E.plusAssign; typeCall: operator function")!>e+=1<!>
|
||||
}
|
||||
fun boo(e: E) {
|
||||
/*operator*/ fun E.plusAssign(value: Int) {}
|
||||
|
||||
run {
|
||||
/*operator*/ fun E.plusAssign(value: Int) {}
|
||||
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase8.Case.E.plusAssign; typeCall: operator function")!>e+=1<!>
|
||||
}
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase8.Case.E.plusAssign; typeCall: operator function")!>e+=1<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase4.Case.foo.plusAssign; typeCall: operator extension function")!>e += 1<!>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: LibCase9.kt
|
||||
// TESTCASE NUMBER: 9, 10
|
||||
package libPackage
|
||||
import testPackCase10.Iterable
|
||||
import testPackCase10.Inv
|
||||
// FILE: TestCase5.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 5
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-36996
|
||||
*/
|
||||
package testPackCase5
|
||||
import kotlin.reflect.KProperty
|
||||
|
||||
operator fun Iterable.iterator() : CharIterator = TODO()
|
||||
operator fun Inv.invoke() {}
|
||||
class Delegate {
|
||||
/*operator*/ fun getValue(thisRef: Any?, property: KProperty<*>): String {
|
||||
return ""
|
||||
}
|
||||
|
||||
// FILE: TestCase10.kt
|
||||
// TESTCASE NUMBER: 9, 10
|
||||
package testPackCase10
|
||||
import libPackage.iterator
|
||||
import libPackage.invoke
|
||||
|
||||
class Iterable(iterator: Inv) {
|
||||
operator fun iterator() : CharIterator = TODO()
|
||||
/*operator*/ fun setValue(thisRef: Any?, property: KProperty<*>, value: String) {
|
||||
}
|
||||
}
|
||||
|
||||
class Inv(val c: Char) {
|
||||
operator fun invoke(): CharIterator = TODO()
|
||||
operator fun Delegate.getValue(thisRef: Any?, property: KProperty<*>): String {
|
||||
return ""
|
||||
}
|
||||
operator fun Delegate.setValue(thisRef: Any?, property: KProperty<*>, value: String) {}
|
||||
|
||||
operator fun Iterable.iterator() : CharIterator = TODO()
|
||||
fun case() {
|
||||
class Test {
|
||||
var p: String by Delegate()
|
||||
|
||||
fun case(){
|
||||
operator fun Iterable.iterator() : CharIterator = TODO()
|
||||
val iterable: Iterable = Iterable(Inv('c'))
|
||||
|
||||
fun foo(){
|
||||
iterable.<!DEBUG_INFO_CALL("fqName: testPackCase10.Iterable.iterator; typeCall: operator function")!>iterator()<!>
|
||||
for (i in iterable) {
|
||||
println(i)
|
||||
operator fun Delegate.getValue(thisRef: Any?, property: KProperty<*>): String {
|
||||
return ""
|
||||
}
|
||||
operator fun Delegate.setValue(thisRef: Any?, property: KProperty<*>, value: String) {
|
||||
}
|
||||
}
|
||||
iterable.<!DEBUG_INFO_CALL("fqName: testPackCase10.Iterable.iterator; typeCall: operator function")!>iterator()<!>
|
||||
for (i in iterable) {
|
||||
println(i)
|
||||
}
|
||||
val test = Test()
|
||||
test.p = "NEW"
|
||||
val x = test.p
|
||||
|
||||
}
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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-268
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 4 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: properties available through the invoke convention are non-eligible for operator calls
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 1
|
||||
|
||||
+9
@@ -1,6 +1,15 @@
|
||||
// !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
|
||||
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 4 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: properties available through the invoke convention are non-eligible for operator calls
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 1
|
||||
|
||||
-30
@@ -1,30 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
|
||||
import testPackCase1.I2.Companion.foo
|
||||
import testPackCase1.I1.Companion.foo
|
||||
|
||||
class Case2() : I2, I1{
|
||||
|
||||
fun test(){
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>foo(1)<!>
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.I1.Companion.foo; typeCall: function")!>foo(1)<!>
|
||||
}
|
||||
}
|
||||
|
||||
interface I2{
|
||||
companion object {
|
||||
fun <T>foo(x: Int): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1{
|
||||
companion object {
|
||||
fun foo(x: Int): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-42
@@ -1,42 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
|
||||
import testPackCase1.I2.Companion.foo
|
||||
import testPackCase1.I1.Companion.foo
|
||||
|
||||
class Case2() : I2, I1, I3 {
|
||||
|
||||
fun test() {
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>foo(1)<!> // resolved to (2)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.I1.Companion.foo; typeCall: function")!>foo(1)<!>
|
||||
}
|
||||
}
|
||||
|
||||
interface I2 {
|
||||
companion object {
|
||||
fun <T> foo(x: Int): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1 {
|
||||
companion object {
|
||||
fun foo(x: Int): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
|
||||
interface I3 {
|
||||
companion object {
|
||||
fun foo(x: Short): Unit = print(3) // (3)
|
||||
}
|
||||
}
|
||||
|
||||
interface I4 {
|
||||
companion object {
|
||||
fun foo(x: Any): Unit = print(4) // (4)
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+12
@@ -1,6 +1,18 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: call with explicit receiver: different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1
|
||||
|
||||
+12
@@ -1,6 +1,18 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: call with explicit receiver (built-in integer types extesnsion): different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// FILE: TestCase11.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+12
@@ -1,6 +1,18 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 3
|
||||
* DESCRIPTION: call with implicit receiver: different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1
|
||||
|
||||
+12
@@ -1,6 +1,18 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 4
|
||||
* DESCRIPTION: call with implicit receiver (built-in integer types extesnsion): different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
+13
@@ -1,6 +1,19 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 11 -> sentence 4
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 7 -> sentence 3
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: call with explicit receiver
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
class Case5 {
|
||||
|
||||
-24
@@ -1,24 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1() {
|
||||
fun foo(y: Int, x: Int): String = TODO() // (1.1)
|
||||
fun foo(vararg x: Int): Unit = TODO() // (1.2)
|
||||
|
||||
fun case(){
|
||||
<!DEBUG_INFO_CALL("fqName: Case1.foo; typeCall: function")!>foo(1, 1)<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>foo(1, 1)<!>
|
||||
}
|
||||
}
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2() {
|
||||
fun foo(y: Any?, x: Any?): String = TODO() // (1.1)
|
||||
fun foo(vararg x: Any?): Unit = TODO() // (1.2)
|
||||
|
||||
fun case(){
|
||||
<!DEBUG_INFO_CALL("fqName: Case2.foo; typeCall: function")!>foo(1, 1)<!>
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>foo(1, 1)<!>
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 12 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 1
|
||||
* DESCRIPTION: call with explicit receiver: different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 12 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 2
|
||||
* DESCRIPTION: call with explicit receiver (built-in integer types extesnsion): different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// FILE: TestCase11.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
|
||||
-86
@@ -1,86 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1
|
||||
|
||||
fun case1(case: Case1) {
|
||||
case.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: boo; typeCall: extension function")!>boo(1)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(1)<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: boo; typeCall: extension function")!>boo(x = 1)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(x = 1)<!>
|
||||
}
|
||||
}
|
||||
|
||||
fun Case1.boo(x: Int): String = TODO() //(1.1)
|
||||
fun Case1.boo(x: Long): Unit = TODO() //(1.2)
|
||||
fun Case1.boo(x: Short): Unit = TODO() //(1.3)
|
||||
fun Case1.boo(x: Byte): Unit = TODO() //(1.4)
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2 {
|
||||
fun boo(x: Int, y: Int): String = TODO() //(1.1)
|
||||
fun boo(x: Long, y: Int): Unit = TODO() //(1.2)
|
||||
fun boo(x: Short, y: Int): Unit = TODO() //(1.3)
|
||||
fun boo(x: Byte, y: Int): Unit = TODO() //(1.4)
|
||||
}
|
||||
|
||||
fun case2(case: Case2) {
|
||||
case.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: Case2.boo; typeCall: function")!>boo(1, 2)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(1, 2)<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: Case2.boo; typeCall: function")!>boo(x = 1, y = 2)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(x = 1, y = 2)<!>
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 3
|
||||
class Case3 {
|
||||
fun boo(x: Int, y: Int): String = TODO() //(1.1)
|
||||
fun boo(x: Int, y: Short): Unit = TODO() //(1.2)
|
||||
}
|
||||
|
||||
fun case3(case: Case3) {
|
||||
case.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: Case3.boo; typeCall: function")!>boo(1, 2)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(1, 2)<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: Case3.boo; typeCall: function")!>boo(x = 1, y = 2)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(x = 1, y = 2)<!>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
class Case4 {
|
||||
operator fun minus(x: Int): String = TODO() //(1.1)
|
||||
operator fun minus(x: Long): Unit = TODO() //(1.2)
|
||||
operator fun minus(x: Short): Unit = TODO() //(1.3)
|
||||
operator fun minus(x: Byte): Unit = TODO() //(1.4)
|
||||
}
|
||||
|
||||
fun case4(case: Case4) {
|
||||
case.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: Case4.minus; typeCall: operator function")!>minus(1)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>minus(1)<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: Case4.minus; typeCall: operator function")!>this - 1<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>this - 1<!>
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-74
@@ -1,74 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
private fun Int.boo(x: Int): String = TODO() //(1.1)
|
||||
private fun Int.boo(x: Long): Unit = TODO() //(1.2)
|
||||
private fun Int.boo(x: Short): Unit = TODO() //(1.3)
|
||||
private fun Int.boo(x: Byte): Unit = TODO() //(1.4)
|
||||
|
||||
fun case1() {
|
||||
1.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.boo; typeCall: extension function")!>boo(1)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(1)<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase1.boo; typeCall: extension function")!>boo(x = 1)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(x = 1)<!>
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testPackCase2
|
||||
|
||||
class Case2 {
|
||||
private fun Int.boo(x: Int, y: Int): String = TODO() //(1.1)
|
||||
private fun Short.boo(x: Int, y: Int): Unit = TODO() //(1.2)
|
||||
private fun Long.boo(x: Int, y: Int): Unit = TODO() //(1.3)
|
||||
private fun Byte.boo(x: Int, y: Int): Unit = TODO() //(1.4)
|
||||
|
||||
fun case2() {
|
||||
1.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.Case2.boo; typeCall: extension function")!>boo(1, 2)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(1, 2)<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase2.Case2.boo; typeCall: extension function")!>boo(x = 1, y = 2)<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>boo(x = 1, y = 2)<!>
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// FILE: TestCase4.kt
|
||||
// TESTCASE NUMBER: 4
|
||||
package testPackCase4
|
||||
|
||||
private operator fun Int.minus(x: String): String = TODO() //(1.1)
|
||||
private operator fun Short.minus(x: String): Unit = TODO() //(1.2)
|
||||
private operator fun Byte.minus(x: String): Unit = TODO() //(1.3)
|
||||
private operator fun Long.minus(x: String): Unit = TODO() //(1.4)
|
||||
|
||||
fun case4() {
|
||||
1.apply {
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase4.minus; typeCall: operator extension function")!>minus("1")<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>minus("1")<!>
|
||||
//to (1.1)
|
||||
<!DEBUG_INFO_CALL("fqName: testPackCase4.minus; typeCall: operator extension function")!>this-"1"<!>
|
||||
//(1.1) return type is String
|
||||
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>this-"1"<!>
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 12 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 5
|
||||
* DESCRIPTION: infix call: different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1{
|
||||
|
||||
+11
@@ -1,6 +1,17 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 12 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* NUMBER: 6
|
||||
* DESCRIPTION: infix call (built-in integer types extesnsion): different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1{
|
||||
|
||||
+13
@@ -1,6 +1,19 @@
|
||||
// !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-387
|
||||
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 12 -> sentence 2
|
||||
* PRIMARY LINKS: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 3 -> sentence 3
|
||||
* built-in-types-and-their-semantics, built-in-integer-types-1, integer-type-widening -> paragraph 3 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 17 -> sentence 1
|
||||
* overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 17 -> sentence 3
|
||||
* NUMBER: 7
|
||||
* DESCRIPTION: different built-in integer types and one of them is kotlin.Int
|
||||
*/
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
|
||||
-64
@@ -1,64 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
// TESTCASE NUMBER: 1
|
||||
class Case1() {
|
||||
fun foo(x: Int, y: Number?): Unit = TODO() // (1)
|
||||
fun foo(vararg x: Short): Unit = TODO()//(2)
|
||||
|
||||
fun testcase() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 2
|
||||
class Case2() {
|
||||
fun foo(y: Any, x: Any): Unit = TODO() // (1.1)
|
||||
fun foo(vararg x: Int?): Unit = TODO() // (1.2)
|
||||
|
||||
fun case(){
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
|
||||
}
|
||||
}
|
||||
// TESTCASE NUMBER: 3
|
||||
class Case3() {
|
||||
fun foo(y: Any, x: Any): Unit = TODO() // (1.1)
|
||||
fun foo(vararg x: Int?): Unit = TODO() // (1.2)
|
||||
|
||||
fun case(){
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 4
|
||||
class Case4() {
|
||||
fun foo(y: Int, x: Short): Unit = TODO() // (1.1)
|
||||
fun foo(y: Int, x: Long): Unit = TODO() // (1.2)
|
||||
|
||||
fun case(){
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 5
|
||||
class Case5() {
|
||||
fun foo(y: Int, x: Short): Unit = TODO() // (1.1)
|
||||
fun foo(y: Int, x: Long, a : Any =""): Unit = TODO() // (1.2)
|
||||
|
||||
fun case(){
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1, 1)
|
||||
}
|
||||
}
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
|
||||
class A : B, C
|
||||
interface B
|
||||
interface C
|
||||
fun foo(x: B) {} //(1)
|
||||
fun foo(y: C, z: String = "foo") {} //2
|
||||
fun bar() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-14
@@ -1,14 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// TESTCASE NUMBER: 6
|
||||
// NOTE: todo link new sentences
|
||||
class A : B, C
|
||||
interface B
|
||||
interface C
|
||||
fun foo(x: B) {} //(1)
|
||||
fun foo(y: C, z: String = "foo") {} //2
|
||||
fun bar() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(A()) //OVERLOAD_RESOLUTION_AMBIGUITY
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-55
@@ -1,55 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
|
||||
import testPackCase1.I2.Companion.foo
|
||||
import testPackCase1.I1.Companion.foo
|
||||
|
||||
class Case2() : I2, I1{
|
||||
|
||||
fun test(){
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I2{
|
||||
companion object {
|
||||
fun foo(x: Int): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1{
|
||||
companion object {
|
||||
fun foo(x: Int): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
|
||||
// FILE: TestCase2.kt
|
||||
// TESTCASE NUMBER: 2
|
||||
package testPackCase2
|
||||
|
||||
import testPackCase2.I2.Companion.foo
|
||||
import testPackCase2.I1.Companion.foo
|
||||
|
||||
class Case2() : I2, I1{
|
||||
|
||||
fun test(){
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I2{
|
||||
companion object {
|
||||
fun <T>foo(x: Int): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1{
|
||||
companion object {
|
||||
fun <R>foo(x: Int): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
|
||||
import testPackCase1.I2.Companion.foo
|
||||
import testPackCase1.I1.Companion.foo
|
||||
import testPackCase1.I3.Companion.foo
|
||||
import testPackCase1.I4.Companion.foo
|
||||
|
||||
class Case1() : I2, I1, I3, I4 {
|
||||
|
||||
fun test() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I2 {
|
||||
companion object {
|
||||
fun <T> foo(x: Int): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1 {
|
||||
companion object {
|
||||
fun foo(x: Int): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
|
||||
interface I3 {
|
||||
companion object {
|
||||
fun foo(x: Short): Unit = print(3) // (3)
|
||||
}
|
||||
}
|
||||
|
||||
interface I4 {
|
||||
companion object {
|
||||
fun foo(x: Int): Unit = print(4) // (4)
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-47
@@ -1,47 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
/*
|
||||
* TESTCASE NUMBER: 1
|
||||
* UNEXPECTED BEHAVIOUR
|
||||
* ISSUES: KT-38912
|
||||
*/
|
||||
package testPackCase1
|
||||
|
||||
import testPackCase1.I2.Companion.foo
|
||||
import testPackCase1.I1.Companion.foo
|
||||
import testPackCase1.I3.Companion.foo
|
||||
import testPackCase1.I4.Companion.foo
|
||||
|
||||
class Case1() : I2, I1, I3, I4 {
|
||||
|
||||
fun test() {
|
||||
<!NEW_INFERENCE_NO_INFORMATION_FOR_PARAMETER!>foo<!>(1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I2 {
|
||||
companion object {
|
||||
fun <T> foo(x: Int): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1 {
|
||||
companion object {
|
||||
fun foo(x: Int, y: Any = ""): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
|
||||
interface I3 {
|
||||
companion object {
|
||||
fun foo(x: Short): Unit = print(3) // (3)
|
||||
}
|
||||
}
|
||||
|
||||
interface I4 {
|
||||
companion object {
|
||||
fun foo(x: Int, y: Any = ""): Unit = print(4) // (4)
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
-43
@@ -1,43 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||
// SKIP_TXT
|
||||
|
||||
|
||||
// FILE: TestCase1.kt
|
||||
// TESTCASE NUMBER: 1
|
||||
package testPackCase1
|
||||
|
||||
import testPackCase1.I2.Companion.foo
|
||||
import testPackCase1.I1.Companion.foo
|
||||
import testPackCase1.I3.Companion.foo
|
||||
import testPackCase1.I4.Companion.foo
|
||||
|
||||
class Case1() : I2, I1, I3, I4 {
|
||||
|
||||
fun test() {
|
||||
<!OVERLOAD_RESOLUTION_AMBIGUITY!>foo<!>(1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I2 {
|
||||
companion object {
|
||||
fun <T> foo(x: Int, y: Any): Unit = print(1) // (1)
|
||||
}
|
||||
}
|
||||
|
||||
interface I1 {
|
||||
companion object {
|
||||
fun foo(x: Int, z: Any = "", vararg y: Any): String = "print(2)" // (2)
|
||||
}
|
||||
}
|
||||
|
||||
interface I3 {
|
||||
companion object {
|
||||
fun foo(x: Short, z: Any = "", vararg y: Any): Unit = print(3) // (3)
|
||||
}
|
||||
}
|
||||
|
||||
interface I4 {
|
||||
companion object {
|
||||
fun foo(x: Int, z: Any = "", vararg y: Any): Unit = print(4) // (4)
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user