KT-28235: Make sure array access produces unique elements

This requires generating calls on-demand in
LValueWithGetterAndSetterCalls.
This commit is contained in:
Dmitry Petrov
2018-11-15 18:06:21 +03:00
parent 080c177ed2
commit a0d74be7cf
4 changed files with 51 additions and 35 deletions
@@ -136,8 +136,18 @@ abstract class AbstractIrTextTestCase : AbstractIrGeneratorTestCase() {
}
}
private val elementsAreUniqueChecker = object : IrElementVisitorVoid {
private val elements = HashSet<IrElement>()
override fun visitElement(element: IrElement) {
require(elements.add(element)) { "Non-unique element: ${element.render()}" }
element.acceptChildrenVoid(this)
}
}
fun verifyWithAssert(irFile: IrFile) {
irFile.acceptChildrenVoid(this)
irFile.acceptChildrenVoid(elementsAreUniqueChecker)
TestCase.assertFalse(errorsAsMessage + "\n\n\n" + irFile.dump(), hasErrors)
}