[JVM IR] Use reference equality when comparing enums.

This commit is contained in:
Mark Punzalan
2020-03-06 01:35:05 -08:00
committed by Alexander Udalov
parent a732e8f5fe
commit 368b0d9b0b
14 changed files with 82 additions and 7 deletions
@@ -240,8 +240,9 @@ class ObjectCompare(
companion object {
fun getObjectCompareOpcode(opToken: IElementType): Int = when (opToken) {
KtTokens.EQEQEQ -> IF_ACMPNE
KtTokens.EXCLEQEQEQ -> IF_ACMPEQ
// "==" and "!=" are here because enum values are compared using reference equality.
KtTokens.EQEQEQ, KtTokens.EQEQ -> IF_ACMPNE
KtTokens.EXCLEQEQEQ, KtTokens.EXCLEQ -> IF_ACMPEQ
else -> throw UnsupportedOperationException("don't know how to generate this condjump")
}
}