FIR: fix delegate expression consistency tests

This commit is contained in:
Mikhail Glukhikh
2019-07-19 16:03:35 +03:00
parent d32e5065c5
commit 2381aa330a
@@ -14,11 +14,10 @@ import com.intellij.psi.PsiFile
import com.intellij.psi.tree.IElementType
import com.intellij.util.PathUtil
import org.jetbrains.kotlin.KtNodeTypes
import org.jetbrains.kotlin.fir.FirElement
import org.jetbrains.kotlin.fir.FirRenderer
import org.jetbrains.kotlin.fir.FirSessionBase
import org.jetbrains.kotlin.fir.*
import org.jetbrains.kotlin.fir.declarations.FirFile
import org.jetbrains.kotlin.fir.render
import org.jetbrains.kotlin.fir.expressions.FirWrappedDelegateExpression
import org.jetbrains.kotlin.fir.expressions.impl.FirWrappedDelegateExpressionImpl
import org.jetbrains.kotlin.fir.types.FirTypeRef
import org.jetbrains.kotlin.fir.visitors.CompositeTransformResult
import org.jetbrains.kotlin.fir.visitors.FirTransformer
@@ -130,8 +129,10 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase(
val elementDump = StringBuilder().also { element.accept(FirRenderer(it)) }.toString()
throw AssertionError("FirElement ${element.javaClass} is visited twice: $elementDump")
}
} else {
} else if (element !is FirWrappedDelegateExpression) {
element.acceptChildren(this)
} else {
element.delegateProvider.accept(this)
}
}
}
@@ -145,8 +146,10 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase(
val elementDump = StringBuilder().also { element.accept(FirRenderer(it)) }.toString()
throw AssertionError("FirElement ${element.javaClass} is visited twice: $elementDump")
}
} else {
} else if (element !is FirWrappedDelegateExpressionImpl) {
element.transformChildren(this, Unit)
} else {
element.delegateProvider = element.delegateProvider.transformSingle(this, data)
}
return CompositeTransformResult.single(element)
}