[FIR] Fix determination of which type is FIR type in tree generator

^KT-52832 Fixed
This commit is contained in:
Dmitriy Novozhilov
2022-06-20 13:45:45 +03:00
committed by teamcity
parent a7bae6f4c4
commit 80223bd555
15 changed files with 40 additions and 28 deletions
@@ -38,6 +38,7 @@ internal class FirCallableReferenceAccessImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -52,6 +53,7 @@ internal class FirCallableReferenceAccessImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirCallableReferenceAccessImpl {
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -47,6 +47,7 @@ internal class FirComponentCallImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
argumentList.accept(visitor, data)
calleeReference.accept(visitor, data)
@@ -62,6 +63,7 @@ internal class FirComponentCallImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirComponentCallImpl {
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
argumentList = argumentList.transform(transformer, data)
transformCalleeReference(transformer, data)
@@ -38,6 +38,7 @@ internal class FirDelegatedConstructorCallImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
annotations.forEach { it.accept(visitor, data) }
argumentList.accept(visitor, data)
contextReceiverArguments.forEach { it.accept(visitor, data) }
constructedTypeRef.accept(visitor, data)
calleeReference.accept(visitor, data)
}
@@ -45,6 +46,7 @@ internal class FirDelegatedConstructorCallImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirDelegatedConstructorCallImpl {
transformAnnotations(transformer, data)
argumentList = argumentList.transform(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
constructedTypeRef = constructedTypeRef.transform(transformer, data)
transformCalleeReference(transformer, data)
return this
@@ -41,6 +41,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -56,6 +57,7 @@ open class FirFunctionCallImpl @FirImplementationDetail constructor(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirFunctionCallImpl {
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -43,6 +43,7 @@ internal class FirImplicitInvokeCallImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -58,6 +59,7 @@ internal class FirImplicitInvokeCallImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirImplicitInvokeCallImpl {
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -41,6 +41,7 @@ internal class FirIntegerLiteralOperatorCallImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -56,6 +57,7 @@ internal class FirIntegerLiteralOperatorCallImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirIntegerLiteralOperatorCallImpl {
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -39,6 +39,7 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
calleeReference.accept(visitor, data)
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -53,6 +54,7 @@ class FirPropertyAccessExpressionImpl @FirImplementationDetail constructor(
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
transformCalleeReference(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -40,6 +40,7 @@ internal class FirThisReceiverExpressionImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
typeRef.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -54,6 +55,7 @@ internal class FirThisReceiverExpressionImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirThisReceiverExpressionImpl {
typeRef = typeRef.transform(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -44,6 +44,7 @@ internal class FirVariableAssignmentImpl(
override fun <R, D> acceptChildren(visitor: FirVisitor<R, D>, data: D) {
calleeReference.accept(visitor, data)
annotations.forEach { it.accept(visitor, data) }
contextReceiverArguments.forEach { it.accept(visitor, data) }
typeArguments.forEach { it.accept(visitor, data) }
explicitReceiver?.accept(visitor, data)
if (dispatchReceiver !== explicitReceiver) {
@@ -59,6 +60,7 @@ internal class FirVariableAssignmentImpl(
override fun <D> transformChildren(transformer: FirTransformer<D>, data: D): FirVariableAssignmentImpl {
transformCalleeReference(transformer, data)
transformAnnotations(transformer, data)
contextReceiverArguments.transformInplace(transformer, data)
transformTypeArguments(transformer, data)
explicitReceiver = explicitReceiver?.transform(transformer, data)
if (dispatchReceiver !== explicitReceiver) {