Merge pull request #10313 from tamasvajk/kotlin-fix-vararg

Kotlin: Fix `vararg` extraction outside of method call
This commit is contained in:
Tamás Vajk
2022-09-12 15:54:50 +02:00
committed by GitHub
4 changed files with 27 additions and 2 deletions

View File

@@ -3105,7 +3105,13 @@ open class KotlinFileExtractor(
extractTypeOperatorCall(e, callable, exprParent.parent, exprParent.idx, exprParent.enclosingStmt)
}
is IrVararg -> {
logger.errorElement("Unexpected IrVararg", e)
if (e.elements.size != 1 || e.elements[0] !is IrSpreadElement) {
logger.errorElement("Unexpected IrVararg", e)
return
}
// There are lowered IR cases when the vararg expression is not within a call, such as
// val temp0 = [*expr]
extractExpression((e.elements[0] as IrSpreadElement).expression, callable, parent)
}
is IrGetObjectValue -> {
// For `object MyObject { ... }`, the .class has an