[FIR] Forbid to use equality and unsigned comparison in const expression

#KT-62683
This commit is contained in:
Ivan Kylchik
2023-10-27 18:47:33 +02:00
committed by Space Team
parent 8715bd6189
commit fd4a3a0b88
10 changed files with 191 additions and 7 deletions
@@ -87,25 +87,25 @@ fun testLogicOperations() {
fun testEq() {
js("{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1 == 1<!>}; }")
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1U == 1U<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${UONE == 1U}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>UONE == 1U<!>}; }"<!>)
js("{ var a = ${"FOO" == STR}; }")
js("{ var a = ${TRUE == null}; }")
js("{ var a = ${STR == null}; }")
js("{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1 != 1<!>}; }")
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1U != 1U<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${UONE != 1U}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>UONE != 1U<!>}; }"<!>)
js("{ var a = ${"FOO" != STR}; }")
js("{ var a = ${TRUE != null}; }")
js("{ var a = ${STR != null}; }")
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1 === 1<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${TRUE === false}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${CHAR === 's'}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>TRUE === false<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>CHAR === 's'<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1 !== 1<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${TRUE !== false}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${CHAR !== 's'}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>TRUE !== false<!>}; }"<!>)
js(<!JSCODE_CAN_NOT_VERIFY_JAVASCRIPT!>"{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>CHAR !== 's'<!>}; }"<!>)
}
fun testCmp() {