FIR: more comprehensive substitution of stub types after builder inference

This commit is contained in:
Jinseong Jeon
2020-11-23 14:58:01 -08:00
committed by Mikhail Glukhikh
parent 30c97e6cb4
commit 0a5b899aab
8 changed files with 49 additions and 35 deletions
@@ -7,12 +7,19 @@ package org.jetbrains.kotlin.fir.expressions.impl
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
import org.jetbrains.kotlin.fir.expressions.FirAbstractArgumentList
import org.jetbrains.kotlin.fir.expressions.FirArgumentList
import org.jetbrains.kotlin.fir.expressions.FirExpression
import org.jetbrains.kotlin.fir.visitors.FirTransformer
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.fir.visitors.transformSingle
class FirResolvedArgumentList internal constructor(
val mapping: LinkedHashMap<FirExpression, FirValueParameter>
mapping: LinkedHashMap<FirExpression, FirValueParameter>
) : FirAbstractArgumentList() {
var mapping: LinkedHashMap<FirExpression, FirValueParameter> = mapping
private set
override val arguments: List<FirExpression>
get() = mapping.keys.toList()
@@ -21,4 +28,9 @@ class FirResolvedArgumentList internal constructor(
argument.accept(visitor, data)
}
}
override fun <D> transformArguments(transformer: FirTransformer<D>, data: D): FirArgumentList {
mapping = mapping.mapKeys { (k, _) -> k.transformSingle(transformer, data) } as LinkedHashMap<FirExpression, FirValueParameter>
return this
}
}