You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by jo...@apache.org on 2022/11/29 20:46:44 UTC

[royale-compiler] 02/02: Tests: more nullish coalescing operator tests

This is an automated email from the ASF dual-hosted git repository.

joshtynjala pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit 4a6536f57057d59b625c349057a9cc64ef7bf2fa
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Tue Nov 29 12:43:21 2022 -0800

    Tests: more nullish coalescing operator tests
---
 .../java/as/ASNullishCoalescingOperatorTests.java  | 56 ++++++++++++++++++++++
 1 file changed, 56 insertions(+)

diff --git a/compiler/src/test/java/as/ASNullishCoalescingOperatorTests.java b/compiler/src/test/java/as/ASNullishCoalescingOperatorTests.java
index a58d777b1..5e593120d 100644
--- a/compiler/src/test/java/as/ASNullishCoalescingOperatorTests.java
+++ b/compiler/src/test/java/as/ASNullishCoalescingOperatorTests.java
@@ -81,4 +81,60 @@ public class ASNullishCoalescingOperatorTests extends ASFeatureTestsBase
 
         compileAndRun(source);
     }
+
+    @Test
+    public void testUnparenthesizedLogicalAndBefore()
+    {
+        String[] testCode = new String[]
+        {
+            "var bool:Boolean = true",
+            "var s:String = 'foo';",
+			"var result:Object = bool && s ?? 'bar';",
+        };
+        String source = getAS(new String[0], new String[0], testCode, new String[0]);
+
+        compileAndExpectErrors(source, false, false, false, new String[0], "Cannot use '??' unparenthesized within '||' and '&&' expressions.\n");
+    }
+
+    @Test
+    public void testUnparenthesizedLogicalAndAfter()
+    {
+        String[] testCode = new String[]
+        {
+            "var bool:Boolean = true",
+            "var s:String = 'foo';",
+			"var result:Object = s ?? 'bar' && bool;",
+        };
+        String source = getAS(new String[0], new String[0], testCode, new String[0]);
+
+        compileAndExpectErrors(source, false, false, false, new String[0], "Cannot use '??' unparenthesized within '||' and '&&' expressions.\n");
+    }
+
+    @Test
+    public void testUnparenthesizedLogicalOrBefore()
+    {
+        String[] testCode = new String[]
+        {
+            "var bool:Boolean = false",
+            "var s:String = 'foo';",
+			"var result:Object = bool || s ?? 'bar';",
+        };
+        String source = getAS(new String[0], new String[0], testCode, new String[0]);
+
+        compileAndExpectErrors(source, false, false, false, new String[0], "Cannot use '??' unparenthesized within '||' and '&&' expressions.\n");
+    }
+
+    @Test
+    public void testUnparenthesizedLogicalOrAfter()
+    {
+        String[] testCode = new String[]
+        {
+            "var bool:Boolean = false",
+            "var s:String = 'foo';",
+			"var result:Object = s ?? 'bar' || bool;",
+        };
+        String source = getAS(new String[0], new String[0], testCode, new String[0]);
+
+        compileAndExpectErrors(source, false, false, false, new String[0], "Cannot use '??' unparenthesized within '||' and '&&' expressions.\n");
+    }
 }