mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-09 00:21:47 +00:00
Support basic reification in IR
This commit is contained in:
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
inline fun <R, T> foo(x : R?, block : (R?) -> T) : T {
|
||||
return block(x)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
|
||||
inline fun <R, T> foo(x : R?, y : R?, block : (R?) -> T) : T {
|
||||
if (x == null) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
fun runNoInline(f: () -> Unit) = f()
|
||||
|
||||
fun test() {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
fun test(list: List<String>) {
|
||||
val result = mutableListOf<String>()
|
||||
use1 { list.forEach { result.add(it) } }
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun test(s: ()->Int){
|
||||
var i = 0;
|
||||
i = s()
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// For mutable collections and related types (e.g., MutableList, MutableListIterator)
|
||||
// 'as?' should be generated as a single 'safeAs...' intrinsic call
|
||||
// without instanceof or 'is...'.
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun test(s: ()->Int){
|
||||
var i = 0;
|
||||
try {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun test(s: ()->Int){
|
||||
var i = 0;
|
||||
try {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: test.kt
|
||||
|
||||
fun test1() {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
// FILE: test.kt
|
||||
|
||||
fun test1(): String {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun <reified T> Any?.isa() = this is T
|
||||
|
||||
// 1 INSTANCEOF
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun <reified T> isNullable() = null is T
|
||||
|
||||
// 1 INSTANCEOF
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
val nonConstFlag = true
|
||||
|
||||
inline fun <T, R> calc(value : T, fn: (T) -> R) : R = fn(value)
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun <reified T> Any?.foo() = this as T
|
||||
|
||||
inline fun <reified Y> Any?.foo2() = foo<Y?>()
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun <reified T> Any?.foo() = this as T?
|
||||
|
||||
inline fun <reified Y> Any?.foo2() = foo<Y?>()
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun <reified T> Any?.foo() = this is T
|
||||
|
||||
inline fun <reified Y> Any?.foo2() = foo<Y?>()
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
// IGNORE_BACKEND: JVM_IR
|
||||
inline fun <reified T> Any?.foo() = this is T?
|
||||
|
||||
inline fun <reified Y> Any?.foo2() = foo<Y?>()
|
||||
|
||||
Reference in New Issue
Block a user