[FIR] Add DECLARATION_CANT_BE_INLINED diagnostic

This commit is contained in:
Andrey Zinovyev
2021-07-20 18:53:54 +03:00
committed by teamcityserver
parent 4e06814bc5
commit d8b7b7b2dc
14 changed files with 79 additions and 89 deletions
@@ -1,47 +0,0 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
inline private fun a() {}
inline fun b() {}
inline public fun c() {}
abstract class A {
inline private fun good1() {}
inline public final fun good2() {}
inline protected final fun good3() {}
inline final fun good4() {}
inline open protected fun wrong1() {}
inline open public fun wrong2() {}
inline open fun wrong3() {}
inline abstract protected fun wrong4()
inline abstract public fun wrong5()
inline abstract fun wrong6()
}
interface B {
inline private fun good1() {}
inline fun wrong1() {}
inline open fun wrong2() {}
inline open public fun wrong3() {}
inline open fun wrong4() {}
inline fun wrong5()
inline public fun wrong6()
inline fun wrong7()
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NOTHING_TO_INLINE
inline private fun a() {}
@@ -34,12 +34,12 @@ class CDerived : IBase {
open class COpen : IBase {
override inline final fun foo() {}
override inline fun bar() {}
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
override inline final fun <reified T> qux(x: T) {}
open class COpenNested : IBase {
override inline final fun foo() {}
override inline fun bar() {}
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
override inline final fun <reified T> qux(x: T) {}
}
@@ -52,7 +52,7 @@ open class COpen : IBase {
fun aMethod() {
open class COpenLocal : IBase {
override inline final fun foo() {}
override inline fun bar() {}
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
override inline final fun <reified T> qux(x: T) {}
}
}
@@ -1,38 +0,0 @@
final class FinalProperty {
inline val valProp: Int
get() = 1
val valProp_1: Int
inline get() = 1
inline var varProp: Int
get() = 1
set(p: Int) {}
var varProp_2: Int
get() = 1
inline set(p: Int) {}
}
open class OpenProperty {
inline open val valProp: Int
get() = 1
open val valProp_1: Int
inline get() = 1
inline open var varProp: Int
get() = 1
set(p: Int) {}
open var varProp_2: Int
get() = 1
inline set(p: Int) {}
}
interface AbstractProperty {
inline abstract val valProp: Int
inline abstract var varProp: Int
}
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
final class FinalProperty {
inline val valProp: Int
get() = 1