Specify missing type arguments to fix compilation in FE module

This commit is contained in:
Mikhail Zarechenskiy
2019-04-26 11:25:34 +03:00
parent 57ad0aa8fb
commit 450bfed375
4 changed files with 9 additions and 8 deletions
@@ -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<FirElement, D>(transformer, data)
}
}
}
@@ -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<FirTypeParameter>()
FirCompositeScope(fir.bounds.mapNotNullTo(mutableListOf()) { it.coneTypeUnsafe().scope(useSiteSession) })
FirCompositeScope(fir.bounds.mapNotNullTo(mutableListOf()) { it.coneTypeUnsafe<ConeKotlinType>().scope(useSiteSession) })
}
is ConeFlexibleType -> lowerBound.scope(useSiteSession)
else -> error("Failed type ${this}")
@@ -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<ConeKotlinType>().withNullability(ConeNullability.NULLABLE)
)
}
else -> error("Unknown type operator")
@@ -368,7 +368,7 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
fun transform(): CompositeTransformResult<FirDeclaration> {
localScopes.lastOrNull()?.storeDeclaration(namedFunction)
return withScopeCleanup(scopes) {
scopes.addIfNotNull(receiverTypeRef?.coneTypeSafe()?.scope(session))
scopes.addIfNotNull(receiverTypeRef?.coneTypeSafe<ConeKotlinType>()?.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 <D> FirElement.visitNoTransform(transformer: FirTransformer<D>, data: D) {
val result = this.transform(transformer, data)
val result = this.transform<FirElement, D>(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<FirElement, Any?>(transformer, null)
val newReturnTypeRef = declaration.returnTypeRef
@@ -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<ConeKotlinType>()
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<ConeKotlinType>().substitute()
}
return createFakeOverride(session, member, original as FirFunctionSymbol, newReceiverType, newReturnType, newParameterTypes)