[Native] Fix tailrec test.
tailrec is no longer allowed on open functions but this test is still using it.
This commit is contained in:
@@ -3165,8 +3165,7 @@ tasks.register("vararg_of_literals", KonanLocalTest) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
standaloneTest('tailrec') {
|
standaloneTest('tailrec') {
|
||||||
disabled = isAggressiveGC || // TODO: Investigate why too slow
|
disabled = isAggressiveGC // TODO: Investigate why too slow
|
||||||
isK2(project) // KT-56269
|
|
||||||
useGoldenData = true
|
useGoldenData = true
|
||||||
source = "lower/tailrec.kt"
|
source = "lower/tailrec.kt"
|
||||||
flags = ['-XXLanguage:-ProhibitTailrecOnVirtualMember', '-e', 'lower.tailrec.main']
|
flags = ['-XXLanguage:-ProhibitTailrecOnVirtualMember', '-e', 'lower.tailrec.main']
|
||||||
|
|||||||
@@ -18,12 +18,6 @@ fun main() {
|
|||||||
|
|
||||||
println(listOf(1, 2, 3).indexOf(3))
|
println(listOf(1, 2, 3).indexOf(3))
|
||||||
println(listOf(1, 2, 3).indexOf(4))
|
println(listOf(1, 2, 3).indexOf(4))
|
||||||
|
|
||||||
println(Integer(5).isLessOrEqualThan(7))
|
|
||||||
println(Integer(42).isLessOrEqualThan(1))
|
|
||||||
|
|
||||||
println(DefaultArgGetter().foo("non-default"))
|
|
||||||
println(EitherDelegatedOrNot(NotDelegated()).get42())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tailrec fun add(x: Int, y: Int): Int = if (x > 0) add(x - 1, y + 1) else y
|
tailrec fun add(x: Int, y: Int): Int = if (x > 0) add(x - 1, y + 1) else y
|
||||||
@@ -61,37 +55,3 @@ tailrec fun <T> List<T>.indexOf(x: T, startIndex: Int = 0): Int {
|
|||||||
return startIndex
|
return startIndex
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
open class Integer(val value: Int) {
|
|
||||||
open tailrec fun isLessOrEqualThan(value: Int): Boolean {
|
|
||||||
if (this.value == value) {
|
|
||||||
return true
|
|
||||||
} else if (value > 0) {
|
|
||||||
return this.isLessOrEqualThan(value - 1)
|
|
||||||
} else {
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
open class DefaultArgHolder {
|
|
||||||
open fun foo(s: String = "default") = s
|
|
||||||
}
|
|
||||||
|
|
||||||
class DefaultArgGetter : DefaultArgHolder() {
|
|
||||||
override tailrec fun foo(s: String): String {
|
|
||||||
return if (s == "default") s else foo()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
open class EitherDelegatedOrNot(val delegate: EitherDelegatedOrNot?) {
|
|
||||||
open tailrec fun get42(): Int = if (delegate != null) {
|
|
||||||
delegate.get42()
|
|
||||||
} else {
|
|
||||||
throw Error()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class NotDelegated : EitherDelegatedOrNot(null) {
|
|
||||||
override fun get42() = 42
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,3 @@
|
|||||||
ready!
|
ready!
|
||||||
2
|
2
|
||||||
-1
|
-1
|
||||||
true
|
|
||||||
false
|
|
||||||
default
|
|
||||||
42
|
|
||||||
|
|||||||
Reference in New Issue
Block a user