Support basic reification in IR

This commit is contained in:
Mikhael Bogdanov
2019-04-04 15:47:57 +02:00
parent 02cb1d7dcc
commit 4c59d161d4
54 changed files with 35 additions and 66 deletions

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun <R, T> foo(x : R?, block : (R?) -> T) : T {
return block(x)

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun <R, T> foo(x : R?, y : R?, block : (R?) -> T) : T {
if (x == null) {

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
fun runNoInline(f: () -> Unit) = f()
fun test() {

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
fun test(list: List<String>) {
val result = mutableListOf<String>()
use1 { list.forEach { result.add(it) } }

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun test(s: ()->Int){
var i = 0;
i = s()

View File

@@ -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...'.

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun test(s: ()->Int){
var i = 0;
try {

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun test(s: ()->Int){
var i = 0;
try {

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// FILE: test.kt
fun test1() {

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// FILE: test.kt
fun test1(): String {

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun <reified T> Any?.isa() = this is T
// 1 INSTANCEOF

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
inline fun <reified T> isNullable() = null is T
// 1 INSTANCEOF

View File

@@ -1,4 +1,3 @@
// IGNORE_BACKEND: JVM_IR
val nonConstFlag = true
inline fun <T, R> calc(value : T, fn: (T) -> R) : R = fn(value)

View File

@@ -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?>()

View File

@@ -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?>()

View File

@@ -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?>()

View File

@@ -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?>()