Introduce FIR_IDENTICAL for FIR vs old frontend tests #KT-36879 Fixed
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -NON_LOCAL_RETURN_NOT_ALLOWED
|
||||
|
||||
inline fun <R> inlineFun(p: () -> R) {
|
||||
val s = object {
|
||||
|
||||
val z = p()
|
||||
|
||||
fun a() {
|
||||
p()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE -NON_LOCAL_RETURN_NOT_ALLOWED
|
||||
|
||||
inline fun <R> inlineFun(p: () -> R) {
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
|
||||
|
||||
inline fun default(s : Int = 10) {
|
||||
|
||||
}
|
||||
|
||||
inline fun default2(p: Int, s : String = "OK") {
|
||||
|
||||
}
|
||||
|
||||
open class Base {
|
||||
inline final fun foo(a: Int = 1) {}
|
||||
|
||||
inline final fun foo2(a: Int = 1, s: String = "OK") {}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
|
||||
|
||||
inline fun default(s : Int = 10) {
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
inline fun <T1, T2, reified T3, T4> foo(): T3 = null!!
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
// FIR_IDENTICAL
|
||||
inline fun <T1, T2, reified T3, T4> foo(): T3 = null!!
|
||||
|
||||
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
fun inlineCallExplicitError(): String {
|
||||
inlineFun lamba@ {
|
||||
if (true) {
|
||||
return@lamba 2
|
||||
}
|
||||
1
|
||||
}
|
||||
|
||||
return "x"
|
||||
}
|
||||
|
||||
fun inlineCall(): String {
|
||||
inlineFun lamba@ {
|
||||
if (true) {
|
||||
return@lamba 2
|
||||
}
|
||||
1
|
||||
}
|
||||
|
||||
return "x"
|
||||
}
|
||||
|
||||
inline fun inlineFun(s: () -> Int) {
|
||||
s()
|
||||
}
|
||||
|
||||
|
||||
fun noInlineCall(): String {
|
||||
noInline lambda@ {
|
||||
if (true) {
|
||||
return@lambda 2
|
||||
}
|
||||
1
|
||||
}
|
||||
return "x"
|
||||
}
|
||||
|
||||
|
||||
fun noInline(s: () -> Int) {
|
||||
s()
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
fun inlineCallExplicitError(): String {
|
||||
inlineFun lamba@ {
|
||||
if (true) {
|
||||
|
||||
-8
@@ -1,8 +0,0 @@
|
||||
|
||||
inline fun <R> onlyLocal(crossinline p: () -> R) {
|
||||
inlineAll(p)
|
||||
}
|
||||
|
||||
inline fun <R> inlineAll(p: () -> R) {
|
||||
p()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
inline fun <R> onlyLocal(crossinline p: () -> R) {
|
||||
inlineAll(p)
|
||||
|
||||
-16
@@ -1,16 +0,0 @@
|
||||
|
||||
inline fun <R> inlineFunWithAnnotation(crossinline p: () -> R) {
|
||||
inlineFun {
|
||||
p()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <R> inlineFun2(p: () -> R) {
|
||||
inlineFun {
|
||||
p()
|
||||
}
|
||||
}
|
||||
|
||||
inline fun <R> inlineFun(p: () -> R) {
|
||||
p()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
|
||||
inline fun <R> inlineFunWithAnnotation(crossinline p: () -> R) {
|
||||
inlineFun {
|
||||
|
||||
-41
@@ -1,41 +0,0 @@
|
||||
import Kind.EXT_RETURN
|
||||
import Kind.GLOBAL_RETURN
|
||||
|
||||
enum class Kind {
|
||||
LOCAL,
|
||||
EXT_RETURN,
|
||||
GLOBAL_RETURN
|
||||
}
|
||||
|
||||
class Internal(val value: String)
|
||||
|
||||
class External(val value: String)
|
||||
|
||||
class Global(val value: String)
|
||||
|
||||
fun test1(intKind: Kind, extKind: Kind): Global {
|
||||
|
||||
var externalResult = doCall ext@ {
|
||||
|
||||
val internalResult = doCall int@ {
|
||||
if (intKind == Kind.LOCAL) {
|
||||
return@test1 Global("internal to global")
|
||||
} else if (intKind == EXT_RETURN) {
|
||||
return@ext External("internal to external")
|
||||
}
|
||||
return@int Internal("internal to local")
|
||||
}
|
||||
|
||||
if (extKind == GLOBAL_RETURN || extKind == EXT_RETURN) {
|
||||
return Global("external to global")
|
||||
}
|
||||
|
||||
External(internalResult.value + " to local");
|
||||
}
|
||||
|
||||
return Global(externalResult.value + " to exit")
|
||||
}
|
||||
|
||||
public inline fun <R> doCall(block: ()-> R) : R {
|
||||
return block()
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
import Kind.EXT_RETURN
|
||||
import Kind.GLOBAL_RETURN
|
||||
|
||||
|
||||
-36
@@ -1,36 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
|
||||
internal class Z2 {
|
||||
private val privateProperty = 11;
|
||||
|
||||
public val publicProperty:Int = 12
|
||||
|
||||
private fun privateFun() {}
|
||||
|
||||
public fun publicFun() {}
|
||||
|
||||
internal inner class ZInner {
|
||||
public inline fun test() {
|
||||
privateProperty
|
||||
privateFun()
|
||||
publicFun()
|
||||
publicProperty
|
||||
|
||||
Z2().publicProperty
|
||||
Z2().publicFun()
|
||||
Z2().privateProperty
|
||||
Z2().privateFun()
|
||||
}
|
||||
|
||||
internal inline fun testInternal() {
|
||||
privateProperty
|
||||
privateFun()
|
||||
publicFun()
|
||||
publicProperty
|
||||
|
||||
Z2().publicProperty
|
||||
Z2().publicFun()
|
||||
Z2().privateProperty
|
||||
Z2().privateFun()
|
||||
}
|
||||
}
|
||||
}
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
|
||||
internal class Z2 {
|
||||
private val privateProperty = 11;
|
||||
|
||||
@@ -1,15 +0,0 @@
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -NOTHING_TO_INLINE
|
||||
|
||||
public class Z {
|
||||
private val privateProperty = 11;
|
||||
|
||||
public fun privateFun() {
|
||||
|
||||
class Local {
|
||||
public inline fun a() {
|
||||
privateProperty
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -NOTHING_TO_INLINE
|
||||
|
||||
public class Z {
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
public inline fun test(predicate: (Char) -> Boolean) {
|
||||
!predicate('c')
|
||||
}
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_IDENTICAL
|
||||
public inline fun test(predicate: (Char) -> Boolean) {
|
||||
!predicate('c')
|
||||
}
|
||||
Reference in New Issue
Block a user