[IR BE] Remap dispatch receiver for inner ctor too

- do not forget to add into mapping dispatch receiver
 - fix KT-40686 (at least part of it)
 - add test
This commit is contained in:
Roman Artemev
2020-11-09 17:06:42 +03:00
parent 1ced0138ff
commit 94acfa50bd
10 changed files with 74 additions and 2 deletions
@@ -97,10 +97,18 @@ private fun InnerClassesSupport.primaryConstructorParameterMap(originalConstruct
val loweredConstructor = getInnerClassConstructorWithOuterThisParameter(originalConstructor)
originalConstructor.valueParameters.forEach { old ->
oldConstructorParameterToNew[old] = loweredConstructor.valueParameters[old.index + 1]
var index = 0
originalConstructor.dispatchReceiverParameter?.let {
oldConstructorParameterToNew[it] = loweredConstructor.valueParameters[index++]
}
originalConstructor.valueParameters.forEach { old ->
oldConstructorParameterToNew[old] = loweredConstructor.valueParameters[index++]
}
assert(loweredConstructor.valueParameters.size == index)
return oldConstructorParameterToNew
}