[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.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
|
||||||
|
|||||||
Reference in New Issue
Block a user