Make lateinit diagnostics more clear

This commit is contained in:
Yan Zhulanow
2015-09-18 20:43:23 +03:00
parent 32e6a6e3a1
commit cc2d005984
8 changed files with 70 additions and 84 deletions
+17 -17
View File
@@ -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
}