Fix for KT-9364: M13 Wrong compiler error for "unable to inline function"

#KT-9364 Fixed
This commit is contained in:
Michael Bogdanov
2015-10-22 15:28:35 +03:00
parent a7b3c70d21
commit d5126213d3
10 changed files with 93 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION
inline public fun reg(converter: (Any) -> Any, flag: Boolean) {
flag
converter("")
}
public inline fun register(converter: (Any) -> Any) {
<!USAGE_IS_NOT_INLINABLE!>converter<!> is (Any) -> Any
reg(converter, <!USAGE_IS_NOT_INLINABLE!>converter<!> is (Any) -> Any)
}
@@ -0,0 +1,4 @@
package
public inline fun reg(/*0*/ converter: (kotlin.Any) -> kotlin.Any, /*1*/ flag: kotlin.Boolean): kotlin.Unit
public inline fun register(/*0*/ converter: (kotlin.Any) -> kotlin.Any): kotlin.Unit
@@ -0,0 +1,9 @@
// !DIAGNOSTICS: -UNCHECKED_CAST -USELESS_CAST
inline public fun reg(convertFunc: (Any) -> Any) {
convertFunc("")
}
public inline fun <reified T : Any, reified R : Any> register(converter: (T) -> R) {
<!USAGE_IS_NOT_INLINABLE!>converter<!> as (Any) -> Any
reg(<!USAGE_IS_NOT_INLINABLE!>converter<!> as (Any) -> Any)
}
@@ -0,0 +1,4 @@
package
public inline fun reg(/*0*/ convertFunc: (kotlin.Any) -> kotlin.Any): kotlin.Unit
public inline fun </*0*/ reified T : kotlin.Any, /*1*/ reified R : kotlin.Any> register(/*0*/ converter: (T) -> R): kotlin.Unit
@@ -0,0 +1,10 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION
inline public fun reg(converter: (Any) -> Any, str: String) {
str
converter("")
}
public inline fun register(converter: (Any) -> Any) {
"123$<!USAGE_IS_NOT_INLINABLE!>converter<!>"
reg(converter, "123$<!USAGE_IS_NOT_INLINABLE!>converter<!>")
}
@@ -0,0 +1,4 @@
package
public inline fun reg(/*0*/ converter: (kotlin.Any) -> kotlin.Any, /*1*/ str: kotlin.String): kotlin.Unit
public inline fun register(/*0*/ converter: (kotlin.Any) -> kotlin.Any): kotlin.Unit
+11
View File
@@ -0,0 +1,11 @@
// !DIAGNOSTICS: -UNUSED_EXPRESSION
inline public fun reg(converter: (Any) -> Any) {
converter("")
}
public inline fun register(converter: (Any) -> Any) {
reg(when(<!USAGE_IS_NOT_INLINABLE!>converter<!>) {
is (Any) -> Any -> <!USAGE_IS_NOT_INLINABLE!>converter<!>
else -> <!USAGE_IS_NOT_INLINABLE!>converter<!>
})
}
+4
View File
@@ -0,0 +1,4 @@
package
public inline fun reg(/*0*/ converter: (kotlin.Any) -> kotlin.Any): kotlin.Unit
public inline fun register(/*0*/ converter: (kotlin.Any) -> kotlin.Any): kotlin.Unit