KT-11111:
- override by a final inline fun is a warning - override by a fun with reified type parameters is an error
This commit is contained in:
@@ -13,11 +13,11 @@ abstract class A {
|
||||
inline final fun good4() {}
|
||||
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open protected fun wrong1() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open protected fun wrong1()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open public fun wrong2() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open public fun wrong2()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open fun wrong3() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open fun wrong3()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline abstract protected fun wrong4()<!>
|
||||
|
||||
@@ -31,13 +31,13 @@ interface B {
|
||||
|
||||
inline private fun good1() {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline fun wrong1() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline fun wrong1()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open fun wrong2() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open fun wrong2()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open public fun wrong3() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open public fun wrong3()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open fun wrong4() {}<!>
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline open fun wrong4()<!> {}
|
||||
|
||||
<!DECLARATION_CANT_BE_INLINED!>inline fun wrong5()<!>
|
||||
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
// !DIAGNOSTICS: -NOTHING_TO_INLINE -UNUSED_PARAMETER
|
||||
|
||||
interface IBase {
|
||||
fun foo()
|
||||
fun bar()
|
||||
fun <T> qux(x: T)
|
||||
}
|
||||
|
||||
class CDerived : IBase {
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun foo()<!> {}
|
||||
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun <<!REIFIED_TYPE_PARAMETER_IN_OVERRIDE!>reified<!> T> qux(x: T)<!> {}
|
||||
|
||||
class CNested : IBase {
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun foo()<!> {}
|
||||
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun <<!REIFIED_TYPE_PARAMETER_IN_OVERRIDE!>reified<!> T> qux(x: T)<!> {}
|
||||
}
|
||||
|
||||
val anObject = object : IBase {
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun foo()<!> {}
|
||||
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun <<!REIFIED_TYPE_PARAMETER_IN_OVERRIDE!>reified<!> T> qux(x: T)<!> {}
|
||||
}
|
||||
|
||||
fun aMethod() {
|
||||
class CLocal : IBase {
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun foo()<!> {}
|
||||
<!DECLARATION_CANT_BE_INLINED!>override inline fun bar()<!> {}
|
||||
<!OVERRIDE_BY_INLINE!>override inline final fun <<!REIFIED_TYPE_PARAMETER_IN_OVERRIDE!>reified<!> T> qux(x: T)<!> {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
package
|
||||
|
||||
public final class CDerived : IBase {
|
||||
public constructor CDerived()
|
||||
public final val anObject: IBase
|
||||
public final fun aMethod(): kotlin.Unit
|
||||
public open inline override /*1*/ fun bar(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final inline override /*1*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final inline override /*1*/ fun </*0*/ reified T> qux(/*0*/ x: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
public final class CNested : IBase {
|
||||
public constructor CNested()
|
||||
public open inline override /*1*/ fun bar(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public final inline override /*1*/ fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public final inline override /*1*/ fun </*0*/ reified T> qux(/*0*/ x: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
}
|
||||
|
||||
public interface IBase {
|
||||
public abstract fun bar(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public abstract fun foo(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public abstract fun </*0*/ T> qux(/*0*/ x: T): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
@@ -26,7 +26,7 @@ open class Base {
|
||||
}
|
||||
|
||||
class Derived: Base() {
|
||||
inline final override fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>a: Int<!>) {
|
||||
<!OVERRIDE_BY_INLINE!>inline final override fun foo(<!NOT_YET_SUPPORTED_IN_INLINE!>a: Int<!>)<!> {
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user