[FE] Prohibit missed MUST_BE_INITIALIZED when there is no primary constructor
^KT-58472 Fixed Review: https://jetbrains.team/p/kt/reviews/9967
This commit is contained in:
+11
@@ -0,0 +1,11 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
<!MUST_BE_INITIALIZED!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Base(x: Int)
|
||||
class Foo : Base {
|
||||
constructor() : super(1)
|
||||
<!MUST_BE_INITIALIZED!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Base(x: Int)
|
||||
class Foo : Base {
|
||||
constructor() : super(1)
|
||||
<!MUST_BE_INITIALIZED_WARNING!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
<!MUST_BE_INITIALIZED!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
constructor() {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
<!MUST_BE_INITIALIZED_WARNING!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
constructor() {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
constructor()
|
||||
<!MUST_BE_INITIALIZED!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
constructor()
|
||||
<!MUST_BE_INITIALIZED_WARNING!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor, +ProhibitOpenValDeferredInitialization
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Foo {
|
||||
constructor()
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT!>open val x: String<!>
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor, +ProhibitOpenValDeferredInitialization
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Foo {
|
||||
constructor()
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT_WARNING!>open val x: String<!>
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor, -ProhibitOpenValDeferredInitialization
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Foo {
|
||||
constructor()
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT_WARNING!>open val x: String<!>
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor, -ProhibitOpenValDeferredInitialization
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Foo {
|
||||
constructor()
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT_WARNING!>open val x: String<!>
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Foo {
|
||||
constructor()
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT!>open var x: String<!>
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
open class Foo {
|
||||
constructor()
|
||||
|
||||
<!MUST_BE_INITIALIZED_OR_FINAL_OR_ABSTRACT_WARNING!>open var x: String<!>
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
class Foo {
|
||||
<!MUST_BE_INITIALIZED!>var foo: Int<!>
|
||||
set(value) {}
|
||||
|
||||
constructor() {
|
||||
if (1 != 1) {
|
||||
foo = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
// FIR_IDENTICAL
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
class Foo {
|
||||
<!MUST_BE_INITIALIZED!>var foo: Int<!>
|
||||
set(value) {}
|
||||
|
||||
constructor(x: Int) {}
|
||||
constructor() {
|
||||
foo = 1
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:+ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
constructor()
|
||||
constructor(x: Int)
|
||||
<!MUST_BE_INITIALIZED!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo {
|
||||
constructor()
|
||||
constructor(x: Int)
|
||||
<!MUST_BE_INITIALIZED_WARNING!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
// FIR_IDENTICAL
|
||||
// !LANGUAGE:-ProhibitMissedMustBeInitializedWhenThereIsNoPrimaryConstructor
|
||||
// !DIAGNOSTICS: -DEBUG_INFO_LEAKING_THIS
|
||||
class Foo() {
|
||||
constructor(x: Int) : this()
|
||||
|
||||
<!MUST_BE_INITIALIZED!>var x: String<!>
|
||||
set(value) {}
|
||||
|
||||
init {
|
||||
x = ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user