Make lateinit diagnostics more clear
This commit is contained in:
@@ -1,12 +0,0 @@
|
||||
class A {
|
||||
public lateinit val str: String
|
||||
|
||||
init {
|
||||
str = "OK"
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
return a.str
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
class A {
|
||||
private lateinit val str: String
|
||||
|
||||
init {
|
||||
str = "OK"
|
||||
}
|
||||
|
||||
public fun getMyStr(): String {
|
||||
return str
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val a = A()
|
||||
return a.getMyStr()
|
||||
}
|
||||
+17
-17
@@ -2,13 +2,13 @@ class CustomDelegate {
|
||||
public fun get(thisRef: Any?, prop: PropertyMetadata): String = prop.name
|
||||
}
|
||||
|
||||
public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val p2: String) {
|
||||
public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER_PRIMARY_CONSTRUCTOR_PARAMETER!>lateinit<!> var p2: String) {
|
||||
|
||||
public lateinit val a: String
|
||||
lateinit val b: T
|
||||
public <!INAPPLICABLE_LATEINIT_MODIFIER_IMMUTABLE!>lateinit<!> val a: String
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_IMMUTABLE!>lateinit<!> val b: T
|
||||
private lateinit var c: CharSequence
|
||||
|
||||
lateinit val d: String
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_IMMUTABLE!>lateinit<!> val d: String
|
||||
get
|
||||
|
||||
public lateinit var e: String
|
||||
@@ -16,42 +16,42 @@ public abstract class A<T: Any, V: String?>(<!INAPPLICABLE_LATEINIT_MODIFIER!>la
|
||||
private set
|
||||
|
||||
fun a() {
|
||||
<!WRONG_MODIFIER_TARGET!>lateinit<!> val <!UNUSED_VARIABLE!>a<!>: String
|
||||
<!WRONG_MODIFIER_TARGET!>lateinit<!> var <!UNUSED_VARIABLE!>a<!>: String
|
||||
}
|
||||
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e1: V
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e2: String?
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e3: Int
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e4: Int?
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_NULLABLE!>lateinit<!> var e1: V
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_NULLABLE!>lateinit<!> var e2: String?
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e3: Int
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_NULLABLE!>lateinit<!> var e4: Int?
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e5 = "A"
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e6 = 3
|
||||
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e7 by CustomDelegate()
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_IMMUTABLE!>lateinit<!> val e7 by CustomDelegate()
|
||||
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e8: String
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_IMMUTABLE!>lateinit<!> val e8: String
|
||||
get() = "A"
|
||||
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e9: String
|
||||
set(v) { field = v }
|
||||
|
||||
abstract <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e10: String
|
||||
abstract <!INAPPLICABLE_LATEINIT_MODIFIER_ABSTRACT_PROPERTY!>lateinit<!> var e10: String
|
||||
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val String.e11: String
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e11: String
|
||||
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e12: String
|
||||
}
|
||||
|
||||
<!WRONG_MODIFIER_TARGET!>lateinit<!> val topLevel: String
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_IMMUTABLE, WRONG_MODIFIER_TARGET!>lateinit<!> val topLevel: String
|
||||
<!WRONG_MODIFIER_TARGET!>lateinit<!> var topLevelMutable: String
|
||||
|
||||
public interface Intf {
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val str: String
|
||||
<!INAPPLICABLE_LATEINIT_MODIFIER_ABSTRACT_PROPERTY!>lateinit<!> var str: String
|
||||
}
|
||||
|
||||
public abstract class AbstractClass {
|
||||
abstract val str: String
|
||||
abstract var str: String
|
||||
}
|
||||
|
||||
public class AbstractClassImpl : AbstractClass() {
|
||||
override lateinit val str: String
|
||||
override lateinit var str: String
|
||||
}
|
||||
+10
-10
@@ -10,18 +10,18 @@ public abstract class A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?> {
|
||||
private final lateinit var c: kotlin.CharSequence
|
||||
public final lateinit val d: kotlin.String
|
||||
public final lateinit var e: kotlin.String
|
||||
public final lateinit val e1: V
|
||||
public abstract lateinit val e10: kotlin.String
|
||||
public final lateinit val e2: kotlin.String?
|
||||
public final lateinit val e3: kotlin.Int
|
||||
public final lateinit val e4: kotlin.Int?
|
||||
public final lateinit var e1: V
|
||||
public abstract lateinit var e10: kotlin.String
|
||||
public final lateinit var e2: kotlin.String?
|
||||
public final lateinit var e3: kotlin.Int
|
||||
public final lateinit var e4: kotlin.Int?
|
||||
public final lateinit var e5: kotlin.String
|
||||
public final lateinit var e6: kotlin.Int
|
||||
public final lateinit val e7: kotlin.String
|
||||
public final lateinit val e8: kotlin.String
|
||||
public final lateinit var e9: kotlin.String
|
||||
public final val p2: kotlin.String
|
||||
public final lateinit val kotlin.String.e11: kotlin.String
|
||||
public final var p2: kotlin.String
|
||||
public final lateinit var kotlin.String.e11: kotlin.String
|
||||
public final lateinit var kotlin.String.e12: kotlin.String
|
||||
public final fun a(): kotlin.Unit
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
@@ -31,7 +31,7 @@ public abstract class A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?> {
|
||||
|
||||
public abstract class AbstractClass {
|
||||
public constructor AbstractClass()
|
||||
public abstract val str: kotlin.String
|
||||
public abstract var str: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@@ -39,7 +39,7 @@ public abstract class AbstractClass {
|
||||
|
||||
public final class AbstractClassImpl : AbstractClass {
|
||||
public constructor AbstractClassImpl()
|
||||
public open override /*1*/ lateinit val str: kotlin.String
|
||||
public open override /*1*/ lateinit var str: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
@@ -54,7 +54,7 @@ public final class CustomDelegate {
|
||||
}
|
||||
|
||||
public interface Intf {
|
||||
public abstract lateinit val str: kotlin.String
|
||||
public abstract lateinit var str: kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
|
||||
Reference in New Issue
Block a user