[FIR] Reformat RawFirBuilder.kt

This commit is contained in:
Dmitriy Novozhilov
2023-03-17 14:38:14 +02:00
committed by Space Team
parent 16872f7a74
commit 16a46fbc0b
@@ -32,8 +32,8 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
import org.jetbrains.kotlin.fir.symbols.impl.* import org.jetbrains.kotlin.fir.symbols.impl.*
import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.*
import org.jetbrains.kotlin.fir.types.builder.* import org.jetbrains.kotlin.fir.types.builder.*
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImplWithoutSource
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
import org.jetbrains.kotlin.fir.types.impl.FirImplicitTypeRefImplWithoutSource
import org.jetbrains.kotlin.fir.types.impl.FirQualifierPartImpl import org.jetbrains.kotlin.fir.types.impl.FirQualifierPartImpl
import org.jetbrains.kotlin.fir.types.impl.FirTypeArgumentListImpl import org.jetbrains.kotlin.fir.types.impl.FirTypeArgumentListImpl
import org.jetbrains.kotlin.lexer.KtTokens.* import org.jetbrains.kotlin.lexer.KtTokens.*
@@ -49,6 +49,7 @@ import org.jetbrains.kotlin.types.expressions.OperatorConventions
import org.jetbrains.kotlin.util.OperatorNameConventions import org.jetbrains.kotlin.util.OperatorNameConventions
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
import org.jetbrains.kotlin.utils.addToStdlib.runIf import org.jetbrains.kotlin.utils.addToStdlib.runIf
import org.jetbrains.kotlin.utils.addToStdlib.shouldNotBeCalled
open class RawFirBuilder( open class RawFirBuilder(
session: FirSession, session: FirSession,
@@ -1581,7 +1582,8 @@ open class RawFirBuilder(
multiParameter multiParameter
} else { } else {
val typeRef = valueParameter.typeReference?.convertSafe() ?: buildImplicitTypeRef { val typeRef = valueParameter.typeReference?.convertSafe() ?: buildImplicitTypeRef {
source = valueParameter.toFirSourceElement().fakeElement(KtFakeSourceElementKind.ImplicitReturnTypeOfLambdaValueParameter) source = valueParameter.toFirSourceElement()
.fakeElement(KtFakeSourceElementKind.ImplicitReturnTypeOfLambdaValueParameter)
} }
convertValueParameter(valueParameter, symbol, typeRef, ValueParameterDeclaration.LAMBDA) convertValueParameter(valueParameter, symbol, typeRef, ValueParameterDeclaration.LAMBDA)
} }
@@ -1814,13 +1816,14 @@ open class RawFirBuilder(
} }
if (hasDelegate()) { if (hasDelegate()) {
fun extractDelegateExpression() = buildOrLazyExpression(this@toFirProperty.toFirSourceElement(KtFakeSourceElementKind.WrappedDelegate)) { fun extractDelegateExpression() =
this@toFirProperty.delegate?.expression?.let { expression -> buildOrLazyExpression(this@toFirProperty.toFirSourceElement(KtFakeSourceElementKind.WrappedDelegate)) {
expression.toFirExpression("Should have delegate") this@toFirProperty.delegate?.expression?.let { expression ->
} ?: buildErrorExpression { expression.toFirExpression("Should have delegate")
diagnostic = ConeSimpleDiagnostic("Should have delegate", DiagnosticKind.ExpressionExpected) } ?: buildErrorExpression {
diagnostic = ConeSimpleDiagnostic("Should have delegate", DiagnosticKind.ExpressionExpected)
}
} }
}
val delegateBuilder = FirWrappedDelegateExpressionBuilder().apply { val delegateBuilder = FirWrappedDelegateExpressionBuilder().apply {
val delegateExpression = extractDelegateExpression() val delegateExpression = extractDelegateExpression()
@@ -2023,7 +2026,7 @@ open class RawFirBuilder(
KtProjectionKind.IN -> Variance.IN_VARIANCE KtProjectionKind.IN -> Variance.IN_VARIANCE
KtProjectionKind.OUT -> Variance.OUT_VARIANCE KtProjectionKind.OUT -> Variance.OUT_VARIANCE
KtProjectionKind.NONE -> Variance.INVARIANT KtProjectionKind.NONE -> Variance.INVARIANT
KtProjectionKind.STAR -> throw AssertionError("* should not be here") KtProjectionKind.STAR -> shouldNotBeCalled()
} }
} }
} }
@@ -2546,21 +2549,22 @@ open class RawFirBuilder(
val source = expression.toFirSourceElement() val source = expression.toFirSourceElement()
val (calleeReference, explicitReceiver, isImplicitInvoke) = splitToCalleeAndReceiver(expression.calleeExpression, source) val (calleeReference, explicitReceiver, isImplicitInvoke) = splitToCalleeAndReceiver(expression.calleeExpression, source)
val result: FirQualifiedAccessExpressionBuilder = if (expression.valueArgumentList == null && expression.lambdaArguments.isEmpty()) { val result: FirQualifiedAccessExpressionBuilder =
FirPropertyAccessExpressionBuilder().apply { if (expression.valueArgumentList == null && expression.lambdaArguments.isEmpty()) {
this.source = source FirPropertyAccessExpressionBuilder().apply {
this.calleeReference = calleeReference this.source = source
this.calleeReference = calleeReference
}
} else {
val builder = if (isImplicitInvoke) FirImplicitInvokeCallBuilder() else FirFunctionCallBuilder()
builder.apply {
this.source = source
this.calleeReference = calleeReference
context.calleeNamesForLambda += calleeReference.name
expression.extractArgumentsTo(this)
context.calleeNamesForLambda.removeLast()
}
} }
} else {
val builder = if (isImplicitInvoke) FirImplicitInvokeCallBuilder() else FirFunctionCallBuilder()
builder.apply {
this.source = source
this.calleeReference = calleeReference
context.calleeNamesForLambda += calleeReference.name
expression.extractArgumentsTo(this)
context.calleeNamesForLambda.removeLast()
}
}
return result.apply { return result.apply {
this.explicitReceiver = explicitReceiver this.explicitReceiver = explicitReceiver