tests: Update external tests (1.1.2-dev-393)
This commit is contained in:
+77
@@ -0,0 +1,77 @@
|
||||
open class C(val grandParentProp: String)
|
||||
fun box(): String {
|
||||
var sideEffects: String = ""
|
||||
var parentSideEffects: String = ""
|
||||
val justForUsageInClosure = 7
|
||||
val justForUsageInParentClosure = "parentCaptured"
|
||||
|
||||
abstract class B : C {
|
||||
val parentProp: String
|
||||
init {
|
||||
sideEffects += "minus-one#"
|
||||
parentSideEffects += "1"
|
||||
}
|
||||
protected constructor(arg: Int): super(justForUsageInParentClosure) {
|
||||
parentProp = (arg).toString()
|
||||
sideEffects += "0.5#"
|
||||
parentSideEffects += "#" + justForUsageInParentClosure
|
||||
}
|
||||
protected constructor(arg1: Int, arg2: Int): super(justForUsageInParentClosure) {
|
||||
parentProp = (arg1 + arg2).toString()
|
||||
sideEffects += "0.7#"
|
||||
parentSideEffects += "#3"
|
||||
}
|
||||
init {
|
||||
sideEffects += "zero#"
|
||||
parentSideEffects += "#4"
|
||||
}
|
||||
}
|
||||
|
||||
class A : B {
|
||||
var prop: String = ""
|
||||
init {
|
||||
sideEffects += prop + "first"
|
||||
}
|
||||
|
||||
constructor(x1: Int, x2: Int): super(x1, x2) {
|
||||
prop = x1.toString()
|
||||
sideEffects += "#third"
|
||||
}
|
||||
|
||||
init {
|
||||
sideEffects += prop + "#second"
|
||||
}
|
||||
|
||||
constructor(x: Int): super(justForUsageInClosure + x) {
|
||||
prop += "${x}#int"
|
||||
sideEffects += "#fourth"
|
||||
}
|
||||
|
||||
constructor(): this(justForUsageInClosure) {
|
||||
sideEffects += "#fifth"
|
||||
}
|
||||
|
||||
override fun toString() = "$prop#$parentProp#$grandParentProp"
|
||||
}
|
||||
|
||||
val a1 = A(5, 10).toString()
|
||||
if (a1 != "5#15#parentCaptured") return "fail1: $a1"
|
||||
if (sideEffects != "minus-one#zero#0.7#first#second#third") return "fail2: ${sideEffects}"
|
||||
if (parentSideEffects != "1#4#3") return "fail3: ${parentSideEffects}"
|
||||
|
||||
sideEffects = ""
|
||||
parentSideEffects = ""
|
||||
val a2 = A(123).toString()
|
||||
if (a2 != "123#int#130#parentCaptured") return "fail1: $a2"
|
||||
if (sideEffects != "minus-one#zero#0.5#first#second#fourth") return "fail4: ${sideEffects}"
|
||||
if (parentSideEffects != "1#4#parentCaptured") return "fail5: ${parentSideEffects}"
|
||||
|
||||
sideEffects = ""
|
||||
parentSideEffects = ""
|
||||
val a3 = A().toString()
|
||||
if (a3 != "7#int#14#parentCaptured") return "fail6: $a3"
|
||||
if (sideEffects != "minus-one#zero#0.5#first#second#fourth#fifth") return "fail7: ${sideEffects}"
|
||||
if (parentSideEffects != "1#4#parentCaptured") return "fail8: ${parentSideEffects}"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user