[FIR] Report PROPERTY_WITH_NO_TYPE_NO_INITIALIZER for all properties
Currently, PROPERTY_WITH_NO_TYPE_NO_INITIALIZER is reported for local variables, but not reported for member or top-level properties. Add a check to the common `checkPropertyInitializer` for when a property type cannot be determined from the getter. This also corrects a K1 versus K2 inconsistency, where K2 would allow blocks from getters to determine property type instead of only allowing expression bodies. ^KT-59935 Fixed ^KT-60117 Fixed ^KT-60123 Fixed
This commit is contained in:
+4
-4
@@ -1,6 +1,6 @@
|
||||
FILE: untypedPropertyWithBackingFieldUsage.kt
|
||||
public final val simpleNoTypeBlock: <ERROR TYPE REF: Unresolved name: field>
|
||||
public get(): <ERROR TYPE REF: Unresolved name: field> {
|
||||
public final val simpleNoTypeBlock: <ERROR TYPE REF: Cannot infer variable type without initializer / getter / delegate>
|
||||
public get(): <ERROR TYPE REF: Cannot infer variable type without initializer / getter / delegate> {
|
||||
^ <Unresolved name: field>#
|
||||
}
|
||||
public final val simpleNoTypeExpression: <ERROR TYPE REF: Unresolved name: field>
|
||||
@@ -15,9 +15,9 @@ FILE: untypedPropertyWithBackingFieldUsage.kt
|
||||
public get(): R|kotlin/Int| {
|
||||
^ F|/simpleTypeExpression|
|
||||
}
|
||||
public final val withFieldNoTypeBlock: R|kotlin/Int|
|
||||
public final val withFieldNoTypeBlock: <ERROR TYPE REF: Cannot infer variable type without initializer / getter / delegate>
|
||||
private <explicit backing field>: R|kotlin/Double| = Double(3.14)
|
||||
public get(): R|kotlin/Int| {
|
||||
public get(): <ERROR TYPE REF: Cannot infer variable type without initializer / getter / delegate> {
|
||||
^ <Unresolved name: field>#.R|kotlin/text/toInt|()
|
||||
}
|
||||
public final val withFieldNoTypeExpression: R|kotlin/Int|
|
||||
|
||||
+1
-1
@@ -1,4 +1,4 @@
|
||||
val simpleNoTypeBlock
|
||||
<!PROPERTY_WITH_NO_TYPE_NO_INITIALIZER!>val simpleNoTypeBlock<!>
|
||||
get() {
|
||||
return <!UNRESOLVED_REFERENCE!>field<!>
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user