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
