[Spec tests] Add overload resolution tests for plus assign operator call
This commit is contained in:
@@ -0,0 +1,44 @@
|
|||||||
|
{
|
||||||
|
"1": {
|
||||||
|
"neg": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pos": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
java.lang.IllegalStateException: UNSAFE_OPERATOR_CALL: Operator call corresponds to a dot-qualified call 'a?.b.plusAssign(c)' which is not allowed on a nullable receiver 'a?.b'. (20,10) in /2.1.kt
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 1
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
* EXCEPTION: compiletime
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
|
||||||
|
a?.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign(c)
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
java.lang.IllegalStateException: UNSAFE_OPERATOR_CALL: Operator call corresponds to a dot-qualified call 'a?.b.plusAssign({ c }())' which is not allowed on a nullable receiver 'a?.b'. (20,10) in /2.2.kt
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 2
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
* EXCEPTION: compiletime
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
|
||||||
|
a?.b += { c }()
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign({ c }())
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
java.lang.IllegalStateException: UNSAFE_OPERATOR_CALL: Operator call corresponds to a dot-qualified call 'a?.b.plusAssign(c)' which is not allowed on a nullable receiver 'a?.b'. (20,10) in /2.3.kt
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 3
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
* EXCEPTION: compiletime
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C? = C()
|
||||||
|
|
||||||
|
a?.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign(c)
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
java.lang.IllegalStateException: UNSAFE_OPERATOR_CALL: Operator call corresponds to a dot-qualified call 'a?.b.plusAssign(c)' which is not allowed on a nullable receiver 'a?.b'. (20,10) in /2.4.kt
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 4
|
||||||
|
* DESCRIPTION: nullable receiver and infix functions
|
||||||
|
* EXCEPTION: compiletime
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
|
||||||
|
a?.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b plusAssign c
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
java.lang.IllegalStateException: UNSAFE_OPERATOR_CALL: Operator call corresponds to a dot-qualified call 'a?.b.plusAssign({ c }())' which is not allowed on a nullable receiver 'a?.b'. (20,10) in /2.5.kt
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 5
|
||||||
|
* DESCRIPTION: nullable receiver and infix functions
|
||||||
|
* EXCEPTION: compiletime
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
|
||||||
|
a?.b += { c }()
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b plusAssign { c }()
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+1
@@ -0,0 +1 @@
|
|||||||
|
java.lang.IllegalStateException: UNSAFE_OPERATOR_CALL: Operator call corresponds to a dot-qualified call 'a?.b.plusAssign(c)' which is not allowed on a nullable receiver 'a?.b'. (20,10) in /2.6.kt
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 6
|
||||||
|
* DESCRIPTION: nullable receiver and infix functions
|
||||||
|
* EXCEPTION: compiletime
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C? = C()
|
||||||
|
|
||||||
|
a?.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b plusAssign c
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 1
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
|
||||||
|
a?.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign(c)
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 10
|
||||||
|
* DESCRIPTION: nullable receiver and inline operator function
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
fun cc() : C = C()
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
|
||||||
|
a!!.b += ::cc
|
||||||
|
if (!f3 && f1 && !f2 && !f4) {
|
||||||
|
f1 = false
|
||||||
|
a!!.b.plusAssign(::cc)
|
||||||
|
if (f1 && !f3 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
|
||||||
|
class B {
|
||||||
|
inline operator fun plusAssign(c: ()->C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
inline operator fun plus(c: ()->C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmName("aa")
|
||||||
|
inline operator fun B?.plusAssign(c: ()->C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
@JvmName("bb")
|
||||||
|
inline operator fun B?.plusAssign(c: ()->Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+62
@@ -0,0 +1,62 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 2
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
a?.b += { c }()
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign({ c }())
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 4
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 3
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C? = C()
|
||||||
|
|
||||||
|
a!!.b += c?: C()
|
||||||
|
if (f1 && !f3 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a!!.b.plusAssign(c?: C())
|
||||||
|
if (f1 && !f3 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C?): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c!!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: C?) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: Any?) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+73
@@ -0,0 +1,73 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 4
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C? = C()
|
||||||
|
|
||||||
|
a!!.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign(c)
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
var f5 = false
|
||||||
|
var f6 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun plus(c: C?): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c!!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: C?) {
|
||||||
|
f5 = true
|
||||||
|
print("5")
|
||||||
|
}
|
||||||
|
|
||||||
|
operator fun B?.plusAssign(c: Any?) {
|
||||||
|
f6 = true
|
||||||
|
print("6")
|
||||||
|
}
|
||||||
|
@JvmName("aa")
|
||||||
|
operator fun B.plusAssign(c: C?) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
@JvmName("bb")
|
||||||
|
operator fun B.plusAssign(c: Any?) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 5
|
||||||
|
* DESCRIPTION: nullable receiver and infix functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
|
||||||
|
a?.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b plusAssign c
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+62
@@ -0,0 +1,62 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 6
|
||||||
|
* DESCRIPTION: nullable receiver and infix functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C = C()
|
||||||
|
a?.b += { c }()
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b plusAssign { c }()
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+61
@@ -0,0 +1,61 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 4
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 7
|
||||||
|
* DESCRIPTION: nullable receiver and infix functions
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C? = C()
|
||||||
|
|
||||||
|
a!!.b += c?: C()
|
||||||
|
if (f1 && !f3 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a!!.b plusAssign (c?: C())
|
||||||
|
if (f1 && !f3 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C?): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c!!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: C?) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: Any?) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+73
@@ -0,0 +1,73 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 8
|
||||||
|
* DESCRIPTION: nullable receiver
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
val c: C? = C()
|
||||||
|
|
||||||
|
a!!.b += c
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b plusAssign c
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
var f5 = false
|
||||||
|
var f6 = false
|
||||||
|
|
||||||
|
class B {
|
||||||
|
infix operator fun plusAssign(c: C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun plus(c: C?): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c!!
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: C?) {
|
||||||
|
f5 = true
|
||||||
|
print("5")
|
||||||
|
}
|
||||||
|
|
||||||
|
infix operator fun B?.plusAssign(c: Any?) {
|
||||||
|
f6 = true
|
||||||
|
print("6")
|
||||||
|
}
|
||||||
|
@JvmName("aa")
|
||||||
|
infix operator fun B.plusAssign(c: C?) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
@JvmName("bb")
|
||||||
|
infix operator fun B.plusAssign(c: Any?) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+64
@@ -0,0 +1,64 @@
|
|||||||
|
// WITH_RUNTIME
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN CODEGEN BOX SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-488
|
||||||
|
* 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 3
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 9
|
||||||
|
* DESCRIPTION: nullable receiver and inline operator function
|
||||||
|
*/
|
||||||
|
|
||||||
|
fun cc() : C = C()
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val a: A? = A(B())
|
||||||
|
|
||||||
|
a?.b += ::cc
|
||||||
|
if (f3 && !f1 && !f2 && !f4) {
|
||||||
|
f3 = false
|
||||||
|
a?.b.plusAssign(::cc)
|
||||||
|
if (f3 && !f1 && !f2 && !f4)
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
|
return "NOK"
|
||||||
|
}
|
||||||
|
|
||||||
|
class A(val b: B)
|
||||||
|
|
||||||
|
var f1 = false
|
||||||
|
var f2 = false
|
||||||
|
var f3 = false
|
||||||
|
var f4 = false
|
||||||
|
|
||||||
|
|
||||||
|
class B {
|
||||||
|
inline operator fun plusAssign(c: ()->C) {
|
||||||
|
f1 = true
|
||||||
|
print("1")
|
||||||
|
}
|
||||||
|
|
||||||
|
inline operator fun plus(c: ()->C): C {
|
||||||
|
f2 = true
|
||||||
|
print("2")
|
||||||
|
return c()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmName("aa")
|
||||||
|
inline operator fun B?.plusAssign(c: ()->C) {
|
||||||
|
f3 = true
|
||||||
|
print("3")
|
||||||
|
}
|
||||||
|
@JvmName("bb")
|
||||||
|
inline operator fun B?.plusAssign(c: ()->Any) {
|
||||||
|
f4 = true
|
||||||
|
print("4")
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class C
|
||||||
+138
@@ -1,4 +1,142 @@
|
|||||||
{
|
{
|
||||||
|
"1": {
|
||||||
|
"neg": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pos": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.10.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.8.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.7.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"2": {
|
"2": {
|
||||||
"pos": {
|
"pos": {
|
||||||
"3": [
|
"3": [
|
||||||
|
|||||||
+84
@@ -18,6 +18,90 @@
|
|||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "main"
|
"linkType": "main"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"3": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.10.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.8.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"4": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.7.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+384
@@ -17,6 +17,54 @@
|
|||||||
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/neg/1.1.kt",
|
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/neg/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "main"
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"2": [
|
"2": [
|
||||||
@@ -35,6 +83,54 @@
|
|||||||
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/neg/1.1.kt",
|
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/neg/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "primary"
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"3": [
|
"3": [
|
||||||
@@ -45,6 +141,54 @@
|
|||||||
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/neg/1.2.kt",
|
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/neg/1.2.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "primary"
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"10": [
|
"10": [
|
||||||
@@ -249,6 +393,86 @@
|
|||||||
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "main"
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.10.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.8.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.7.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"2": [
|
"2": [
|
||||||
@@ -267,6 +491,86 @@
|
|||||||
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "primary"
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.10.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.8.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.7.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"3": [
|
"3": [
|
||||||
@@ -277,6 +581,86 @@
|
|||||||
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/pos/1.2.kt",
|
"path": "compiler/tests-spec/testData/codegen/box/linked/statements/assignments/operator-assignments/p-2/pos/1.2.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "primary"
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.10.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.4.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and inline operator function",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.8.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.7.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.3.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-488",
|
||||||
|
"casesNumber": 0,
|
||||||
|
"description": "nullable receiver and infix functions",
|
||||||
|
"path": "compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"10": [
|
"10": [
|
||||||
|
|||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
class C
|
||||||
|
@JvmName("bb1")
|
||||||
|
fun C?.boo( c: ()->Any) {} //(1)
|
||||||
|
|
||||||
|
@JvmName("aa1")
|
||||||
|
fun C?.boo( c: ()->C) : String { //(2)
|
||||||
|
val x = {1}
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase1.boo; typeCall: extension function")!>boo( x )<!>// ok to (1)
|
||||||
|
this.boo( x )
|
||||||
|
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase1.boo; typeCall: extension function")!>boo( {1})<!> //to (2); {1} is ()->C
|
||||||
|
this.boo( {1})
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 2
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
|
||||||
|
class C
|
||||||
|
@JvmName("bb1")
|
||||||
|
fun C?.boo( c: ()->Any) {} //(1)
|
||||||
|
|
||||||
|
@JvmName("aa1")
|
||||||
|
fun C?.boo( c: ()->C, x : Int = 1) : String { //(2)
|
||||||
|
val x = {1}
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase2.boo; typeCall: extension function")!>boo( x )<!>// ok to (1)
|
||||||
|
this.boo( x )
|
||||||
|
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase2.boo; typeCall: extension function")!>boo( {1})<!> //to (2); {1} is ()->C
|
||||||
|
this.boo( {1})
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
+56
@@ -0,0 +1,56 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
class C
|
||||||
|
@JvmName("bb1")
|
||||||
|
fun C?.boo( c: ()->Any) {} //(1)
|
||||||
|
|
||||||
|
@JvmName("aa1")
|
||||||
|
fun C?.boo( c: ()->C) : String { //(2)
|
||||||
|
val x = {1}
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase1.boo; typeCall: extension function")!>boo( x )<!>// ok to (1)
|
||||||
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>this.boo( x )<!>
|
||||||
|
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase1.boo; typeCall: extension function")!>boo( {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>})<!> //to (2); {1} is ()->C
|
||||||
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>this.boo( {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>})<!>
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 2
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
|
||||||
|
class C
|
||||||
|
@JvmName("bb1")
|
||||||
|
fun C?.boo( c: ()->Any) {} //(1)
|
||||||
|
|
||||||
|
@JvmName("aa1")
|
||||||
|
fun C?.boo( c: ()->C, x : Int = 1) : String { //(2)
|
||||||
|
val <!NAME_SHADOWING!>x<!> = {1}
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase2.boo; typeCall: extension function")!>boo( x )<!>// ok to (1)
|
||||||
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.Unit")!>this.boo( x )<!>
|
||||||
|
|
||||||
|
this.<!DEBUG_INFO_CALL("fqName: testPackCase2.boo; typeCall: extension function")!>boo( {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>})<!> //to (2); {1} is ()->C
|
||||||
|
<!DEBUG_INFO_EXPRESSION_TYPE("kotlin.String")!>this.boo( {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>})<!>
|
||||||
|
|
||||||
|
return ""
|
||||||
|
}
|
||||||
+27
@@ -0,0 +1,27 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
class B {
|
||||||
|
inline operator fun plusAssign(crossinline c: ()->C) {}
|
||||||
|
|
||||||
|
inline operator fun plus(crossinline c: ()->C): C = C()
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmName("bb")
|
||||||
|
inline operator fun B?.plusAssign( c: ()->Any) { } //(1)
|
||||||
|
@JvmName("aa")
|
||||||
|
inline operator fun B?.plusAssign( c: ()->C) { //(2)
|
||||||
|
|
||||||
|
this += {1}
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.plusAssign; typeCall: inline operator extension function")!>this += {1}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class C
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
class B {
|
||||||
|
inline operator fun plusAssign(crossinline c: ()->C) {}
|
||||||
|
|
||||||
|
inline operator fun plus(crossinline c: ()->C): C = C()
|
||||||
|
}
|
||||||
|
|
||||||
|
@JvmName("bb")
|
||||||
|
inline operator fun B?.plusAssign( c: ()->Any) { } //(1)
|
||||||
|
@JvmName("aa")
|
||||||
|
inline operator fun B?.plusAssign( c: ()->C) { //(2)
|
||||||
|
|
||||||
|
this <!RECURSION_IN_INLINE!>+=<!> {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>}
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.plusAssign; typeCall: inline operator extension function")!>this <!RECURSION_IN_INLINE!>+=<!> {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class C
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = B()
|
||||||
|
<!DEBUG_INFO_CALL("fqName: LibPackCase1.b.plusAssign; typeCall: operator extension function")!>b += { C() }<!>
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: LibPackCase1.a.plusAssign; typeCall: operator extension function")!>b += {1}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
private operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+90
@@ -0,0 +1,90 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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: 4
|
||||||
|
* DESCRIPTION: without inline plusAssign functions
|
||||||
|
* UNEXPECTED BEHAVIOUR
|
||||||
|
* ISSUES: KT-39819
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = B()
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plus; typeCall: operator function"), INVISIBLE_MEMBER, TYPE_MISMATCH!>b <!UNSAFE_OPERATOR_CALL!>+=<!> { C() }<!>
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plus; typeCall: operator function"), INVISIBLE_MEMBER, TYPE_MISMATCH!>b <!UNSAFE_OPERATOR_CALL!>+=<!> {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
private operator fun plus(c: () -> C): C = c() //(3)
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
|
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 2
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import LibPackCase2.b.*
|
||||||
|
|
||||||
|
fun case2 (){
|
||||||
|
var b: B = B()
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase2.B.plus; typeCall: operator function"), INVISIBLE_MEMBER, TYPE_MISMATCH!>b += { C() }<!>
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase2.B.plus; typeCall: operator function"), INVISIBLE_MEMBER, TYPE_MISMATCH!>b += {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
private operator fun plus(c: () -> C): C = c() //(3)
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase2b.kt
|
||||||
|
package LibPackCase2.b
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import testPackCase2.B
|
||||||
|
import testPackCase2.C
|
||||||
|
|
||||||
|
operator fun B.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase2a.kt
|
||||||
|
package LibPackCase2.a
|
||||||
|
import testPackCase2.B
|
||||||
|
|
||||||
|
operator fun B.plusAssign( c: ()->Int) {} //(1)
|
||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
// TESTCASE NUMBER: 1
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = null
|
||||||
|
<!DEBUG_INFO_CALL("fqName: LibPackCase1.b.plusAssign; typeCall: inline operator extension function")!>b += { C() }<!>
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: LibPackCase1.a.plusAssign; typeCall: inline operator extension function")!>b += {1}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private inline operator fun plusAssign(c: () -> C) {}
|
||||||
|
|
||||||
|
private inline operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
inline operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
inline operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
class C
|
||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = null
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plus; typeCall: inline operator function"), INVISIBLE_MEMBER, TYPE_MISMATCH!>b <!UNSAFE_OPERATOR_CALL!>+=<!> { C() }<!>
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plus; typeCall: inline operator function"), INVISIBLE_MEMBER, TYPE_MISMATCH!>b <!UNSAFE_OPERATOR_CALL!>+=<!> {<!CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH, CONSTANT_EXPECTED_TYPE_MISMATCH!>1<!>}<!>
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private inline operator fun plusAssign(c: () -> C) {}
|
||||||
|
|
||||||
|
private inline operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
inline operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
inline operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
class C
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = B()
|
||||||
|
b += { C() }
|
||||||
|
|
||||||
|
b += {1}
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
// private operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (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
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = B()
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!> { C() }
|
||||||
|
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!> {1}
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
// private operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.plusAssign
|
||||||
|
import LibPackCase1.b.plusAssign
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = B()
|
||||||
|
b += { C() }
|
||||||
|
|
||||||
|
b += {1}
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
// private operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+53
@@ -0,0 +1,53 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (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
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.plusAssign
|
||||||
|
import LibPackCase1.b.plusAssign
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B? = B()
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!> { C() }
|
||||||
|
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!> {1}
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private operator fun plusAssign(c: () -> C) {}
|
||||||
|
// private operator fun plus(c: () -> C): C = c()
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+73
@@ -0,0 +1,73 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.plusAssign
|
||||||
|
import LibPackCase1.b.plusAssign
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B = B()
|
||||||
|
b +={ C() }
|
||||||
|
b +={ 1 }
|
||||||
|
}
|
||||||
|
|
||||||
|
class B
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
|
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
import LibPackCase2.a.plusAssign
|
||||||
|
import LibPackCase2.b.plusAssign
|
||||||
|
|
||||||
|
fun case2 (){
|
||||||
|
var b: B = B()
|
||||||
|
b +={ C() }
|
||||||
|
b +={ 1 }
|
||||||
|
|
||||||
|
b.<!AMBIGUITY!>plusAssign<!>{ C() }
|
||||||
|
}
|
||||||
|
|
||||||
|
class B
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase2b.kt
|
||||||
|
package LibPackCase2.b
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import testPackCase2.B
|
||||||
|
import testPackCase2.C
|
||||||
|
|
||||||
|
operator fun B.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase2a.kt
|
||||||
|
package LibPackCase2.a
|
||||||
|
import testPackCase2.B
|
||||||
|
|
||||||
|
operator fun B.plusAssign( c: ()->Int) {} //(1)
|
||||||
+84
@@ -0,0 +1,84 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.plusAssign
|
||||||
|
import LibPackCase1.b.plusAssign
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B = B()
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!>{ C() }
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!>{ 1 }
|
||||||
|
}
|
||||||
|
|
||||||
|
class B
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
|
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
import LibPackCase2.a.plusAssign
|
||||||
|
import LibPackCase2.b.plusAssign
|
||||||
|
|
||||||
|
fun case2 (){
|
||||||
|
var b: B = B()
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!>{ C() }
|
||||||
|
b <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>+=<!>{ 1 }
|
||||||
|
|
||||||
|
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>plusAssign<!>{ C() }
|
||||||
|
}
|
||||||
|
|
||||||
|
class B
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase2b.kt
|
||||||
|
package LibPackCase2.b
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import testPackCase2.B
|
||||||
|
import testPackCase2.C
|
||||||
|
|
||||||
|
operator fun B.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase2a.kt
|
||||||
|
package LibPackCase2.a
|
||||||
|
import testPackCase2.B
|
||||||
|
|
||||||
|
operator fun B.plusAssign( c: ()->Int) {} //(1)
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.plusAssign
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B = B()
|
||||||
|
<!INAPPLICABLE_CANDIDATE!>b +={ C() }<!>
|
||||||
|
b +={ 1 }
|
||||||
|
}
|
||||||
|
|
||||||
|
class B
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
import LibPackCase1.a.plusAssign
|
||||||
|
|
||||||
|
fun case1 (){
|
||||||
|
var b: B = B()
|
||||||
|
b +={ <!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>C()<!> }
|
||||||
|
b +={ 1 }
|
||||||
|
}
|
||||||
|
|
||||||
|
class B
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1b.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1a.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
operator fun B?.plusAssign( c: ()->Int) {} //(1)
|
||||||
+120
@@ -0,0 +1,120 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !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) {
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||||
|
a?.b .<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign(c)<!>
|
||||||
|
|
||||||
|
val x = {
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||||
|
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign(c)<!>
|
||||||
|
}()
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>a?.b += { c }()<!>
|
||||||
|
|
||||||
|
a?.b.<!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.plusAssign; typeCall: operator extension 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.plusAssign; typeCall: operator extension function")!>a?.b += c<!>
|
||||||
|
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||||
|
}()
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension 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.plusAssign; typeCall: operator extension 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.plusAssign; typeCall: operator extension function")!>a?.b += c<!>
|
||||||
|
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||||
|
}()
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension 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
|
||||||
+131
@@ -0,0 +1,131 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNNECESSARY_SAFE_CALL -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-448
|
||||||
|
* MAIN LINK: overload-resolution, building-the-overload-candidate-set-ocs, operator-call -> paragraph 1 -> sentence 2
|
||||||
|
* SECONDARY LINKS: statements, assignments, operator-assignments -> paragraph 2 -> sentence 1
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 2
|
||||||
|
* statements, assignments, operator-assignments -> paragraph 2 -> sentence 3
|
||||||
|
* NUMBER: 1
|
||||||
|
* DESCRIPTION: Non-extension member callables
|
||||||
|
*/
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
// TESTCASE NUMBER: 1
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
fun case1(a: A, c: C) {
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||||
|
a?.b .<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign(c)<!>
|
||||||
|
|
||||||
|
val x = {
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>a?.b += c<!>
|
||||||
|
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>plusAssign(c)<!>
|
||||||
|
}()
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase1.B.plusAssign; typeCall: operator function")!>a?.b += { c }()<!>
|
||||||
|
|
||||||
|
a?.b.<!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.plusAssign; typeCall: operator extension 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.plusAssign; typeCall: operator extension function")!>a?.b += c<!>
|
||||||
|
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||||
|
}()
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase2.plusAssign; typeCall: operator extension 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.plusAssign; typeCall: operator extension 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.plusAssign; typeCall: operator extension function")!>a?.b += c<!>
|
||||||
|
a?.b.<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension function")!>plusAssign(c)<!>
|
||||||
|
}()
|
||||||
|
|
||||||
|
<!DEBUG_INFO_CALL("fqName: testPackCase3.plusAssign; typeCall: operator extension 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
|
||||||
+36
@@ -0,0 +1,36 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !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)
|
||||||
+47
@@ -0,0 +1,47 @@
|
|||||||
|
|
||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (POSITIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-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: 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
@@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
// FILE: LibCase1.kt
|
// FILE: LibCase1.kt
|
||||||
// TESTCASE NUMBER: 1, 2
|
// TESTCASE NUMBER: 1, 2
|
||||||
|
// TESTCASE NUMBER: 1, 2
|
||||||
package libPackage
|
package libPackage
|
||||||
|
|
||||||
import testPackCase1.Case
|
import testPackCase1.Case
|
||||||
|
|||||||
+90
@@ -146,5 +146,95 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"1": {
|
||||||
|
"neg": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 2,
|
||||||
|
"description": "call with lambda as argument",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 2,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.8.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.7.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "plusAssign as inline function",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pos": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 3,
|
||||||
|
"description": "Non-extension member callables",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "plusAssign as inline function",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+75
@@ -0,0 +1,75 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
import LibPackCase1.a.boo
|
||||||
|
import LibPackCase1.b.boo
|
||||||
|
|
||||||
|
fun case1 (b: B?){
|
||||||
|
b.<!AMBIGUITY!>boo<!>({ C() })
|
||||||
|
b.<!AMBIGUITY!>boo<!>({1})
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
// private fun boo(c: () -> C) {}
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->Int) { //(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 2
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import LibPackCase2.b.*
|
||||||
|
|
||||||
|
fun case2 (b: B?){
|
||||||
|
b.<!AMBIGUITY!>boo<!>({ C() })
|
||||||
|
b.<!AMBIGUITY!>boo<!>({1})
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
// private fun boo(c: () -> C) {}
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase2.kt
|
||||||
|
package LibPackCase2.b
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import testPackCase2.B
|
||||||
|
import testPackCase2.C
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase2.kt
|
||||||
|
package LibPackCase2.a
|
||||||
|
import testPackCase2.B
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->Int) { //(1)
|
||||||
|
}
|
||||||
+83
@@ -0,0 +1,83 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-448
|
||||||
|
* MAIN LINK: overload-resolution, choosing-the-most-specific-candidate-from-the-overload-candidate-set, algorithm-of-msc-selection -> paragraph 9 -> sentence 2
|
||||||
|
* NUMBER: 2
|
||||||
|
* DESCRIPTION: explicit receiver ambuguity
|
||||||
|
*/
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
* NOTE:
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
import LibPackCase1.a.boo
|
||||||
|
import LibPackCase1.b.boo
|
||||||
|
|
||||||
|
fun case1 (b: B?){
|
||||||
|
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({ C() })
|
||||||
|
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({1})
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
// private fun boo(c: () -> C) {}
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->Int) { //(1)
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILE: TestCase2.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 2
|
||||||
|
*/
|
||||||
|
package testPackCase2
|
||||||
|
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import LibPackCase2.b.*
|
||||||
|
|
||||||
|
fun case2 (b: B?){
|
||||||
|
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({ C() })
|
||||||
|
b.<!OVERLOAD_RESOLUTION_AMBIGUITY!>boo<!>({1})
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
// private fun boo(c: () -> C) {}
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase2.kt
|
||||||
|
package LibPackCase2.b
|
||||||
|
import LibPackCase2.a.*
|
||||||
|
import testPackCase2.B
|
||||||
|
import testPackCase2.C
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase2.kt
|
||||||
|
package LibPackCase2.a
|
||||||
|
import testPackCase2.B
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->Int) { //(1)
|
||||||
|
}
|
||||||
+80
@@ -644,6 +644,14 @@
|
|||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "main"
|
"linkType": "main"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "plusAssign as inline function",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"specVersion": "0.1-413",
|
"specVersion": "0.1-413",
|
||||||
"casesNumber": 2,
|
"casesNumber": 2,
|
||||||
@@ -844,6 +852,70 @@
|
|||||||
},
|
},
|
||||||
"neg": {
|
"neg": {
|
||||||
"1": [
|
"1": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 2,
|
||||||
|
"description": "call with lambda as argument",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 2,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.8.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.7.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "plusAssign as inline function",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt",
|
||||||
|
"unexpectedBehaviour": true,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"specVersion": "0.1-413",
|
"specVersion": "0.1-413",
|
||||||
"casesNumber": 3,
|
"casesNumber": 3,
|
||||||
@@ -935,6 +1007,14 @@
|
|||||||
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.1.kt",
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "main"
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 2,
|
||||||
|
"description": "explicit receiver ambuguity",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.2.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
|||||||
+39
@@ -0,0 +1,39 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
import LibPackCase1.a.boo
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
|
||||||
|
fun case1 (b: B?){
|
||||||
|
b.boo({ C() })
|
||||||
|
b.boo({1})
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private fun boo(c: () -> C) {}
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->Int) { //(1)
|
||||||
|
}
|
||||||
+49
@@ -0,0 +1,49 @@
|
|||||||
|
// !LANGUAGE: +NewInference
|
||||||
|
// !DIAGNOSTICS: -UNUSED_VARIABLE -ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE -UNUSED_VALUE -UNUSED_PARAMETER -UNUSED_EXPRESSION
|
||||||
|
// SKIP_TXT
|
||||||
|
|
||||||
|
/*
|
||||||
|
* KOTLIN DIAGNOSTICS SPEC TEST (NEGATIVE)
|
||||||
|
*
|
||||||
|
* SPEC VERSION: 0.1-448
|
||||||
|
* MAIN LINK: overload-resolution, determining-function-applicability-for-a-specific-call, description -> paragraph 2 -> sentence 2
|
||||||
|
* PRIMARY LINKS: overload-resolution, determining-function-applicability-for-a-specific-call, description -> paragraph 4 -> sentence 3
|
||||||
|
* SECONDARY LINKS: overload-resolution, determining-function-applicability-for-a-specific-call, description -> paragraph 5 -> sentence 1
|
||||||
|
* NUMBER: 1
|
||||||
|
* DESCRIPTION: explicit receiver with lambda
|
||||||
|
*/
|
||||||
|
|
||||||
|
// FILE: TestCase1.kt
|
||||||
|
/*
|
||||||
|
* TESTCASE NUMBER: 1
|
||||||
|
*/
|
||||||
|
package testPackCase1
|
||||||
|
|
||||||
|
import LibPackCase1.a.boo
|
||||||
|
import LibPackCase1.b.*
|
||||||
|
|
||||||
|
fun case1 (b: B?){
|
||||||
|
b.boo({ <!TYPE_MISMATCH, TYPE_MISMATCH, TYPE_MISMATCH!>C()<!> })
|
||||||
|
b.boo({1})
|
||||||
|
}
|
||||||
|
|
||||||
|
class B {
|
||||||
|
private fun boo(c: () -> C) {}
|
||||||
|
}
|
||||||
|
class C
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.b
|
||||||
|
import LibPackCase1.a.*
|
||||||
|
import testPackCase1.B
|
||||||
|
import testPackCase1.C
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->C) {} //(2)
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: LibCase1.kt
|
||||||
|
package LibPackCase1.a
|
||||||
|
import testPackCase1.B
|
||||||
|
|
||||||
|
fun B?.boo( c: ()->Int) { //(1)
|
||||||
|
}
|
||||||
+68
@@ -1,6 +1,74 @@
|
|||||||
{
|
{
|
||||||
|
"2": {
|
||||||
|
"neg": {
|
||||||
|
"2": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "without inline plusAssign functions",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.9.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "explicit receiver with lambda",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "main"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"4": {
|
||||||
|
"neg": {
|
||||||
|
"3": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "explicit receiver with lambda",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"5": {
|
||||||
|
"neg": {
|
||||||
|
"1": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "explicit receiver with lambda",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-413",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "the case of a call with a callable reference as a not parameter",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/resolving-callable-references/resolving-callable-references-not-used-as-arguments-to-a-call/p-1/neg/1.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "primary"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
"3": {
|
"3": {
|
||||||
"neg": {
|
"neg": {
|
||||||
|
"1": [
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-413",
|
||||||
|
"casesNumber": 1,
|
||||||
|
"description": "the case of a call with a callable reference as a not parameter",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/resolving-callable-references/resolving-callable-references-not-used-as-arguments-to-a-call/p-1/neg/1.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
|
}
|
||||||
|
],
|
||||||
"3": [
|
"3": [
|
||||||
{
|
{
|
||||||
"specVersion": "0.1-152",
|
"specVersion": "0.1-152",
|
||||||
|
|||||||
+2
@@ -7,6 +7,8 @@
|
|||||||
*
|
*
|
||||||
* SPEC VERSION: 0.1-413
|
* SPEC VERSION: 0.1-413
|
||||||
* MAIN LINK: overload-resolution, resolving-callable-references, resolving-callable-references-not-used-as-arguments-to-a-call -> paragraph 1 -> sentence 1
|
* MAIN LINK: overload-resolution, resolving-callable-references, resolving-callable-references-not-used-as-arguments-to-a-call -> paragraph 1 -> sentence 1
|
||||||
|
* PRIMARY LINKS: overload-resolution, determining-function-applicability-for-a-specific-call, description -> paragraph 5 -> sentence 1
|
||||||
|
* SECONDARY LINKS: overload-resolution, determining-function-applicability-for-a-specific-call, description -> paragraph 3 -> sentence 1
|
||||||
* NUMBER: 1
|
* NUMBER: 1
|
||||||
* DESCRIPTION: the case of a call with a callable reference as a not parameter
|
* DESCRIPTION: the case of a call with a callable reference as a not parameter
|
||||||
*/
|
*/
|
||||||
|
|||||||
+24
@@ -41,6 +41,14 @@
|
|||||||
"path": "compiler/tests-spec/testData/diagnostics/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
"path": "compiler/tests-spec/testData/diagnostics/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "main"
|
"linkType": "main"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 3,
|
||||||
|
"description": "Non-extension member callables",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"2": [
|
"2": [
|
||||||
@@ -51,6 +59,14 @@
|
|||||||
"path": "compiler/tests-spec/testData/diagnostics/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
"path": "compiler/tests-spec/testData/diagnostics/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "primary"
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 3,
|
||||||
|
"description": "Non-extension member callables",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"3": [
|
"3": [
|
||||||
@@ -61,6 +77,14 @@
|
|||||||
"path": "compiler/tests-spec/testData/diagnostics/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
"path": "compiler/tests-spec/testData/diagnostics/linked/statements/assignments/operator-assignments/p-2/pos/1.1.kt",
|
||||||
"unexpectedBehaviour": false,
|
"unexpectedBehaviour": false,
|
||||||
"linkType": "primary"
|
"linkType": "primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"specVersion": "0.1-448",
|
||||||
|
"casesNumber": 3,
|
||||||
|
"description": "Non-extension member callables",
|
||||||
|
"path": "compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt",
|
||||||
|
"unexpectedBehaviour": false,
|
||||||
|
"linkType": "secondary"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+154
-3
@@ -25,7 +25,7 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInDiagnostics() throws Exception {
|
public void testAllFilesPresentInDiagnostics() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "helpers", "linked/annotations", "linked/built-in-types-and-their-semantics", "linked/control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "linked/control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "linked/declarations/classifier-declaration/classifier-initialization", "linked/declarations/function-declaration", "linked/declarations/property-declaration/property-initialization", "linked/expressions/call-and-property-access-expressions", "linked/expressions/function-literals", "linked/inheritance", "linked/overload-resolution/c-level-partition", "linked/overload-resolution/determining-function-applicability-for-a-specific-call", "linked/overloadable-operators", "linked/statements/assignments/simple-assignments", "linked/type-inference/local-type-inference", "linked/type-inference/smart-casts/smart-cast-types", "linked/type-system/subtyping", "linked/type-system/type-kinds/type-parameters");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "helpers", "linked/annotations", "linked/built-in-types-and-their-semantics", "linked/control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "linked/control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "linked/declarations/classifier-declaration/classifier-initialization", "linked/declarations/function-declaration", "linked/declarations/property-declaration/property-initialization", "linked/expressions/call-and-property-access-expressions", "linked/expressions/function-literals", "linked/inheritance", "linked/overload-resolution/c-level-partition", "linked/overload-resolution/determining-function-applicability-for-a-specific-call/rationale", "linked/overloadable-operators", "linked/statements/assignments/simple-assignments", "linked/type-inference/local-type-inference", "linked/type-inference/smart-casts/smart-cast-types", "linked/type-system/subtyping", "linked/type-system/type-kinds/type-parameters");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked")
|
||||||
@@ -37,7 +37,7 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInLinked() throws Exception {
|
public void testAllFilesPresentInLinked() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "annotations", "built-in-types-and-their-semantics", "control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "declarations/classifier-declaration/classifier-initialization", "declarations/function-declaration", "declarations/property-declaration/property-initialization", "expressions/call-and-property-access-expressions", "expressions/function-literals", "inheritance", "overload-resolution/c-level-partition", "overload-resolution/determining-function-applicability-for-a-specific-call", "overloadable-operators", "statements/assignments/simple-assignments", "type-inference/local-type-inference", "type-inference/smart-casts/smart-cast-types", "type-system/subtyping", "type-system/type-kinds/type-parameters");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "annotations", "built-in-types-and-their-semantics", "control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "declarations/classifier-declaration/classifier-initialization", "declarations/function-declaration", "declarations/property-declaration/property-initialization", "expressions/call-and-property-access-expressions", "expressions/function-literals", "inheritance", "overload-resolution/c-level-partition", "overload-resolution/determining-function-applicability-for-a-specific-call/rationale", "overloadable-operators", "statements/assignments/simple-assignments", "type-inference/local-type-inference", "type-inference/smart-casts/smart-cast-types", "type-system/subtyping", "type-system/type-kinds/type-parameters");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/control--and-data-flow-analysis")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/control--and-data-flow-analysis")
|
||||||
@@ -3388,7 +3388,7 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInOverload_resolution() throws Exception {
|
public void testAllFilesPresentInOverload_resolution() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "c-level-partition", "determining-function-applicability-for-a-specific-call");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "c-level-partition", "determining-function-applicability-for-a-specific-call/rationale");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs")
|
||||||
@@ -4145,6 +4145,95 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class P_1 extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInP_1() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Neg extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.4.kt")
|
||||||
|
public void test2_4() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.5.kt")
|
||||||
|
public void test2_5() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.6.kt")
|
||||||
|
public void test2_6() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.7.kt")
|
||||||
|
public void test2_7() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.7.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.8.kt")
|
||||||
|
public void test2_8() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.8.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.9.kt")
|
||||||
|
public void test2_9() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.9.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Pos extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInPos() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-2")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-2")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
@@ -4625,6 +4714,11 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
|
|||||||
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.1.kt");
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.1.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInNeg() throws Exception {
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
@@ -4726,6 +4820,63 @@ public class DiagnosticsTestSpecGenerated extends AbstractDiagnosticsTestSpec {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Determining_function_applicability_for_a_specific_call extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInDetermining_function_applicability_for_a_specific_call() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "rationale");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Description extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInDescription() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class P_2 extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInP_2() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Neg extends AbstractDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/receivers")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/receivers")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
Generated
+154
-3
@@ -25,7 +25,7 @@ public class FirDiagnosticsTestSpecGenerated extends AbstractFirDiagnosticsTestS
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInDiagnostics() throws Exception {
|
public void testAllFilesPresentInDiagnostics() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "helpers", "linked/annotations", "linked/built-in-types-and-their-semantics", "linked/control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "linked/control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "linked/declarations/classifier-declaration/classifier-initialization", "linked/declarations/function-declaration", "linked/declarations/property-declaration/property-initialization", "linked/expressions/call-and-property-access-expressions", "linked/expressions/function-literals", "linked/inheritance", "linked/overload-resolution/c-level-partition", "linked/overload-resolution/determining-function-applicability-for-a-specific-call", "linked/overloadable-operators", "linked/statements/assignments/simple-assignments", "linked/type-inference/local-type-inference", "linked/type-inference/smart-casts/smart-cast-types", "linked/type-system/subtyping", "linked/type-system/type-kinds/type-parameters");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "helpers", "linked/annotations", "linked/built-in-types-and-their-semantics", "linked/control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "linked/control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "linked/declarations/classifier-declaration/classifier-initialization", "linked/declarations/function-declaration", "linked/declarations/property-declaration/property-initialization", "linked/expressions/call-and-property-access-expressions", "linked/expressions/function-literals", "linked/inheritance", "linked/overload-resolution/c-level-partition", "linked/overload-resolution/determining-function-applicability-for-a-specific-call/rationale", "linked/overloadable-operators", "linked/statements/assignments/simple-assignments", "linked/type-inference/local-type-inference", "linked/type-inference/smart-casts/smart-cast-types", "linked/type-system/subtyping", "linked/type-system/type-kinds/type-parameters");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked")
|
||||||
@@ -37,7 +37,7 @@ public class FirDiagnosticsTestSpecGenerated extends AbstractFirDiagnosticsTestS
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInLinked() throws Exception {
|
public void testAllFilesPresentInLinked() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "annotations", "built-in-types-and-their-semantics", "control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "declarations/classifier-declaration/classifier-initialization", "declarations/function-declaration", "declarations/property-declaration/property-initialization", "expressions/call-and-property-access-expressions", "expressions/function-literals", "inheritance", "overload-resolution/c-level-partition", "overload-resolution/determining-function-applicability-for-a-specific-call", "overloadable-operators", "statements/assignments/simple-assignments", "type-inference/local-type-inference", "type-inference/smart-casts/smart-cast-types", "type-system/subtyping", "type-system/type-kinds/type-parameters");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "annotations", "built-in-types-and-their-semantics", "control--and-data-flow-analysis.control-flow-graph.expressions-1.conditional-expressions", "control--and-data-flow-analysis/performing-analysis-on-the-control-flow-graph", "declarations/classifier-declaration/classifier-initialization", "declarations/function-declaration", "declarations/property-declaration/property-initialization", "expressions/call-and-property-access-expressions", "expressions/function-literals", "inheritance", "overload-resolution/c-level-partition", "overload-resolution/determining-function-applicability-for-a-specific-call/rationale", "overloadable-operators", "statements/assignments/simple-assignments", "type-inference/local-type-inference", "type-inference/smart-casts/smart-cast-types", "type-system/subtyping", "type-system/type-kinds/type-parameters");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/control--and-data-flow-analysis")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/control--and-data-flow-analysis")
|
||||||
@@ -3388,7 +3388,7 @@ public class FirDiagnosticsTestSpecGenerated extends AbstractFirDiagnosticsTestS
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInOverload_resolution() throws Exception {
|
public void testAllFilesPresentInOverload_resolution() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "c-level-partition", "determining-function-applicability-for-a-specific-call");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "c-level-partition", "determining-function-applicability-for-a-specific-call/rationale");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs")
|
||||||
@@ -4145,6 +4145,95 @@ public class FirDiagnosticsTestSpecGenerated extends AbstractFirDiagnosticsTestS
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class P_1 extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInP_1() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Neg extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.4.kt")
|
||||||
|
public void test2_4() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.5.kt")
|
||||||
|
public void test2_5() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.6.kt")
|
||||||
|
public void test2_6() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.7.kt")
|
||||||
|
public void test2_7() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.7.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.8.kt")
|
||||||
|
public void test2_8() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.8.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.9.kt")
|
||||||
|
public void test2_9() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.9.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Pos extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInPos() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-2")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-2")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
@@ -4625,6 +4714,11 @@ public class FirDiagnosticsTestSpecGenerated extends AbstractFirDiagnosticsTestS
|
|||||||
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.1.kt");
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.1.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInNeg() throws Exception {
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/choosing-the-most-specific-candidate-from-the-overload-candidate-set/algorithm-of-msc-selection/p-9/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
}
|
}
|
||||||
@@ -4726,6 +4820,63 @@ public class FirDiagnosticsTestSpecGenerated extends AbstractFirDiagnosticsTestS
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Determining_function_applicability_for_a_specific_call extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInDetermining_function_applicability_for_a_specific_call() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true, "rationale");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Description extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInDescription() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class P_2 extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInP_2() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Neg extends AbstractFirDiagnosticsTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/determining-function-applicability-for-a-specific-call/description/p-2/neg"), Pattern.compile("^(.+)\\.kt$"), Pattern.compile("^(.+)\\.fir\\.kts?$"), true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/receivers")
|
@TestMetadata("compiler/tests-spec/testData/diagnostics/linked/overload-resolution/receivers")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
Generated
+121
-2
@@ -25,7 +25,7 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInBox() throws Exception {
|
public void testAllFilesPresentInBox() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box"), Pattern.compile("^(.+)\\.kt$"), null, true, "helpers", "templates", "linked/exceptions", "linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver", "linked/overloadable-operators");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box"), Pattern.compile("^(.+)\\.kt$"), null, true, "helpers", "templates", "linked/exceptions", "linked/operator-call", "linked/overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver", "linked/overloadable-operators");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked")
|
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked")
|
||||||
@@ -37,7 +37,7 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testAllFilesPresentInLinked() throws Exception {
|
public void testAllFilesPresentInLinked() throws Exception {
|
||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked"), Pattern.compile("^(.+)\\.kt$"), null, true, "exceptions", "overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver", "overloadable-operators");
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked"), Pattern.compile("^(.+)\\.kt$"), null, true, "exceptions", "operator-call", "overload-resolution/building-the-overload-candidate-set-ocs/call-with-an-explicit-receiver", "overloadable-operators");
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/expressions")
|
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/expressions")
|
||||||
@@ -3373,6 +3373,125 @@ public class BlackBoxCodegenTestSpecGenerated extends AbstractBlackBoxCodegenTes
|
|||||||
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class P_1 extends AbstractBlackBoxCodegenTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInP_1() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Neg extends AbstractBlackBoxCodegenTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.3.kt")
|
||||||
|
public void test2_3() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.3.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.4.kt")
|
||||||
|
public void test2_4() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.4.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.5.kt")
|
||||||
|
public void test2_5() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.5.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.6.kt")
|
||||||
|
public void test2_6() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg/2.6.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInNeg() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/neg"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos")
|
||||||
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
public static class Pos extends AbstractBlackBoxCodegenTestSpec {
|
||||||
|
private void runTest(String testDataFilePath) throws Exception {
|
||||||
|
KotlinTestUtils.runTest(this::doTest, this, testDataFilePath);
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.1.kt")
|
||||||
|
public void test2_1() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.1.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.10.kt")
|
||||||
|
public void test2_10() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.10.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.2.kt")
|
||||||
|
public void test2_2() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.2.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.3.kt")
|
||||||
|
public void test2_3() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.3.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.4.kt")
|
||||||
|
public void test2_4() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.4.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.5.kt")
|
||||||
|
public void test2_5() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.5.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.6.kt")
|
||||||
|
public void test2_6() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.6.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.7.kt")
|
||||||
|
public void test2_7() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.7.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.8.kt")
|
||||||
|
public void test2_8() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.8.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("2.9.kt")
|
||||||
|
public void test2_9() throws Exception {
|
||||||
|
runTest("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos/2.9.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testAllFilesPresentInPos() throws Exception {
|
||||||
|
KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-1/pos"), Pattern.compile("^(.+)\\.kt$"), null, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-2")
|
@TestMetadata("compiler/tests-spec/testData/codegen/box/linked/overload-resolution/building-the-overload-candidate-set-ocs/operator-call/p-2")
|
||||||
@TestDataPath("$PROJECT_ROOT")
|
@TestDataPath("$PROJECT_ROOT")
|
||||||
@RunWith(JUnit3RunnerWithInners.class)
|
@RunWith(JUnit3RunnerWithInners.class)
|
||||||
|
|||||||
Reference in New Issue
Block a user