From 0d976a4870e7906a648051edeb3d52eabef2146a Mon Sep 17 00:00:00 2001 From: Mikhail Glukhikh Date: Fri, 15 Mar 2019 18:22:01 +0300 Subject: [PATCH] FIR: forbid supertype resolve in local classes --- .../transformers/FirSupertypeResolverTransformer.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypeResolverTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypeResolverTransformer.kt index 76119401888..bd208a76fe1 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypeResolverTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/FirSupertypeResolverTransformer.kt @@ -45,6 +45,18 @@ class FirSupertypeResolverTransformer : FirAbstractTreeTransformer() { return resolveSupertypesOrExpansions(typeAlias).compose() } + // This and transformProperty functions are required to forbid supertype resolving for local classes + override fun transformDeclarationWithBody( + declarationWithBody: FirDeclarationWithBody, + data: Nothing? + ): CompositeTransformResult { + return declarationWithBody.compose() + } + + override fun transformProperty(property: FirProperty, data: Nothing?): CompositeTransformResult { + return property.compose() + } + private fun resolveSupertypesOrExpansions(classLikeDeclaration: FirClassLikeDeclaration): FirDeclaration { val classId = classLikeDeclaration.symbol.classId