Forbid lateinit variables of inline class types
Proper support of lateinit inline class values will be added later, see #KT-23814 #KT-25603 Fixed
This commit is contained in:
+9
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.resolve
|
||||
|
||||
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
|
||||
import org.jetbrains.kotlin.builtins.UnsignedTypes
|
||||
import org.jetbrains.kotlin.descriptors.Modality
|
||||
import org.jetbrains.kotlin.descriptors.PropertyDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.VariableDescriptor
|
||||
@@ -45,6 +46,14 @@ object LateinitModifierApplicabilityChecker {
|
||||
trace.report(Errors.INAPPLICABLE_LATEINIT_MODIFIER.on(modifier, "is allowed only on mutable $variables"))
|
||||
}
|
||||
|
||||
if (type.isInlineClassType()) {
|
||||
if (UnsignedTypes.isUnsignedType(type)) {
|
||||
trace.report(Errors.INAPPLICABLE_LATEINIT_MODIFIER.on(modifier, "is not allowed on $variables of unsigned types"))
|
||||
} else {
|
||||
trace.report(Errors.INAPPLICABLE_LATEINIT_MODIFIER.on(modifier, "is not allowed on $variables of inline class types"))
|
||||
}
|
||||
}
|
||||
|
||||
if (type.isMarkedNullable) {
|
||||
trace.report(Errors.INAPPLICABLE_LATEINIT_MODIFIER.on(modifier, "is not allowed on $variables of nullable types"))
|
||||
} else if (TypeUtils.isNullableType(type)) {
|
||||
|
||||
Reference in New Issue
Block a user