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 2021/11/04 20:27:52 UTC

[royale-compiler] branch develop updated: StreamingASTokenizer: fix issue where metadata was not recognized after comments

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


The following commit(s) were added to refs/heads/develop by this push:
     new d56e53b  StreamingASTokenizer: fix issue where metadata was not recognized after comments
d56e53b is described below

commit d56e53b576ce7502c1bccdc857ff7c9eec538b8e
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Thu Nov 4 13:27:32 2021 -0700

    StreamingASTokenizer: fix issue where metadata was not recognized after comments
    
    This wasn't noticed before because comments are usually omitted from the token stream. However, comments are kept for the formatter, so it exposed the issue, and the behavior should match asdoc comments, which were not omitted before either.
---
 .../internal/parsing/as/StreamingASTokenizer.java  |  2 ++
 .../org/apache/royale/formatter/TestMetadata.java  | 42 ++++++++++++++++++++++
 2 files changed, 44 insertions(+)

diff --git a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java
index 93b67f5..efc9a53 100644
--- a/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java
+++ b/compiler/src/main/java/org/apache/royale/compiler/internal/parsing/as/StreamingASTokenizer.java
@@ -1391,6 +1391,8 @@ public class StreamingASTokenizer implements ASTokenTypes, IASTokenizer, Closeab
         {
             switch (lastToken.getType())
             {
+                case HIDDEN_TOKEN_SINGLE_LINE_COMMENT:
+                case HIDDEN_TOKEN_MULTI_LINE_COMMENT:
                 case TOKEN_ASDOC_COMMENT:
                 case TOKEN_SEMICOLON:
                 case TOKEN_ATTRIBUTE:
diff --git a/formatter/src/test/java/org/apache/royale/formatter/TestMetadata.java b/formatter/src/test/java/org/apache/royale/formatter/TestMetadata.java
index d678533..ffc1cdb 100644
--- a/formatter/src/test/java/org/apache/royale/formatter/TestMetadata.java
+++ b/formatter/src/test/java/org/apache/royale/formatter/TestMetadata.java
@@ -229,4 +229,46 @@ public class TestMetadata extends BaseFormatterTests {
 				// @formatter:on
 				result);
 	}
+
+	@Test
+	public void testAfterSingleLineComment() {
+		FORMATTER formatter = new FORMATTER();
+		formatter.insertSpaceBeforeAndAfterBinaryOperators = true;
+		formatter.placeOpenBraceOnNewLine = true;
+		formatter.insertSpaces = false;
+		String result = formatter.formatActionScriptText(
+		// @formatter:off
+			"// comment\n" +
+			"[UnknownMetaTag(attr1=\"one\")]\n",
+			// @formatter:on
+			problems
+		);
+		assertEquals(
+		// @formatter:off
+				"// comment\n" +
+				"[UnknownMetaTag(attr1=\"one\")]\n",
+				// @formatter:on
+				result);
+	}
+
+	@Test
+	public void testAfterMultiLineComment() {
+		FORMATTER formatter = new FORMATTER();
+		formatter.insertSpaceBeforeAndAfterBinaryOperators = true;
+		formatter.placeOpenBraceOnNewLine = true;
+		formatter.insertSpaces = false;
+		String result = formatter.formatActionScriptText(
+		// @formatter:off
+			"/* comment */\n" +
+			"[UnknownMetaTag(attr1=\"one\")]\n",
+			// @formatter:on
+			problems
+		);
+		assertEquals(
+		// @formatter:off
+				"/* comment */\n" +
+				"[UnknownMetaTag(attr1=\"one\")]\n",
+				// @formatter:on
+				result);
+	}
 }