K2: Reformat FirCallCompletionResultsWriterTransformer.kt
This commit is contained in:
committed by
Space Team
parent
06b0fc7e4c
commit
cd5105c133
+21
-20
@@ -59,7 +59,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
private val integerOperatorApproximator: IntegerLiteralAndOperatorApproximationTransformer,
|
||||
private val samResolver: FirSamResolver,
|
||||
private val context: BodyResolveContext,
|
||||
private val mode: Mode = Mode.Normal
|
||||
private val mode: Mode = Mode.Normal,
|
||||
) : FirAbstractTreeTransformer<ExpectedArgumentType?>(phase = FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
|
||||
|
||||
private fun finallySubstituteOrNull(type: ConeKotlinType): ConeKotlinType? {
|
||||
@@ -91,7 +91,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
}
|
||||
|
||||
private fun <T : FirQualifiedAccessExpression> prepareQualifiedTransform(
|
||||
qualifiedAccessExpression: T, calleeReference: FirNamedReferenceWithCandidate
|
||||
qualifiedAccessExpression: T, calleeReference: FirNamedReferenceWithCandidate,
|
||||
): T {
|
||||
val subCandidate = calleeReference.candidate
|
||||
val declaration = subCandidate.symbol.fir
|
||||
@@ -185,7 +185,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformPropertyAccessExpression(
|
||||
propertyAccessExpression: FirPropertyAccessExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
return transformQualifiedAccessExpression(propertyAccessExpression, data)
|
||||
}
|
||||
@@ -252,7 +252,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformAnnotationCall(
|
||||
annotationCall: FirAnnotationCall,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
val calleeReference = annotationCall.calleeReference as? FirNamedReferenceWithCandidate ?: return annotationCall
|
||||
annotationCall.replaceCalleeReference(calleeReference.toResolvedReference())
|
||||
@@ -334,7 +334,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformSafeCallExpression(
|
||||
safeCallExpression: FirSafeCallExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
safeCallExpression.transformSelector(
|
||||
this,
|
||||
@@ -400,7 +400,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformQualifiedAccessExpression(
|
||||
qualifiedAccessExpression: FirQualifiedAccessExpression,
|
||||
data: Any?
|
||||
data: Any?,
|
||||
): FirStatement {
|
||||
val originalType = qualifiedAccessExpression.resolvedType
|
||||
val substitutedReceiverType = finallySubstituteOrNull(originalType) ?: return qualifiedAccessExpression
|
||||
@@ -476,7 +476,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
private fun computeTypeArguments(
|
||||
access: FirQualifiedAccessExpression,
|
||||
candidate: Candidate
|
||||
candidate: Candidate,
|
||||
): List<FirTypeProjection> {
|
||||
val typeArguments = computeTypeArgumentTypes(candidate)
|
||||
.mapIndexed { index, type ->
|
||||
@@ -529,7 +529,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformAnonymousFunctionExpression(
|
||||
anonymousFunctionExpression: FirAnonymousFunctionExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
return anonymousFunctionExpression.transformAnonymousFunction(this, data)
|
||||
}
|
||||
@@ -599,7 +599,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
}
|
||||
|
||||
private fun transformImplicitTypeRefInAnonymousFunction(
|
||||
anonymousFunction: FirAnonymousFunction
|
||||
anonymousFunction: FirAnonymousFunction,
|
||||
): FirStatement {
|
||||
val implicitTypeTransformer = object : FirDefaultTransformer<Any?>() {
|
||||
override fun <E : FirElement> transformElement(element: E, data: Any?): E {
|
||||
@@ -609,7 +609,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformImplicitTypeRef(
|
||||
implicitTypeRef: FirImplicitTypeRef,
|
||||
data: Any?
|
||||
data: Any?,
|
||||
): FirTypeRef =
|
||||
buildErrorTypeRef {
|
||||
source = implicitTypeRef.source
|
||||
@@ -627,7 +627,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformReturnExpression(
|
||||
returnExpression: FirReturnExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
val labeledElement = returnExpression.target.labeledElement
|
||||
if (labeledElement is FirAnonymousFunction) {
|
||||
@@ -643,7 +643,8 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
if (initialType != null) {
|
||||
var resultType = finallySubstituteOrNull(initialType) ?: block.resultType
|
||||
(resultType as? ConeIntegerLiteralType)?.let {
|
||||
resultType = it.getApproximatedType(data?.getExpectedType(block)?.fullyExpandedType(session))
|
||||
resultType =
|
||||
it.getApproximatedType(data?.getExpectedType(block)?.fullyExpandedType(session))
|
||||
}
|
||||
block.replaceConeTypeOrNull(resultType)
|
||||
session.lookupTracker?.recordTypeResolveAsLookup(resultType, block.source, context.file.source)
|
||||
@@ -659,28 +660,28 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformWhenExpression(
|
||||
whenExpression: FirWhenExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
return transformSyntheticCall(whenExpression, data)
|
||||
}
|
||||
|
||||
override fun transformTryExpression(
|
||||
tryExpression: FirTryExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
return transformSyntheticCall(tryExpression, data)
|
||||
}
|
||||
|
||||
override fun transformCheckNotNullCall(
|
||||
checkNotNullCall: FirCheckNotNullCall,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
return transformSyntheticCall(checkNotNullCall, data)
|
||||
}
|
||||
|
||||
override fun transformElvisExpression(
|
||||
elvisExpression: FirElvisExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
return transformSyntheticCall(elvisExpression, data)
|
||||
}
|
||||
@@ -708,7 +709,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
private inline fun <reified D> transformSyntheticCallChildren(
|
||||
syntheticCall: D,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
) where D : FirResolvable, D : FirExpression {
|
||||
val newData = data?.getExpectedType(syntheticCall)?.toExpectedType() ?: syntheticCall.resolvedType.toExpectedType()
|
||||
|
||||
@@ -739,7 +740,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformIntegerLiteralOperatorCall(
|
||||
integerLiteralOperatorCall: FirIntegerLiteralOperatorCall,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
if (data == ExpectedArgumentType.NoApproximation) return integerLiteralOperatorCall
|
||||
val expectedType = data?.getExpectedType(integerLiteralOperatorCall)
|
||||
@@ -766,7 +767,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
|
||||
override fun transformVarargArgumentsExpression(
|
||||
varargArgumentsExpression: FirVarargArgumentsExpression,
|
||||
data: ExpectedArgumentType?
|
||||
data: ExpectedArgumentType?,
|
||||
): FirStatement {
|
||||
val expectedType = data?.getExpectedType(varargArgumentsExpression)?.let { ExpectedArgumentType.ExpectedType(it) }
|
||||
varargArgumentsExpression.transformChildren(this, expectedType)
|
||||
@@ -809,7 +810,7 @@ class FirCallCompletionResultsWriterTransformer(
|
||||
sealed class ExpectedArgumentType {
|
||||
class ArgumentsMap(
|
||||
val map: Map<FirElement, ConeKotlinType>,
|
||||
val lambdasReturnTypes: Map<FirAnonymousFunction, ConeKotlinType>
|
||||
val lambdasReturnTypes: Map<FirAnonymousFunction, ConeKotlinType>,
|
||||
) : ExpectedArgumentType()
|
||||
|
||||
class ExpectedType(val type: ConeKotlinType) : ExpectedArgumentType()
|
||||
|
||||
Reference in New Issue
Block a user