[FIR] Add wrapped expressions for when subject expression with smartcast
This commit is contained in:
committed by
teamcityserver
parent
8707be51c9
commit
20425fb458
+7
-7
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression(), FirWrappedExpressionWithSmartcast<FirQualifiedAccessExpression> {
|
||||||
abstract override val source: KtSourceElement?
|
abstract override val source: KtSourceElement?
|
||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotation>
|
abstract override val annotations: List<FirAnnotation>
|
||||||
@@ -29,12 +29,12 @@ abstract class FirExpressionWithSmartcast : FirQualifiedAccessExpression() {
|
|||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
abstract val originalExpression: FirQualifiedAccessExpression
|
abstract override val originalExpression: FirQualifiedAccessExpression
|
||||||
abstract val typesFromSmartCast: Collection<ConeKotlinType>
|
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
abstract val originalType: FirTypeRef
|
abstract override val originalType: FirTypeRef
|
||||||
abstract val smartcastType: FirTypeRef
|
abstract override val smartcastType: FirTypeRef
|
||||||
abstract val isStable: Boolean
|
abstract override val isStable: Boolean
|
||||||
abstract val smartcastStability: SmartcastStability
|
abstract override val smartcastStability: SmartcastStability
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcast(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcast(this, data)
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -20,7 +20,7 @@ import org.jetbrains.kotlin.fir.FirImplementationDetail
|
|||||||
* DO NOT MODIFY IT MANUALLY
|
* DO NOT MODIFY IT MANUALLY
|
||||||
*/
|
*/
|
||||||
|
|
||||||
abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast() {
|
abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast(), FirWrappedExpressionWithSmartcastToNull<FirQualifiedAccessExpression> {
|
||||||
abstract override val source: KtSourceElement?
|
abstract override val source: KtSourceElement?
|
||||||
abstract override val typeRef: FirTypeRef
|
abstract override val typeRef: FirTypeRef
|
||||||
abstract override val annotations: List<FirAnnotation>
|
abstract override val annotations: List<FirAnnotation>
|
||||||
@@ -29,13 +29,13 @@ abstract class FirExpressionWithSmartcastToNull : FirExpressionWithSmartcast() {
|
|||||||
abstract override val explicitReceiver: FirExpression?
|
abstract override val explicitReceiver: FirExpression?
|
||||||
abstract override val dispatchReceiver: FirExpression
|
abstract override val dispatchReceiver: FirExpression
|
||||||
abstract override val extensionReceiver: FirExpression
|
abstract override val extensionReceiver: FirExpression
|
||||||
abstract override val isStable: Boolean
|
|
||||||
abstract override val originalExpression: FirQualifiedAccessExpression
|
abstract override val originalExpression: FirQualifiedAccessExpression
|
||||||
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
|
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
abstract override val originalType: FirTypeRef
|
abstract override val originalType: FirTypeRef
|
||||||
abstract override val smartcastType: FirTypeRef
|
abstract override val smartcastType: FirTypeRef
|
||||||
abstract val smartcastTypeWithoutNullableNothing: FirTypeRef
|
abstract override val isStable: Boolean
|
||||||
abstract override val smartcastStability: SmartcastStability
|
abstract override val smartcastStability: SmartcastStability
|
||||||
|
abstract override val smartcastTypeWithoutNullableNothing: FirTypeRef
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcastToNull(this, data)
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitExpressionWithSmartcastToNull(this, data)
|
||||||
|
|
||||||
|
|||||||
+42
@@ -0,0 +1,42 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirExpressionRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
abstract class FirWhenSubjectExpressionWithSmartcast : FirWhenSubjectExpression(), FirWrappedExpressionWithSmartcast<FirWhenSubjectExpression> {
|
||||||
|
abstract override val source: KtSourceElement?
|
||||||
|
abstract override val typeRef: FirTypeRef
|
||||||
|
abstract override val annotations: List<FirAnnotation>
|
||||||
|
abstract override val whenRef: FirExpressionRef<FirWhenExpression>
|
||||||
|
abstract override val originalExpression: FirWhenSubjectExpression
|
||||||
|
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
|
abstract override val originalType: FirTypeRef
|
||||||
|
abstract override val smartcastType: FirTypeRef
|
||||||
|
abstract override val isStable: Boolean
|
||||||
|
abstract override val smartcastStability: SmartcastStability
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitWhenSubjectExpressionWithSmartcast(this, data)
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
|
||||||
|
transformer.transformWhenSubjectExpressionWithSmartcast(this, data) as E
|
||||||
|
|
||||||
|
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||||
|
|
||||||
|
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirWhenSubjectExpressionWithSmartcast
|
||||||
|
}
|
||||||
+43
@@ -0,0 +1,43 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirExpressionRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
abstract class FirWhenSubjectExpressionWithSmartcastToNull : FirWhenSubjectExpression(), FirWrappedExpressionWithSmartcastToNull<FirWhenSubjectExpression> {
|
||||||
|
abstract override val source: KtSourceElement?
|
||||||
|
abstract override val typeRef: FirTypeRef
|
||||||
|
abstract override val annotations: List<FirAnnotation>
|
||||||
|
abstract override val whenRef: FirExpressionRef<FirWhenExpression>
|
||||||
|
abstract override val originalExpression: FirWhenSubjectExpression
|
||||||
|
abstract override val typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
|
abstract override val originalType: FirTypeRef
|
||||||
|
abstract override val smartcastType: FirTypeRef
|
||||||
|
abstract override val isStable: Boolean
|
||||||
|
abstract override val smartcastStability: SmartcastStability
|
||||||
|
abstract override val smartcastTypeWithoutNullableNothing: FirTypeRef
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitWhenSubjectExpressionWithSmartcastToNull(this, data)
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
|
||||||
|
transformer.transformWhenSubjectExpressionWithSmartcastToNull(this, data) as E
|
||||||
|
|
||||||
|
abstract override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||||
|
|
||||||
|
abstract override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
|
}
|
||||||
+37
@@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
interface FirWrappedExpressionWithSmartcast<E : FirExpression> : FirElement {
|
||||||
|
override val source: KtSourceElement?
|
||||||
|
val typeRef: FirTypeRef
|
||||||
|
val originalExpression: E
|
||||||
|
val typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
|
val originalType: FirTypeRef
|
||||||
|
val smartcastType: FirTypeRef
|
||||||
|
val isStable: Boolean
|
||||||
|
val smartcastStability: SmartcastStability
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitWrappedExpressionWithSmartcast(this, data)
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
|
||||||
|
transformer.transformWrappedExpressionWithSmartcast(this, data) as E
|
||||||
|
|
||||||
|
fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||||
|
}
|
||||||
+38
@@ -0,0 +1,38 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.*
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file was generated automatically
|
||||||
|
* DO NOT MODIFY IT MANUALLY
|
||||||
|
*/
|
||||||
|
|
||||||
|
interface FirWrappedExpressionWithSmartcastToNull<E : FirExpression> : FirWrappedExpressionWithSmartcast<E> {
|
||||||
|
override val source: KtSourceElement?
|
||||||
|
override val typeRef: FirTypeRef
|
||||||
|
override val originalExpression: E
|
||||||
|
override val typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
|
override val originalType: FirTypeRef
|
||||||
|
override val smartcastType: FirTypeRef
|
||||||
|
override val isStable: Boolean
|
||||||
|
override val smartcastStability: SmartcastStability
|
||||||
|
val smartcastTypeWithoutNullableNothing: FirTypeRef
|
||||||
|
|
||||||
|
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R = visitor.visitWrappedExpressionWithSmartcastToNull(this, data)
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
|
override fun <E: FirElement, D> transform(transformer: FirTransformer<D>, data: D): E =
|
||||||
|
transformer.transformWrappedExpressionWithSmartcastToNull(this, data) as E
|
||||||
|
|
||||||
|
override fun replaceTypeRef(newTypeRef: FirTypeRef)
|
||||||
|
}
|
||||||
@@ -96,6 +96,8 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||||
@@ -115,6 +117,8 @@ import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
@@ -216,9 +220,7 @@ abstract class FirDefaultVisitor<out R, in D> : FirVisitor<R, D>() {
|
|||||||
|
|
||||||
override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression, data: D): R = visitQualifiedAccessExpression(thisReceiverExpression, data)
|
override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression, data: D): R = visitQualifiedAccessExpression(thisReceiverExpression, data)
|
||||||
|
|
||||||
override fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): R = visitQualifiedAccessExpression(expressionWithSmartcast, data)
|
override fun <E : FirExpression> visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>, data: D): R = visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcastToNull, data)
|
||||||
|
|
||||||
override fun visitExpressionWithSmartcastToNull(expressionWithSmartcastToNull: FirExpressionWithSmartcastToNull, data: D): R = visitExpressionWithSmartcast(expressionWithSmartcastToNull, data)
|
|
||||||
|
|
||||||
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression, data: D): R = visitExpression(safeCallExpression, data)
|
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression, data: D): R = visitExpression(safeCallExpression, data)
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||||
@@ -115,6 +117,8 @@ import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
@@ -216,9 +220,7 @@ abstract class FirDefaultVisitorVoid : FirVisitorVoid() {
|
|||||||
|
|
||||||
override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression) = visitQualifiedAccessExpression(thisReceiverExpression)
|
override fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression) = visitQualifiedAccessExpression(thisReceiverExpression)
|
||||||
|
|
||||||
override fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast) = visitQualifiedAccessExpression(expressionWithSmartcast)
|
override fun <E : FirExpression> visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>) = visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcastToNull)
|
||||||
|
|
||||||
override fun visitExpressionWithSmartcastToNull(expressionWithSmartcastToNull: FirExpressionWithSmartcastToNull) = visitExpressionWithSmartcast(expressionWithSmartcastToNull)
|
|
||||||
|
|
||||||
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression) = visitExpression(safeCallExpression)
|
override fun visitSafeCallExpression(safeCallExpression: FirSafeCallExpression) = visitExpression(safeCallExpression)
|
||||||
|
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||||
@@ -115,6 +117,8 @@ import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
@@ -507,6 +511,14 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformElement(thisReceiverExpression, data)
|
return transformElement(thisReceiverExpression, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun <E : FirExpression> transformWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast: FirWrappedExpressionWithSmartcast<E>, data: D): FirWrappedExpressionWithSmartcast<E> {
|
||||||
|
return transformElement(wrappedExpressionWithSmartcast, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun <E : FirExpression> transformWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>, data: D): FirWrappedExpressionWithSmartcastToNull<E> {
|
||||||
|
return transformElement(wrappedExpressionWithSmartcastToNull, data)
|
||||||
|
}
|
||||||
|
|
||||||
open fun transformExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): FirStatement {
|
open fun transformExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): FirStatement {
|
||||||
return transformElement(expressionWithSmartcast, data)
|
return transformElement(expressionWithSmartcast, data)
|
||||||
}
|
}
|
||||||
@@ -583,6 +595,14 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformElement(whenSubjectExpression, data)
|
return transformElement(whenSubjectExpression, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun transformWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast: FirWhenSubjectExpressionWithSmartcast, data: D): FirStatement {
|
||||||
|
return transformElement(whenSubjectExpressionWithSmartcast, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun transformWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull: FirWhenSubjectExpressionWithSmartcastToNull, data: D): FirStatement {
|
||||||
|
return transformElement(whenSubjectExpressionWithSmartcastToNull, data)
|
||||||
|
}
|
||||||
|
|
||||||
open fun transformWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: D): FirStatement {
|
open fun transformWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: D): FirStatement {
|
||||||
return transformElement(wrappedDelegateExpression, data)
|
return transformElement(wrappedDelegateExpression, data)
|
||||||
}
|
}
|
||||||
@@ -1035,6 +1055,14 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformThisReceiverExpression(thisReceiverExpression, data)
|
return transformThisReceiverExpression(thisReceiverExpression, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun <E : FirExpression> visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast: FirWrappedExpressionWithSmartcast<E>, data: D): FirWrappedExpressionWithSmartcast<E> {
|
||||||
|
return transformWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun <E : FirExpression> visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>, data: D): FirWrappedExpressionWithSmartcastToNull<E> {
|
||||||
|
return transformWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull, data)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): FirStatement {
|
final override fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): FirStatement {
|
||||||
return transformExpressionWithSmartcast(expressionWithSmartcast, data)
|
return transformExpressionWithSmartcast(expressionWithSmartcast, data)
|
||||||
}
|
}
|
||||||
@@ -1111,6 +1139,14 @@ abstract class FirTransformer<in D> : FirVisitor<FirElement, D>() {
|
|||||||
return transformWhenSubjectExpression(whenSubjectExpression, data)
|
return transformWhenSubjectExpression(whenSubjectExpression, data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast: FirWhenSubjectExpressionWithSmartcast, data: D): FirStatement {
|
||||||
|
return transformWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull: FirWhenSubjectExpressionWithSmartcastToNull, data: D): FirStatement {
|
||||||
|
return transformWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull, data)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: D): FirStatement {
|
final override fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: D): FirStatement {
|
||||||
return transformWrappedDelegateExpression(wrappedDelegateExpression, data)
|
return transformWrappedDelegateExpression(wrappedDelegateExpression, data)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||||
@@ -115,6 +117,8 @@ import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
@@ -326,6 +330,10 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression, data: D): R = visitElement(thisReceiverExpression, data)
|
open fun visitThisReceiverExpression(thisReceiverExpression: FirThisReceiverExpression, data: D): R = visitElement(thisReceiverExpression, data)
|
||||||
|
|
||||||
|
open fun <E : FirExpression> visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast: FirWrappedExpressionWithSmartcast<E>, data: D): R = visitElement(wrappedExpressionWithSmartcast, data)
|
||||||
|
|
||||||
|
open fun <E : FirExpression> visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>, data: D): R = visitElement(wrappedExpressionWithSmartcastToNull, data)
|
||||||
|
|
||||||
open fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): R = visitElement(expressionWithSmartcast, data)
|
open fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: D): R = visitElement(expressionWithSmartcast, data)
|
||||||
|
|
||||||
open fun visitExpressionWithSmartcastToNull(expressionWithSmartcastToNull: FirExpressionWithSmartcastToNull, data: D): R = visitElement(expressionWithSmartcastToNull, data)
|
open fun visitExpressionWithSmartcastToNull(expressionWithSmartcastToNull: FirExpressionWithSmartcastToNull, data: D): R = visitElement(expressionWithSmartcastToNull, data)
|
||||||
@@ -364,6 +372,10 @@ abstract class FirVisitor<out R, in D> {
|
|||||||
|
|
||||||
open fun visitWhenSubjectExpression(whenSubjectExpression: FirWhenSubjectExpression, data: D): R = visitElement(whenSubjectExpression, data)
|
open fun visitWhenSubjectExpression(whenSubjectExpression: FirWhenSubjectExpression, data: D): R = visitElement(whenSubjectExpression, data)
|
||||||
|
|
||||||
|
open fun visitWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast: FirWhenSubjectExpressionWithSmartcast, data: D): R = visitElement(whenSubjectExpressionWithSmartcast, data)
|
||||||
|
|
||||||
|
open fun visitWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull: FirWhenSubjectExpressionWithSmartcastToNull, data: D): R = visitElement(whenSubjectExpressionWithSmartcastToNull, data)
|
||||||
|
|
||||||
open fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: D): R = visitElement(wrappedDelegateExpression, data)
|
open fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: D): R = visitElement(wrappedDelegateExpression, data)
|
||||||
|
|
||||||
open fun visitNamedReference(namedReference: FirNamedReference, data: D): R = visitElement(namedReference, data)
|
open fun visitNamedReference(namedReference: FirNamedReference, data: D): R = visitElement(namedReference, data)
|
||||||
|
|||||||
@@ -96,6 +96,8 @@ import org.jetbrains.kotlin.fir.expressions.FirDelegatedConstructorCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
import org.jetbrains.kotlin.fir.expressions.FirComponentCall
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThisReceiverExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
import org.jetbrains.kotlin.fir.expressions.FirSafeCallExpression
|
||||||
@@ -115,6 +117,8 @@ import org.jetbrains.kotlin.fir.expressions.FirStringConcatenationCall
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
import org.jetbrains.kotlin.fir.expressions.FirThrowExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
import org.jetbrains.kotlin.fir.expressions.FirVariableAssignment
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
|
||||||
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
import org.jetbrains.kotlin.fir.references.FirNamedReference
|
||||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||||
@@ -506,6 +510,14 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(thisReceiverExpression)
|
visitElement(thisReceiverExpression)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun <E : FirExpression> visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast: FirWrappedExpressionWithSmartcast<E>) {
|
||||||
|
visitElement(wrappedExpressionWithSmartcast)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun <E : FirExpression> visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>) {
|
||||||
|
visitElement(wrappedExpressionWithSmartcastToNull)
|
||||||
|
}
|
||||||
|
|
||||||
open fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast) {
|
open fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast) {
|
||||||
visitElement(expressionWithSmartcast)
|
visitElement(expressionWithSmartcast)
|
||||||
}
|
}
|
||||||
@@ -582,6 +594,14 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitElement(whenSubjectExpression)
|
visitElement(whenSubjectExpression)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
open fun visitWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast: FirWhenSubjectExpressionWithSmartcast) {
|
||||||
|
visitElement(whenSubjectExpressionWithSmartcast)
|
||||||
|
}
|
||||||
|
|
||||||
|
open fun visitWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull: FirWhenSubjectExpressionWithSmartcastToNull) {
|
||||||
|
visitElement(whenSubjectExpressionWithSmartcastToNull)
|
||||||
|
}
|
||||||
|
|
||||||
open fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression) {
|
open fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression) {
|
||||||
visitElement(wrappedDelegateExpression)
|
visitElement(wrappedDelegateExpression)
|
||||||
}
|
}
|
||||||
@@ -1034,6 +1054,14 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitThisReceiverExpression(thisReceiverExpression)
|
visitThisReceiverExpression(thisReceiverExpression)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun <E : FirExpression> visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast: FirWrappedExpressionWithSmartcast<E>, data: Nothing?) {
|
||||||
|
visitWrappedExpressionWithSmartcast(wrappedExpressionWithSmartcast)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun <E : FirExpression> visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull: FirWrappedExpressionWithSmartcastToNull<E>, data: Nothing?) {
|
||||||
|
visitWrappedExpressionWithSmartcastToNull(wrappedExpressionWithSmartcastToNull)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: Nothing?) {
|
final override fun visitExpressionWithSmartcast(expressionWithSmartcast: FirExpressionWithSmartcast, data: Nothing?) {
|
||||||
visitExpressionWithSmartcast(expressionWithSmartcast)
|
visitExpressionWithSmartcast(expressionWithSmartcast)
|
||||||
}
|
}
|
||||||
@@ -1110,6 +1138,14 @@ abstract class FirVisitorVoid : FirVisitor<Unit, Nothing?>() {
|
|||||||
visitWhenSubjectExpression(whenSubjectExpression)
|
visitWhenSubjectExpression(whenSubjectExpression)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
final override fun visitWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast: FirWhenSubjectExpressionWithSmartcast, data: Nothing?) {
|
||||||
|
visitWhenSubjectExpressionWithSmartcast(whenSubjectExpressionWithSmartcast)
|
||||||
|
}
|
||||||
|
|
||||||
|
final override fun visitWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull: FirWhenSubjectExpressionWithSmartcastToNull, data: Nothing?) {
|
||||||
|
visitWhenSubjectExpressionWithSmartcastToNull(whenSubjectExpressionWithSmartcastToNull)
|
||||||
|
}
|
||||||
|
|
||||||
final override fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: Nothing?) {
|
final override fun visitWrappedDelegateExpression(wrappedDelegateExpression: FirWrappedDelegateExpression, data: Nothing?) {
|
||||||
visitWrappedDelegateExpression(wrappedDelegateExpression)
|
visitWrappedDelegateExpression(wrappedDelegateExpression)
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-10
@@ -8,16 +8,8 @@ package org.jetbrains.kotlin.fir.expressions.builder
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcast
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionWithSmartcastImpl
|
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionWithSmartcastImpl
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
|
||||||
import org.jetbrains.kotlin.types.SmartcastStability
|
|
||||||
|
|
||||||
class FirExpressionWithSmartcastBuilder {
|
|
||||||
lateinit var originalExpression: FirQualifiedAccessExpression
|
|
||||||
lateinit var smartcastType: FirTypeRef
|
|
||||||
lateinit var typesFromSmartCast: Collection<ConeKotlinType>
|
|
||||||
lateinit var smartcastStability: SmartcastStability
|
|
||||||
|
|
||||||
|
class FirExpressionWithSmartcastBuilder : FirWrappedExpressionWithSmartcastBuilder<FirQualifiedAccessExpression>() {
|
||||||
fun build(): FirExpressionWithSmartcast {
|
fun build(): FirExpressionWithSmartcast {
|
||||||
return FirExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability)
|
return FirExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability)
|
||||||
}
|
}
|
||||||
@@ -25,4 +17,4 @@ class FirExpressionWithSmartcastBuilder {
|
|||||||
|
|
||||||
inline fun buildExpressionWithSmartcast(init: FirExpressionWithSmartcastBuilder.() -> Unit): FirExpressionWithSmartcast {
|
inline fun buildExpressionWithSmartcast(init: FirExpressionWithSmartcastBuilder.() -> Unit): FirExpressionWithSmartcast {
|
||||||
return FirExpressionWithSmartcastBuilder().apply(init).build()
|
return FirExpressionWithSmartcastBuilder().apply(init).build()
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-10
@@ -8,17 +8,8 @@ package org.jetbrains.kotlin.fir.expressions.builder
|
|||||||
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
import org.jetbrains.kotlin.fir.expressions.FirExpressionWithSmartcastToNull
|
||||||
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||||
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionWithSmartcastToNullImpl
|
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionWithSmartcastToNullImpl
|
||||||
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
|
||||||
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
|
||||||
import org.jetbrains.kotlin.types.SmartcastStability
|
|
||||||
|
|
||||||
class FirExpressionWithSmartcastToNullBuilder {
|
|
||||||
lateinit var originalExpression: FirQualifiedAccessExpression
|
|
||||||
lateinit var smartcastType: FirTypeRef
|
|
||||||
lateinit var typesFromSmartCast: Collection<ConeKotlinType>
|
|
||||||
lateinit var smartcastStability: SmartcastStability
|
|
||||||
lateinit var smartcastTypeWithoutNullableNothing: FirTypeRef
|
|
||||||
|
|
||||||
|
class FirExpressionWithSmartcastToNullBuilder : FirWrappedExpressionWithSmartcastToNullBuilder<FirQualifiedAccessExpression>() {
|
||||||
fun build(): FirExpressionWithSmartcastToNull {
|
fun build(): FirExpressionWithSmartcastToNull {
|
||||||
return FirExpressionWithSmartcastToNullImpl(
|
return FirExpressionWithSmartcastToNullImpl(
|
||||||
originalExpression,
|
originalExpression,
|
||||||
|
|||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions.builder
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcast
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.impl.FirWhenSubjectExpressionWithSmartcastImpl
|
||||||
|
|
||||||
|
class FirWhenSubjectExpressionWithSmartcastBuilder : FirWrappedExpressionWithSmartcastBuilder<FirWhenSubjectExpression>() {
|
||||||
|
fun build(): FirWhenSubjectExpressionWithSmartcast {
|
||||||
|
return FirWhenSubjectExpressionWithSmartcastImpl(originalExpression, smartcastType, typesFromSmartCast, smartcastStability)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun buildWhenSubjectExpressionWithSmartcast(init: FirWhenSubjectExpressionWithSmartcastBuilder.() -> Unit): FirWhenSubjectExpressionWithSmartcast {
|
||||||
|
return FirWhenSubjectExpressionWithSmartcastBuilder().apply(init).build()
|
||||||
|
}
|
||||||
+26
@@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions.builder
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpression
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirWhenSubjectExpressionWithSmartcastToNull
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.impl.FirWhenSubjectExpressionWithSmartcastToNullImpl
|
||||||
|
|
||||||
|
class FirWhenSubjectExpressionWithSmartcastToNullBuilder : FirWrappedExpressionWithSmartcastToNullBuilder<FirWhenSubjectExpression>() {
|
||||||
|
fun build(): FirWhenSubjectExpressionWithSmartcastToNull {
|
||||||
|
return FirWhenSubjectExpressionWithSmartcastToNullImpl(
|
||||||
|
originalExpression,
|
||||||
|
smartcastType,
|
||||||
|
typesFromSmartCast,
|
||||||
|
smartcastStability,
|
||||||
|
smartcastTypeWithoutNullableNothing
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun buildWhenSubjectExpressionWithSmartcastToNull(init: FirWhenSubjectExpressionWithSmartcastToNullBuilder.() -> Unit): FirWhenSubjectExpressionWithSmartcastToNull {
|
||||||
|
return FirWhenSubjectExpressionWithSmartcastToNullBuilder().apply(init).build()
|
||||||
|
}
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions.builder
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
|
||||||
|
abstract class FirWrappedExpressionWithSmartcastBuilder<E : FirExpression> {
|
||||||
|
lateinit var originalExpression: E
|
||||||
|
lateinit var smartcastType: FirTypeRef
|
||||||
|
lateinit var typesFromSmartCast: Collection<ConeKotlinType>
|
||||||
|
lateinit var smartcastStability: SmartcastStability
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class FirWrappedExpressionWithSmartcastToNullBuilder<E : FirExpression> : FirWrappedExpressionWithSmartcastBuilder<E>() {
|
||||||
|
lateinit var smartcastTypeWithoutNullableNothing: FirTypeRef
|
||||||
|
}
|
||||||
+50
@@ -0,0 +1,50 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirExpressionRef
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
|
||||||
|
class FirWhenSubjectExpressionWithSmartcastImpl(
|
||||||
|
override var originalExpression: FirWhenSubjectExpression,
|
||||||
|
override val smartcastType: FirTypeRef,
|
||||||
|
override val typesFromSmartCast: Collection<ConeKotlinType>,
|
||||||
|
override val smartcastStability: SmartcastStability
|
||||||
|
) : FirWhenSubjectExpressionWithSmartcast() {
|
||||||
|
init {
|
||||||
|
assert(originalExpression.typeRef is FirResolvedTypeRef)
|
||||||
|
}
|
||||||
|
|
||||||
|
override val source: KtSourceElement? get() = originalExpression.source
|
||||||
|
override val annotations: List<FirAnnotation> get() = originalExpression.annotations
|
||||||
|
override val whenRef: FirExpressionRef<FirWhenExpression> get() = originalExpression.whenRef
|
||||||
|
override val originalType: FirTypeRef get() = originalExpression.typeRef
|
||||||
|
override val isStable: Boolean get() = smartcastStability == SmartcastStability.STABLE_VALUE
|
||||||
|
|
||||||
|
override val typeRef: FirTypeRef get() = if (isStable) smartcastType else originalExpression.typeRef
|
||||||
|
|
||||||
|
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
||||||
|
|
||||||
|
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirWhenSubjectExpressionWithSmartcast {
|
||||||
|
throw IllegalStateException()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
|
originalExpression.accept(visitor, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
throw IllegalStateException()
|
||||||
|
}
|
||||||
|
}
|
||||||
+51
@@ -0,0 +1,51 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2021 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.fir.expressions.impl
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.KtSourceElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirElement
|
||||||
|
import org.jetbrains.kotlin.fir.FirExpressionRef
|
||||||
|
import org.jetbrains.kotlin.fir.expressions.*
|
||||||
|
import org.jetbrains.kotlin.fir.types.ConeKotlinType
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirResolvedTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirTypeRef
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirTransformer
|
||||||
|
import org.jetbrains.kotlin.fir.visitors.FirVisitor
|
||||||
|
import org.jetbrains.kotlin.types.SmartcastStability
|
||||||
|
|
||||||
|
class FirWhenSubjectExpressionWithSmartcastToNullImpl(
|
||||||
|
override var originalExpression: FirWhenSubjectExpression,
|
||||||
|
override val smartcastType: FirTypeRef,
|
||||||
|
override val typesFromSmartCast: Collection<ConeKotlinType>,
|
||||||
|
override val smartcastStability: SmartcastStability,
|
||||||
|
override val smartcastTypeWithoutNullableNothing: FirTypeRef
|
||||||
|
) : FirWhenSubjectExpressionWithSmartcastToNull() {
|
||||||
|
init {
|
||||||
|
assert(originalExpression.typeRef is FirResolvedTypeRef)
|
||||||
|
}
|
||||||
|
|
||||||
|
override val source: KtSourceElement? get() = originalExpression.source
|
||||||
|
override val annotations: List<FirAnnotation> get() = originalExpression.annotations
|
||||||
|
override val whenRef: FirExpressionRef<FirWhenExpression> get() = originalExpression.whenRef
|
||||||
|
override val originalType: FirTypeRef get() = originalExpression.typeRef
|
||||||
|
override val isStable: Boolean get() = smartcastStability == SmartcastStability.STABLE_VALUE
|
||||||
|
|
||||||
|
override val typeRef: FirTypeRef get() = if (isStable) smartcastType else originalExpression.typeRef
|
||||||
|
|
||||||
|
override fun replaceTypeRef(newTypeRef: FirTypeRef) {}
|
||||||
|
|
||||||
|
override fun <D> transformAnnotations(transformer: FirTransformer<D>, data: D): FirWhenSubjectExpressionWithSmartcastToNullImpl {
|
||||||
|
throw IllegalStateException()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
|
||||||
|
originalExpression.accept(visitor, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirElement {
|
||||||
|
throw IllegalStateException()
|
||||||
|
}
|
||||||
|
}
|
||||||
+6
-2
@@ -116,8 +116,10 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val componentCall by element(Expression, functionCall)
|
val componentCall by element(Expression, functionCall)
|
||||||
val callableReferenceAccess by element(Expression, qualifiedAccessExpression)
|
val callableReferenceAccess by element(Expression, qualifiedAccessExpression)
|
||||||
val thisReceiverExpression by element(Expression, qualifiedAccessExpression)
|
val thisReceiverExpression by element(Expression, qualifiedAccessExpression)
|
||||||
val expressionWithSmartcast by element(Expression, qualifiedAccessExpression)
|
val wrappedExpressionWithSmartcast by element(Expression)
|
||||||
val expressionWithSmartcastToNull by element(Expression, expressionWithSmartcast)
|
val wrappedExpressionWithSmartcastToNull by element(Expression, wrappedExpressionWithSmartcast)
|
||||||
|
val expressionWithSmartcast by element(Expression, qualifiedAccessExpression, wrappedExpressionWithSmartcast)
|
||||||
|
val expressionWithSmartcastToNull by element(Expression, expressionWithSmartcast, wrappedExpressionWithSmartcastToNull)
|
||||||
val safeCallExpression by element(Expression, expression)
|
val safeCallExpression by element(Expression, expression)
|
||||||
val checkedSafeCallSubject by element(Expression, expression)
|
val checkedSafeCallSubject by element(Expression, expression)
|
||||||
val getClassCall by element(Expression, expression, call)
|
val getClassCall by element(Expression, expression, call)
|
||||||
@@ -136,6 +138,8 @@ object FirTreeBuilder : AbstractFirTreeBuilder() {
|
|||||||
val throwExpression by element(Expression, expression)
|
val throwExpression by element(Expression, expression)
|
||||||
val variableAssignment by element(Expression, qualifiedAccess)
|
val variableAssignment by element(Expression, qualifiedAccess)
|
||||||
val whenSubjectExpression by element(Expression, expression)
|
val whenSubjectExpression by element(Expression, expression)
|
||||||
|
val whenSubjectExpressionWithSmartcast by element(Expression, whenSubjectExpression, wrappedExpressionWithSmartcast)
|
||||||
|
val whenSubjectExpressionWithSmartcastToNull by element(Expression, whenSubjectExpression, wrappedExpressionWithSmartcastToNull)
|
||||||
|
|
||||||
val wrappedDelegateExpression by element(Expression, wrappedExpression)
|
val wrappedDelegateExpression by element(Expression, wrappedExpression)
|
||||||
|
|
||||||
|
|||||||
+3
@@ -193,6 +193,9 @@ object ImplementationConfigurator : AbstractFirTreeImplementationConfigurator()
|
|||||||
noImpl(expressionWithSmartcast)
|
noImpl(expressionWithSmartcast)
|
||||||
noImpl(expressionWithSmartcastToNull)
|
noImpl(expressionWithSmartcastToNull)
|
||||||
|
|
||||||
|
noImpl(whenSubjectExpressionWithSmartcast)
|
||||||
|
noImpl(whenSubjectExpressionWithSmartcastToNull)
|
||||||
|
|
||||||
impl(getClassCall) {
|
impl(getClassCall) {
|
||||||
default("argument") {
|
default("argument") {
|
||||||
value = "argumentList.arguments.first()"
|
value = "argumentList.arguments.first()"
|
||||||
|
|||||||
+23
-8
@@ -476,8 +476,10 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
+intField("componentIndex")
|
+intField("componentIndex")
|
||||||
}
|
}
|
||||||
|
|
||||||
expressionWithSmartcast.configure {
|
wrappedExpressionWithSmartcast.configure {
|
||||||
+field("originalExpression", qualifiedAccessExpression)
|
withArg("E", expression)
|
||||||
|
+typeRefField
|
||||||
|
+field("originalExpression", "E", packageName = null)
|
||||||
+field("typesFromSmartCast", "Collection<ConeKotlinType>", null, customType = coneKotlinTypeType)
|
+field("typesFromSmartCast", "Collection<ConeKotlinType>", null, customType = coneKotlinTypeType)
|
||||||
+field("originalType", typeRef)
|
+field("originalType", typeRef)
|
||||||
+field("smartcastType", typeRef)
|
+field("smartcastType", typeRef)
|
||||||
@@ -485,13 +487,18 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
+smartcastStability
|
+smartcastStability
|
||||||
}
|
}
|
||||||
|
|
||||||
expressionWithSmartcastToNull.configure {
|
wrappedExpressionWithSmartcastToNull.configure {
|
||||||
+field("originalExpression", qualifiedAccessExpression)
|
withArg("E", expression)
|
||||||
+field("typesFromSmartCast", "Collection<ConeKotlinType>", null, customType = coneKotlinTypeType)
|
parentArg(wrappedExpressionWithSmartcast, "E", "E")
|
||||||
+field("originalType", typeRef)
|
|
||||||
+field("smartcastType", typeRef)
|
|
||||||
+field("smartcastTypeWithoutNullableNothing", typeRef)
|
+field("smartcastTypeWithoutNullableNothing", typeRef)
|
||||||
+smartcastStability
|
}
|
||||||
|
|
||||||
|
expressionWithSmartcast.configure {
|
||||||
|
parentArg(wrappedExpressionWithSmartcast, "E", qualifiedAccessExpression)
|
||||||
|
}
|
||||||
|
|
||||||
|
expressionWithSmartcastToNull.configure {
|
||||||
|
parentArg(wrappedExpressionWithSmartcastToNull, "E", qualifiedAccessExpression)
|
||||||
}
|
}
|
||||||
|
|
||||||
safeCallExpression.configure {
|
safeCallExpression.configure {
|
||||||
@@ -560,6 +567,14 @@ object NodeConfigurator : AbstractFieldConfigurator<FirTreeBuilder>(FirTreeBuild
|
|||||||
+field("whenRef", whenRefType)
|
+field("whenRef", whenRefType)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
whenSubjectExpressionWithSmartcast.configure {
|
||||||
|
parentArg(wrappedExpressionWithSmartcast, "E", whenSubjectExpression)
|
||||||
|
}
|
||||||
|
|
||||||
|
whenSubjectExpressionWithSmartcastToNull.configure {
|
||||||
|
parentArg(wrappedExpressionWithSmartcastToNull, "E", whenSubjectExpression)
|
||||||
|
}
|
||||||
|
|
||||||
wrappedExpression.configure {
|
wrappedExpression.configure {
|
||||||
+field(expression).withReplace()
|
+field(expression).withReplace()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user