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 2026/01/13 00:12:03 UTC

(royale-compiler) 02/04: ASTokenFormatter, ASLinter: normalize file path and provide ASFileScope to fix assertion errors

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 ee996cd366070f992802b5c257522ecbc092d5ea
Author: Josh Tynjala <jo...@apache.org>
AuthorDate: Mon Jan 12 14:31:11 2026 -0800

    ASTokenFormatter, ASLinter: normalize file path and provide ASFileScope to fix assertion errors
---
 .../src/main/java/org/apache/royale/formatter/ASTokenFormatter.java | 5 +++++
 linter/src/main/java/org/apache/royale/linter/ASLinter.java         | 6 +++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

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 93faae15f..6cc27810a 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -38,6 +38,7 @@ import org.apache.royale.compiler.internal.parsing.as.MetadataToken;
 import org.apache.royale.compiler.internal.parsing.as.MetadataTokenTypes;
 import org.apache.royale.compiler.internal.parsing.as.RepairingTokenBuffer;
 import org.apache.royale.compiler.internal.parsing.as.StreamingASTokenizer;
+import org.apache.royale.compiler.internal.scopes.ASFileScope;
 import org.apache.royale.compiler.internal.tree.as.FileNode;
 import org.apache.royale.compiler.internal.workspaces.Workspace;
 import org.apache.royale.compiler.parsing.IASToken;
@@ -47,6 +48,7 @@ import org.apache.royale.compiler.problems.ICompilerProblem;
 import org.apache.royale.compiler.problems.UnexpectedExceptionProblem;
 import org.apache.royale.formatter.config.Semicolons;
 import org.apache.royale.formatter.internal.BaseTokenFormatter;
+import org.apache.royale.utils.FilenameNormalization;
 
 public class ASTokenFormatter extends BaseTokenFormatter {
 	private static final int TOKEN_TYPE_EXTRA = 999999;
@@ -91,6 +93,8 @@ public class ASTokenFormatter extends BaseTokenFormatter {
 			problems = new ArrayList<ICompilerProblem>();
 		}
 
+		filePath = FilenameNormalization.normalize(filePath);
+
 		StringReader textReader = new StringReader(text);
 		StreamingASTokenizer tokenizer = null;
 		ASToken[] streamingTokens = null;
@@ -132,6 +136,7 @@ public class ASTokenFormatter extends BaseTokenFormatter {
 		ASParser parser = new ASParser(workspace, buffer);
 		parser.setFilename(filePath);
 		FileNode node = new FileNode(workspace);
+		node.setScope(new ASFileScope(node));
 		try {
 			parser.file(node);
 		} catch (Exception e) {
diff --git a/linter/src/main/java/org/apache/royale/linter/ASLinter.java b/linter/src/main/java/org/apache/royale/linter/ASLinter.java
index dce93f9f4..7f73971be 100644
--- a/linter/src/main/java/org/apache/royale/linter/ASLinter.java
+++ b/linter/src/main/java/org/apache/royale/linter/ASLinter.java
@@ -31,13 +31,13 @@ import java.util.Map;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.royale.compiler.clients.problems.CompilerProblemCategorizer;
-import org.apache.royale.compiler.common.ISourceLocation;
 import org.apache.royale.compiler.internal.parsing.as.ASParser;
 import org.apache.royale.compiler.internal.parsing.as.ASToken;
 import org.apache.royale.compiler.internal.parsing.as.ASTokenTypes;
 import org.apache.royale.compiler.internal.parsing.as.IncludeHandler;
 import org.apache.royale.compiler.internal.parsing.as.RepairingTokenBuffer;
 import org.apache.royale.compiler.internal.parsing.as.StreamingASTokenizer;
+import org.apache.royale.compiler.internal.scopes.ASFileScope;
 import org.apache.royale.compiler.internal.semantics.PostProcessStep;
 import org.apache.royale.compiler.internal.tree.as.FileNode;
 import org.apache.royale.compiler.internal.workspaces.Workspace;
@@ -49,6 +49,7 @@ import org.apache.royale.compiler.problems.UnexpectedExceptionProblem;
 import org.apache.royale.compiler.tree.ASTNodeID;
 import org.apache.royale.compiler.tree.as.IASNode;
 import org.apache.royale.linter.internal.BaseLinter;
+import org.apache.royale.utils.FilenameNormalization;
 
 public class ASLinter extends BaseLinter {
 	private static final String LINTER_TAG_OFF = "@linter:off";
@@ -63,6 +64,8 @@ public class ASLinter extends BaseLinter {
 			allProblems = new ArrayList<ICompilerProblem>();
 		}
 
+		filePath = FilenameNormalization.normalize(filePath);
+
 		List<ICompilerProblem> fileProblems = new ArrayList<ICompilerProblem>();
 		try {
 			StringReader textReader = new StringReader(text);
@@ -106,6 +109,7 @@ public class ASLinter extends BaseLinter {
 			ASParser parser = new ASParser(workspace, buffer);
 			parser.setFilename(filePath);
 			FileNode node = new FileNode(workspace);
+			node.setScope(new ASFileScope(node));
 			try {
 				parser.parseFile(node, EnumSet.of(PostProcessStep.CALCULATE_OFFSETS));
 			} catch (Exception e) {