[FIR] fix
diff --git a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/declarations/KotlinStandaloneDeclarationProvider.kt b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/declarations/KotlinStandaloneDeclarationProvider.kt
index 8d9c3ab..e5bcf8c 100644
--- a/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/declarations/KotlinStandaloneDeclarationProvider.kt
+++ b/analysis/analysis-api-standalone/analysis-api-standalone-base/src/org/jetbrains/kotlin/analysis/api/standalone/base/declarations/KotlinStandaloneDeclarationProvider.kt
@@ -204,14 +204,14 @@
private inner class KtDeclarationRecorder : KtVisitorVoid() {
- private fun treeToStack(expression: KtBinaryExpression): MutableList<KtExpression> {
- val result = mutableListOf<KtExpression>(expression)
+ private fun treeToStack(expression: KtBinaryExpression): MutableList<PsiElement> {
+ val result = mutableListOf<PsiElement>(expression)
var currIdx = 0
while (currIdx < result.size) {
val currNode = result[currIdx]
if (currNode is KtBinaryExpression) {
- currNode.left?.let { result.add(currIdx + 1, it) }
- currNode.right?.let { result.add(currIdx + 2, it) }
+ var insertPos = currIdx + 1
+ currNode.children.forEach { result.add(insertPos++, it) }
}
currIdx++
}
diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnalyzingUtils.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnalyzingUtils.kt
index 769dc95c..2b074bd 100644
--- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnalyzingUtils.kt
+++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/AnalyzingUtils.kt
@@ -89,14 +89,14 @@
abstract class PsiErrorElementVisitor : KtTreeVisitorVoid() {
abstract override fun visitErrorElement(element: PsiErrorElement)
- private fun treeToStack(expression: KtBinaryExpression): MutableList<KtExpression> {
- val result = mutableListOf<KtExpression>(expression)
+ private fun treeToStack(expression: KtBinaryExpression): MutableList<PsiElement> {
+ val result = mutableListOf<PsiElement>(expression)
var currIdx = 0
while (currIdx < result.size) {
val currNode = result[currIdx]
if (currNode is KtBinaryExpression) {
- currNode.left?.let { result.add(currIdx + 1, it) }
- currNode.right?.let { result.add(currIdx + 2, it) }
+ var insertPos = currIdx + 1
+ currNode.children.forEach { result.add(insertPos++, it) }
}
currIdx++
}