backend: enable and add tests for autoboxing
This commit is contained in:
committed by
SvyatoslavScherbina
parent
61c28db886
commit
f2b5b98dba
@@ -0,0 +1,9 @@
|
||||
fun main(args: Array<String>) {
|
||||
val FALSE: Boolean? = false
|
||||
|
||||
if (FALSE != null) {
|
||||
do {
|
||||
println("Ok")
|
||||
} while (FALSE)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
|
||||
class Foo(val value: Int?) {
|
||||
fun foo() {
|
||||
printInt(if (value != null) value else 42)
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
Foo(17).foo()
|
||||
Foo(null).foo()
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
fun foo(x: Number) {
|
||||
println(x.toByte())
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(18)
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
fun printBoolean(x: Boolean) = println(x)
|
||||
|
||||
fun foo(arg: Any) {
|
||||
if (arg is Int)
|
||||
printInt(arg)
|
||||
else if (arg is Boolean)
|
||||
printBoolean(arg)
|
||||
else
|
||||
println("other")
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(1)
|
||||
foo(true)
|
||||
foo("Hello")
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
|
||||
fun foo(arg: Int?) {
|
||||
if (arg != null)
|
||||
printInt(arg)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(42)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
|
||||
fun foo(arg: Any?) {
|
||||
if (arg is Int? && arg != null)
|
||||
printInt(arg)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(16)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
|
||||
fun foo(arg: Int?) {
|
||||
printInt(arg ?: 16)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(null)
|
||||
foo(42)
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
|
||||
fun foo(arg: Any) {
|
||||
printInt(arg as? Int ?: 16)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(42)
|
||||
foo("Hello")
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
fun printInt(x: Int) = println(x)
|
||||
|
||||
fun foo(arg: Any) {
|
||||
val argAsInt = try {
|
||||
arg as Int
|
||||
} catch (e: ClassCastException) {
|
||||
0
|
||||
}
|
||||
printInt(argAsInt)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(1)
|
||||
foo("Hello")
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
fun foo(vararg args: Any?) {
|
||||
for (arg in args) {
|
||||
println(arg.toString())
|
||||
}
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
foo(1, null, true, "Hello")
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
fun foo(vararg args: Any?) {
|
||||
for (arg in args) {
|
||||
println(arg.toString())
|
||||
}
|
||||
}
|
||||
|
||||
fun bar(vararg args: Any?) {
|
||||
foo(1, *args, 2, *args, 3)
|
||||
}
|
||||
|
||||
fun main(args: Array<String>) {
|
||||
bar(null, true, "Hello")
|
||||
}
|
||||
Reference in New Issue
Block a user