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 975a04b9073b6f14ddc5ab4ddc609ceb724f9bab
Author: Josh Tynjala <[email protected]>
AuthorDate: Thu Oct 31 14:28:32 2024 -0700

    formatter: fix missing space before instanceof
---
 .../apache/royale/formatter/ASTokenFormatter.java  |   1 +
 .../apache/royale/formatter/TestTypeOperators.java | 157 +++++++++++++++++++++
 2 files changed, 158 insertions(+)

diff --git 
a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java 
b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
index 86bfda418..a530d8690 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -401,6 +401,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                                        }
                                        case ASTokenTypes.TOKEN_KEYWORD_AS:
                                        case ASTokenTypes.TOKEN_KEYWORD_IS:
+                                       case 
ASTokenTypes.TOKEN_KEYWORD_INSTANCEOF:
                                        case 
ASTokenTypes.TOKEN_RESERVED_WORD_EACH:
                                        case 
ASTokenTypes.TOKEN_RESERVED_WORD_EXTENDS:
                                        case 
ASTokenTypes.TOKEN_RESERVED_WORD_IMPLEMENTS:
diff --git 
a/formatter/src/test/java/org/apache/royale/formatter/TestTypeOperators.java 
b/formatter/src/test/java/org/apache/royale/formatter/TestTypeOperators.java
new file mode 100644
index 000000000..8d14ec2af
--- /dev/null
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestTypeOperators.java
@@ -0,0 +1,157 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package org.apache.royale.formatter;
+
+import static org.junit.Assert.assertEquals;
+
+import org.junit.Test;
+
+public class TestTypeOperators extends BaseFormatterTests {
+       @Test
+       public void testInstanceofOperator() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "a instanceof b;",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "a instanceof b;",
+                               // @formatter:on
+                               result);
+       }
+       @Test
+       public void testInstanceofOperatorInParentheses() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "if (a instanceof b)\n" +
+                       "{\n" +
+                       "\tstatement;\n" +
+                       "}",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "if (a instanceof b)\n" +
+                               "{\n" +
+                               "\tstatement;\n" +
+                               "}",
+                               // @formatter:on
+                               result);
+       }
+
+       @Test
+       public void testIsOperator() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "a is b;",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "a is b;",
+                               // @formatter:on
+                               result);
+       }
+
+       @Test
+       public void testIsOperatorInIf() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "if (a is b)\n" +
+                       "{\n" +
+                       "\tstatement;\n" +
+                       "}",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "if (a is b)\n" +
+                               "{\n" +
+                               "\tstatement;\n" +
+                               "}",
+                               // @formatter:on
+                               result);
+       }
+
+       @Test
+       public void testAsOperator() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "a as b;",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "a as b;",
+                               // @formatter:on
+                               result);
+       }
+
+       @Test
+       public void testAsOperatorInAssignment() {
+               FormatterSettings settings = new FormatterSettings();
+               settings.insertSpaceBeforeAndAfterBinaryOperators = true;
+               settings.placeOpenBraceOnNewLine = true;
+               settings.insertSpaces = false;
+               ASTokenFormatter formatter = new ASTokenFormatter(settings);
+               String result = formatter.format("file.as",
+               // @formatter:off
+                       "var c = a as b;",
+                       // @formatter:on
+                       problems
+               );
+               assertEquals(
+               // @formatter:off
+                               "var c = a as b;",
+                               // @formatter:on
+                               result);
+       }
+}
\ No newline at end of file

Reply via email to