From 7e2828c2763051f061233caceb5750c4e255ff60 Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Mon, 17 Jun 2019 12:50:39 +0300 Subject: [PATCH] FIR: provide error type for property/variable without initializer --- .../transformers/FirBodyResolveTransformer.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt index 688c600c1ee..d92d5f9ed9f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirBodyResolveTransformer.kt @@ -9,6 +9,7 @@ import com.google.common.collect.LinkedHashMultimap import org.jetbrains.kotlin.descriptors.ClassKind import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.declarations.* +import org.jetbrains.kotlin.fir.declarations.impl.FirDefaultPropertyAccessor import org.jetbrains.kotlin.fir.declarations.impl.FirValueParameterImpl import org.jetbrains.kotlin.fir.expressions.* import org.jetbrains.kotlin.fir.expressions.impl.FirResolvedQualifierImpl @@ -918,6 +919,19 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn ) ) } + else -> { + variable.transformReturnTypeRef( + this, + FirErrorTypeRefImpl( + session, null, + if (variable is FirProperty && variable.getter !is FirDefaultPropertyAccessor) { + "Not supported: type from property getter" + } else { + "Cannot infer variable type without initializer / getter / delegate" + } + ) + ) + } } } if (variable !is FirProperty) {