IC: Add inline class -> @JvmInline value class warning

This commit is contained in:
Ilmir Usmanov
2021-02-17 20:57:37 +01:00
parent b417786fd4
commit 62123d72e2
74 changed files with 102 additions and 65 deletions
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// SKIP_JAVAC
// FILE: uint.kt
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// SKIP_JAVAC
// FILE: uint.kt
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: -InlineClasses
// !LANGUAGE: -InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: -InlineClasses
// !LANGUAGE: -InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
<!UNSUPPORTED_FEATURE!>inline<!> class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val i: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val i: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class X(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class X(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
class Val {
operator fun getValue(thisRef: Any?, kProp: Any?) = 1
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
class Val {
operator fun getValue(thisRef: Any?, kProp: Any?) = 1
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class X(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class X(val x: Int)
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Name(val name: String)
inline class Password(val password: String)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
abstract class AbstractBaseClass
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
abstract class AbstractBaseClass
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
interface IFoo
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
interface IFoo
@@ -1,4 +1,4 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Test(val x: Int = 42)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class A0(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class A0(val x: Int)
@@ -0,0 +1,3 @@
// !LANGUAGE: +JvmInlineValueClasses
inline class IC(val i: Int)
@@ -0,0 +1,3 @@
// !LANGUAGE: +JvmInlineValueClasses
<!INLINE_CLASS_DEPRECATED!>inline<!> class IC(val i: Int)
@@ -0,0 +1,10 @@
package
public final inline class IC {
public constructor IC(/*0*/ i: kotlin.Int)
public final val i: kotlin.Int
public open override /*1*/ /*synthesized*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*synthesized*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*synthesized*/ fun toString(): kotlin.String
}
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class UInt(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Foo<T>(val x: T)
inline class FooNullable<T>(val x: T?)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Foo<T>(val x: <!INLINE_CLASS_HAS_INAPPLICABLE_PARAMETER_TYPE!>T<!>)
inline class FooNullable<T>(val x: <!INLINE_CLASS_HAS_INAPPLICABLE_PARAMETER_TYPE!>T?<!>)
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
import kotlin.reflect.KClass
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int)
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_VARIABLE
inline class Foo(val x: Int) {
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class ConstructorWithDefaultVisibility(val x: Int)
inline class PublicConstructor public constructor(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface A {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
interface A {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Test1(val x: Test1)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Test1(val x: <!INLINE_CLASS_CANNOT_BE_RECURSIVE!>Test1<!>)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC1(val x: Any) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC1(val x: Any) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val a: Any) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val a: Any) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -UNUSED_ANONYMOUS_PARAMETER
inline class Foo(val x: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_VARIABLE, -UNUSED_ANONYMOUS_PARAMETER
inline class Foo(val x: Int)
@@ -1,5 +1,5 @@
// FIR_IDENTICAL
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// FILE: kt1.kt
package kt
@@ -1,4 +1,4 @@
// !LANGUAGE: +MultiPlatformProjects, +InlineClasses
// !LANGUAGE: +MultiPlatformProjects, +InlineClasses, -JvmInlineValueClasses
// MODULE: m1-common
// FILE: common.kt
@@ -1,4 +1,4 @@
// !LANGUAGE: +MultiPlatformProjects, +InlineClasses
// !LANGUAGE: +MultiPlatformProjects, +InlineClasses, -JvmInlineValueClasses
// MODULE: m1-common
// FILE: common.kt
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -EXPERIMENTAL_FEATURE_WARNING
// !LANGUAGE: -JvmInlineValueClasses
// SKIP_TXT
inline class Value1(val inner: Int)
@@ -1,4 +1,5 @@
// !DIAGNOSTICS: -EXPERIMENTAL_FEATURE_WARNING
// !LANGUAGE: -JvmInlineValueClasses
// SKIP_TXT
<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>inline class Value1<!>(<!NO_EXPLICIT_VISIBILITY_IN_API_MODE!>val inner<!>: Int)
@@ -6,7 +6,7 @@ package kotlin.jvm
annotation class JvmInline
<!JVM_INLINE_WITHOUT_VALUE_CLASS!>@JvmInline<!>
inline class IC(val a: Any)
<!INLINE_CLASS_DEPRECATED!>inline<!> class IC(val a: Any)
@JvmInline
value class VC(val a: Any)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
external inline class <!WRONG_EXTERNAL_DECLARATION!>C(<!EXTERNAL_CLASS_CONSTRUCTOR_PROPERTY_PARAMETER!>val a: Int<!>)<!> {
fun foo()
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// FILE: uint.kt
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class IC(val i: Int)
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER, -PLATFORM_CLASS_MAPPED_TO_KOTLIN
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER, -PLATFORM_CLASS_MAPPED_TO_KOTLIN
// WITH_RUNTIME
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class Foo(val x: Int) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER
inline class Foo(val x: Int) {
@@ -1,4 +1,4 @@
// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses
// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
@kotlin.jvm.JvmField
@@ -1,4 +1,4 @@
// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses
// !LANGUAGE: +NestedClassesInAnnotations +InlineClasses -JvmInlineValueClasses
// !DIAGNOSTICS: -UNUSED_PARAMETER -UNUSED_VARIABLE
<!WRONG_ANNOTATION_TARGET!>@kotlin.jvm.JvmField<!>
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Z(val x: Int)
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER
// !LANGUAGE: +InlineClasses
// !LANGUAGE: +InlineClasses, -JvmInlineValueClasses
inline class Z(val x: Int)
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE
// !LANGUAGE: +InlineClasses -AllowResultInReturnType
// !LANGUAGE: +InlineClasses -AllowResultInReturnType, -JvmInlineValueClasses
typealias ResultAlias<T> = Result<T>
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE
// !LANGUAGE: +InlineClasses -AllowResultInReturnType
// !LANGUAGE: +InlineClasses -AllowResultInReturnType, -JvmInlineValueClasses
typealias ResultAlias<T> = Result<T>
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE
// !LANGUAGE: +InlineClasses +AllowResultInReturnType
// !LANGUAGE: +InlineClasses +AllowResultInReturnType, -JvmInlineValueClasses
typealias ResultAlias<T> = Result<T>
@@ -1,5 +1,5 @@
// !DIAGNOSTICS: -UNUSED_PARAMETER, -UNUSED_EXPRESSION, -UNUSED_VARIABLE
// !LANGUAGE: +InlineClasses +AllowResultInReturnType
// !LANGUAGE: +InlineClasses +AllowResultInReturnType, -JvmInlineValueClasses
typealias ResultAlias<T> = Result<T>