Diagnostic on lateinit

This commit is contained in:
Yan Zhulanow
2015-09-03 01:32:58 +03:00
parent add13cae82
commit e3967b9fa0
6 changed files with 176 additions and 5 deletions
+57
View File
@@ -0,0 +1,57 @@
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 lateinit val a: String
lateinit val b: T
private lateinit var c: CharSequence
lateinit val d: String
get
public lateinit var e: String
get
private set
fun a() {
<!WRONG_MODIFIER_TARGET!>lateinit<!> val <!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!>lateinit<!> var e5 = "A"
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e6 = 3
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e7 by CustomDelegate()
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e8: String
get() = "A"
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var e9: String
set(v) { $e9 = v }
abstract <!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val e10: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val String.e11: String
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> var String.e12: String
}
<!WRONG_MODIFIER_TARGET!>lateinit<!> val topLevel: String
<!WRONG_MODIFIER_TARGET!>lateinit<!> var topLevelMutable: String
public interface Intf {
<!INAPPLICABLE_LATEINIT_MODIFIER!>lateinit<!> val str: String
}
public abstract class AbstractClass {
abstract val str: String
}
public class AbstractClassImpl : AbstractClass() {
override lateinit val str: String
}
+61
View File
@@ -0,0 +1,61 @@
package
internal lateinit val topLevel: kotlin.String
internal lateinit var topLevelMutable: kotlin.String
public abstract class A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?> {
public constructor A</*0*/ T : kotlin.Any, /*1*/ V : kotlin.String?>(/*0*/ p2: kotlin.String)
public final lateinit val a: kotlin.String
internal final lateinit val b: T
private final lateinit var c: kotlin.CharSequence
internal final lateinit val d: kotlin.String
public final lateinit var e: kotlin.String
internal final lateinit val e1: V
internal abstract lateinit val e10: kotlin.String
internal final lateinit val e2: kotlin.String?
internal final lateinit val e3: kotlin.Int
internal final lateinit val e4: kotlin.Int?
internal final lateinit var e5: kotlin.String
internal final lateinit var e6: kotlin.Int
internal final lateinit val e7: kotlin.String
internal final lateinit val e8: kotlin.String
internal final lateinit var e9: kotlin.String
internal final val p2: kotlin.String
internal final lateinit val kotlin.String.e11: kotlin.String
internal final lateinit var kotlin.String.e12: kotlin.String
internal final fun a(): kotlin.Unit
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
}
public abstract class AbstractClass {
public constructor AbstractClass()
internal abstract val 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
}
public final class AbstractClassImpl : AbstractClass {
public constructor AbstractClassImpl()
internal open override /*1*/ lateinit val 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
}
internal final class CustomDelegate {
public constructor CustomDelegate()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final fun get(/*0*/ thisRef: kotlin.Any?, /*1*/ prop: kotlin.PropertyMetadata): kotlin.String
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public interface Intf {
internal abstract lateinit val 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
}