Improve inline diagnostics, report "nothing to inline" on the modifier

This commit is contained in:
Alexander Udalov
2015-09-14 13:02:12 +03:00
parent a946f787bc
commit b4470de713
9 changed files with 27 additions and 22 deletions
@@ -2,6 +2,6 @@ inline fun <R> onlyLocal(p: () -> R) {
inlineAll(<!USAGE_IS_NOT_INLINABLE!>p<!>)
}
<!NOTHING_TO_INLINE!>inline fun <R> inlineAll(noinline p: () -> R)<!> {
<!NOTHING_TO_INLINE!>inline<!> fun <R> inlineAll(noinline p: () -> R) {
p()
}
@@ -6,6 +6,6 @@ fun box() : String {
return "OK"
}
<!NOTHING_TO_INLINE!>inline fun <T> test(p: T)<!> {
<!NOTHING_TO_INLINE!>inline<!> fun <T> test(p: T) {
p.toString()
}
@@ -6,6 +6,6 @@ fun box() : String {
return "OK"
}
<!NOTHING_TO_INLINE!>inline fun test(p: Any)<!> {
<!NOTHING_TO_INLINE!>inline<!> fun test(p: Any) {
p.toString()
}
@@ -1,6 +1,6 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION -UNUSED_PARAMETER -UNUSED_VARIABLE -NULLABLE_INLINE_PARAMETER -CONFLICTING_JVM_DECLARATIONS
<!NOTHING_TO_INLINE!>inline fun test()<!> {
<!NOTHING_TO_INLINE!>inline<!> fun test() {
}
@@ -8,22 +8,22 @@ inline fun test2(s : (Int) -> Int) {
}
<!NOTHING_TO_INLINE!>inline fun test3(noinline s : (Int) -> Int)<!> {
<!NOTHING_TO_INLINE!>inline<!> fun test3(noinline s : (Int) -> Int) {
}
<!NOTHING_TO_INLINE!>inline fun test4(noinline s : Int.() -> Int)<!> {
<!NOTHING_TO_INLINE!>inline<!> fun test4(noinline s : Int.() -> Int) {
}
<!NOTHING_TO_INLINE!>inline fun Function1<Int, Int>?.test5()<!> {
<!NOTHING_TO_INLINE!>inline<!> fun Function1<Int, Int>?.test5() {
}
<!NOTHING_TO_INLINE!>inline fun Function1<Int, Int>?.test6()<!> {
<!NOTHING_TO_INLINE!>inline<!> fun Function1<Int, Int>?.test6() {
}
<!NOTHING_TO_INLINE!>inline fun test2(s : ((Int) -> Int)?)<!> {
<!NOTHING_TO_INLINE!>inline<!> fun test2(s : ((Int) -> Int)?) {
}
@@ -12,10 +12,10 @@ public inline fun <T> submitNoInline(noinline action: Function1<Int, Int>?, s: (
action?.invoke(10)
}
<!NOTHING_TO_INLINE!>public inline fun <T> <!NULLABLE_INLINE_PARAMETER!>Function1<Int, Int>?<!>.submit()<!> {
public <!NOTHING_TO_INLINE!>inline<!> fun <T> <!NULLABLE_INLINE_PARAMETER!>Function1<Int, Int>?<!>.submit() {
}
<!NOTHING_TO_INLINE!>public inline fun <T> submit(<!NULLABLE_INLINE_PARAMETER!>action: Function1<Int, Int>?<!>)<!> {
public <!NOTHING_TO_INLINE!>inline<!> fun <T> submit(<!NULLABLE_INLINE_PARAMETER!>action: Function1<Int, Int>?<!>) {
}
@@ -1,11 +1,11 @@
import kotlin.jvm.*
abstract class C {
<!EXTERNAL_DECLARATION_CANNOT_BE_INLINED, NOTHING_TO_INLINE!>inline external fun foo()<!>
<!EXTERNAL_DECLARATION_CANNOT_BE_INLINED!><!NOTHING_TO_INLINE!>inline<!> external fun foo()<!>
}
fun test() {
abstract class Local {
<!EXTERNAL_DECLARATION_CANNOT_BE_INLINED, NOTHING_TO_INLINE!>inline external fun foo()<!>
<!EXTERNAL_DECLARATION_CANNOT_BE_INLINED!><!NOTHING_TO_INLINE!>inline<!> external fun foo()<!>
}
}