Introduce FIR_IDENTICAL for FIR vs old frontend tests #KT-36879 Fixed

This commit is contained in:
Mikhail Glukhikh
2020-03-04 17:54:33 +03:00
parent 186e0b0cba
commit 8884cbe415
2268 changed files with 1175 additions and 19754 deletions
@@ -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
View File
@@ -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!!
@@ -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,3 +1,4 @@
// FIR_IDENTICAL
fun inlineCallExplicitError(): String {
inlineFun lamba@ {
if (true) {
@@ -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)
@@ -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 {
@@ -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
@@ -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,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')
}