[FIR] Reformat RawFirBuilder.kt
This commit is contained in:
committed by
Space Team
parent
16872f7a74
commit
16a46fbc0b
+27
-23
@@ -32,8 +32,8 @@ import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
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.FirImplicitTypeRefImplWithoutSource
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirQualifierPartImpl
|
||||
import org.jetbrains.kotlin.fir.types.impl.FirTypeArgumentListImpl
|
||||
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.utils.addToStdlib.firstIsInstanceOrNull
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.runIf
|
||||
import org.jetbrains.kotlin.utils.addToStdlib.shouldNotBeCalled
|
||||
|
||||
open class RawFirBuilder(
|
||||
session: FirSession,
|
||||
@@ -1581,7 +1582,8 @@ open class RawFirBuilder(
|
||||
multiParameter
|
||||
} else {
|
||||
val typeRef = valueParameter.typeReference?.convertSafe() ?: buildImplicitTypeRef {
|
||||
source = valueParameter.toFirSourceElement().fakeElement(KtFakeSourceElementKind.ImplicitReturnTypeOfLambdaValueParameter)
|
||||
source = valueParameter.toFirSourceElement()
|
||||
.fakeElement(KtFakeSourceElementKind.ImplicitReturnTypeOfLambdaValueParameter)
|
||||
}
|
||||
convertValueParameter(valueParameter, symbol, typeRef, ValueParameterDeclaration.LAMBDA)
|
||||
}
|
||||
@@ -1814,13 +1816,14 @@ open class RawFirBuilder(
|
||||
}
|
||||
|
||||
if (hasDelegate()) {
|
||||
fun extractDelegateExpression() = buildOrLazyExpression(this@toFirProperty.toFirSourceElement(KtFakeSourceElementKind.WrappedDelegate)) {
|
||||
this@toFirProperty.delegate?.expression?.let { expression ->
|
||||
expression.toFirExpression("Should have delegate")
|
||||
} ?: buildErrorExpression {
|
||||
diagnostic = ConeSimpleDiagnostic("Should have delegate", DiagnosticKind.ExpressionExpected)
|
||||
fun extractDelegateExpression() =
|
||||
buildOrLazyExpression(this@toFirProperty.toFirSourceElement(KtFakeSourceElementKind.WrappedDelegate)) {
|
||||
this@toFirProperty.delegate?.expression?.let { expression ->
|
||||
expression.toFirExpression("Should have delegate")
|
||||
} ?: buildErrorExpression {
|
||||
diagnostic = ConeSimpleDiagnostic("Should have delegate", DiagnosticKind.ExpressionExpected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
val delegateBuilder = FirWrappedDelegateExpressionBuilder().apply {
|
||||
val delegateExpression = extractDelegateExpression()
|
||||
@@ -2023,7 +2026,7 @@ open class RawFirBuilder(
|
||||
KtProjectionKind.IN -> Variance.IN_VARIANCE
|
||||
KtProjectionKind.OUT -> Variance.OUT_VARIANCE
|
||||
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 (calleeReference, explicitReceiver, isImplicitInvoke) = splitToCalleeAndReceiver(expression.calleeExpression, source)
|
||||
|
||||
val result: FirQualifiedAccessExpressionBuilder = if (expression.valueArgumentList == null && expression.lambdaArguments.isEmpty()) {
|
||||
FirPropertyAccessExpressionBuilder().apply {
|
||||
this.source = source
|
||||
this.calleeReference = calleeReference
|
||||
val result: FirQualifiedAccessExpressionBuilder =
|
||||
if (expression.valueArgumentList == null && expression.lambdaArguments.isEmpty()) {
|
||||
FirPropertyAccessExpressionBuilder().apply {
|
||||
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 {
|
||||
this.explicitReceiver = explicitReceiver
|
||||
|
||||
Reference in New Issue
Block a user