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) {