From 450bfed37575f25cda12af5601156a1d239421f3 Mon Sep 17 00:00:00 2001 From: Mikhail Zarechenskiy Date: Fri, 26 Apr 2019 11:25:34 +0300 Subject: [PATCH] Specify missing type arguments to fix compilation in FE module --- .../kotlin/fir/resolve/AbstractFirSymbolProvider.kt | 3 ++- .../src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt | 2 +- .../fir/resolve/transformers/FirBodyResolveTransformer.kt | 8 ++++---- .../kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt | 4 ++-- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/AbstractFirSymbolProvider.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/AbstractFirSymbolProvider.kt index 6888e1bc916..86b88e30b92 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/AbstractFirSymbolProvider.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/AbstractFirSymbolProvider.kt @@ -5,6 +5,7 @@ package org.jetbrains.kotlin.fir.resolve +import org.jetbrains.kotlin.fir.FirElement import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.ConeCallableSymbol import org.jetbrains.kotlin.fir.symbols.ConeClassLikeSymbol @@ -48,7 +49,7 @@ abstract class AbstractFirSymbolProvider : FirSymbolProvider { if (symbol !is FirClassSymbol) continue if (symbol.classId.relativeClassName.parent().isRoot) { // Launch for top-level classes only - symbol.fir.transform(transformer, data) + symbol.fir.transform(transformer, data) } } } diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt index 7e4ad1e5a89..4aa5df4947f 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/ScopeUtils.kt @@ -32,7 +32,7 @@ fun ConeKotlinType.scope(useSiteSession: FirSession): FirScope? { // TODO: support LibraryTypeParameterSymbol or get rid of it val toSymbol = this.lookupTag.toSymbol(useSiteSession)?.takeIf { it is FirBasedSymbol<*> } ?: return null val fir = toSymbol.firUnsafe() - FirCompositeScope(fir.bounds.mapNotNullTo(mutableListOf()) { it.coneTypeUnsafe().scope(useSiteSession) }) + FirCompositeScope(fir.bounds.mapNotNullTo(mutableListOf()) { it.coneTypeUnsafe().scope(useSiteSession) }) } is ConeFlexibleType -> lowerBound.scope(useSiteSession) else -> error("Failed type ${this}") 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 1b99c7585de..1884f758120 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 @@ -115,7 +115,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn resolved.resultType = resolved.conversionTypeRef.withReplacedConeType( session, - resolved.conversionTypeRef.coneTypeUnsafe().withNullability(ConeNullability.NULLABLE) + resolved.conversionTypeRef.coneTypeUnsafe().withNullability(ConeNullability.NULLABLE) ) } else -> error("Unknown type operator") @@ -368,7 +368,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn fun transform(): CompositeTransformResult { localScopes.lastOrNull()?.storeDeclaration(namedFunction) return withScopeCleanup(scopes) { - scopes.addIfNotNull(receiverTypeRef?.coneTypeSafe()?.scope(session)) + scopes.addIfNotNull(receiverTypeRef?.coneTypeSafe()?.scope(session)) val result = super.transformNamedFunction(namedFunction, namedFunction.returnTypeRef).single as FirNamedFunction @@ -440,7 +440,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn } fun FirElement.visitNoTransform(transformer: FirTransformer, data: D) { - val result = this.transform(transformer, data) + val result = this.transform(transformer, data) require(result.single === this) { "become ${result.single}: `${result.single.render()}`, was ${this}: `${this.render()}`" } } @@ -507,7 +507,7 @@ class ReturnTypeCalculatorWithJump(val session: FirSession) : ReturnTypeCalculat file.session ) - file.transform(transformer, null) + file.transform(transformer, null) val newReturnTypeRef = declaration.returnTypeRef diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt index b5fe0760000..a99def46851 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/scopes/impl/FirClassSubstitutionScope.kt @@ -110,14 +110,14 @@ class FirClassSubstitutionScope( if (member is FirConstructor) return original as FirFunctionSymbol // TODO: substitution for constructors member as FirNamedFunction - val receiverType = member.receiverTypeRef?.coneTypeUnsafe() + val receiverType = member.receiverTypeRef?.coneTypeUnsafe() val newReceiverType = receiverType?.substitute() val returnType = typeCalculator.tryCalculateReturnType(member).type val newReturnType = returnType.substitute() val newParameterTypes = member.valueParameters.map { - it.returnTypeRef.coneTypeUnsafe().substitute() + it.returnTypeRef.coneTypeUnsafe().substitute() } return createFakeOverride(session, member, original as FirFunctionSymbol, newReceiverType, newReturnType, newParameterTypes)