[K2] Allow using simple boolean expressions in constant position

Such behavior is not the same as in K1, but it is more consistent.

#KT-64400 Fixed
This commit is contained in:
Ivan Kylchik
2023-12-05 16:58:44 +01:00
committed by Space Team
parent 38ea2ce973
commit f8e9e99d87
13 changed files with 129 additions and 40 deletions
@@ -74,10 +74,10 @@ fun testArithmeticOperations() {
}
fun testLogicOperations() {
js("{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>!true<!>}; }")
js("{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>true or false<!>}; }")
js("{ var a = ${!true}; }")
js("{ var a = ${true or false}; }")
js("{ var a = ${true || false}; }")
js("{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>true and false<!>}; }")
js("{ var a = ${true and false}; }")
js("{ var a = ${true && false}; }")
js("{ var a = ${TRUE && false}; }")
@@ -85,14 +85,14 @@ fun testLogicOperations() {
}
fun testEq() {
js("{ var a = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>1 == 1<!>}; }")
js("{ var a = ${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 = ${<!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("{ var a = ${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 = ${<!JSCODE_ARGUMENT_NON_CONST_EXPRESSION!>UONE != 1U<!>}; }"<!>)
js("{ var a = ${"FOO" != STR}; }")