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 c4573a6cbccb0060cf0e3f6b67d95be16073d594
Author: Josh Tynjala <[email protected]>
AuthorDate: Tue Dec 17 15:48:47 2024 -0800

    formatter, linter: filter out syntax warnings from compiler
    
    they aren't relevant to formatting or linting
    
    but keep warnings outside of the asparser syntax check
---
 .../org/apache/royale/formatter/ASTokenFormatter.java     |  8 ++++++++
 .../main/java/org/apache/royale/formatter/FORMATTER.java  | 15 +++------------
 .../src/main/java/org/apache/royale/linter/ASLinter.java  |  8 ++++++++
 3 files changed, 19 insertions(+), 12 deletions(-)

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 77ab80c40..2768c802f 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/ASTokenFormatter.java
@@ -28,6 +28,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.royale.compiler.clients.problems.CompilerProblemCategorizer;
 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;
@@ -41,6 +42,7 @@ import org.apache.royale.compiler.internal.tree.as.FileNode;
 import org.apache.royale.compiler.internal.workspaces.Workspace;
 import org.apache.royale.compiler.parsing.IASToken;
 import 
org.apache.royale.compiler.problems.CannotResolveConfigExpressionProblem;
+import org.apache.royale.compiler.problems.CompilerProblemSeverity;
 import org.apache.royale.compiler.problems.ICompilerProblem;
 import org.apache.royale.compiler.problems.UnexpectedExceptionProblem;
 import org.apache.royale.formatter.config.Semicolons;
@@ -146,7 +148,13 @@ public class ASTokenFormatter extends BaseTokenFormatter {
                }
 
                if (parser.getSyntaxProblems().size() > 0) {
+                       final CompilerProblemCategorizer categorizer = new 
CompilerProblemCategorizer();
                        for (ICompilerProblem problem : 
parser.getSyntaxProblems()) {
+                               CompilerProblemSeverity severity = 
categorizer.getProblemSeverity(problem);
+                               if 
(!CompilerProblemSeverity.ERROR.equals(severity)) {
+                                       // ignore syntax warnings. not the job 
of the formatter.
+                                       continue;
+                               }
                                if (problem instanceof 
CannotResolveConfigExpressionProblem) {
                                        // it's okay if config constants aren't 
resolved
                                        // we don't need to resolve anything
diff --git a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java 
b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
index 34c01953e..c819392d2 100644
--- a/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
+++ b/formatter/src/main/java/org/apache/royale/formatter/FORMATTER.java
@@ -258,21 +258,12 @@ public class FORMATTER {
                        System.err.println(e.getMessage());
                        exitCode = ExitCode.FAILED_WITH_EXCEPTIONS;
                } finally {
-                       final CompilerProblemCategorizer categorizer = new 
CompilerProblemCategorizer();
-                       ArrayList<ICompilerProblem> filteredProblems = new 
ArrayList<ICompilerProblem>();
-                       for (ICompilerProblem problem : 
problemQuery.getFilteredProblems()) {
-                       CompilerProblemSeverity severity = 
categorizer.getProblemSeverity(problem);
-                               // filter out everything that isn't an error
-                               if 
(!CompilerProblemSeverity.ERROR.equals(severity)) {
-                                       continue;
-                               }
-                               filteredProblems.add(problem);
-                       }
-                       if (filteredProblems.size() > 0) {
+                       if (problemQuery.hasFilteredProblems()) {
                                final Workspace workspace = new Workspace();
+                               final CompilerProblemCategorizer categorizer = 
new CompilerProblemCategorizer();
                                final ProblemFormatter formatter = new 
WorkspaceProblemFormatter(workspace, categorizer);
                                final ProblemPrinter printer = new 
ProblemPrinter(formatter);
-                               printer.printProblems(filteredProblems);
+                               
printer.printProblems(problemQuery.getFilteredProblems());
                                workspace.close();
                        }
                }
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 d54f5518a..7fdd34c19 100644
--- a/linter/src/main/java/org/apache/royale/linter/ASLinter.java
+++ b/linter/src/main/java/org/apache/royale/linter/ASLinter.java
@@ -29,6 +29,7 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.io.IOUtils;
+import org.apache.royale.compiler.clients.problems.CompilerProblemCategorizer;
 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;
@@ -40,6 +41,7 @@ import org.apache.royale.compiler.internal.tree.as.FileNode;
 import org.apache.royale.compiler.internal.workspaces.Workspace;
 import org.apache.royale.compiler.parsing.IASToken;
 import 
org.apache.royale.compiler.problems.CannotResolveConfigExpressionProblem;
+import org.apache.royale.compiler.problems.CompilerProblemSeverity;
 import org.apache.royale.compiler.problems.ICompilerProblem;
 import org.apache.royale.compiler.problems.UnexpectedExceptionProblem;
 import org.apache.royale.compiler.tree.ASTNodeID;
@@ -118,7 +120,13 @@ public class ASLinter extends BaseLinter {
                        }
 
                        if (parser.getSyntaxProblems().size() > 0) {
+                               final CompilerProblemCategorizer categorizer = 
new CompilerProblemCategorizer();
                                for (ICompilerProblem problem : 
parser.getSyntaxProblems()) {
+                                       CompilerProblemSeverity severity = 
categorizer.getProblemSeverity(problem);
+                                       if 
(!CompilerProblemSeverity.ERROR.equals(severity)) {
+                                               // ignore syntax warnings. not 
the job of the linter.
+                                               continue;
+                                       }
                                        if (problem instanceof 
CannotResolveConfigExpressionProblem) {
                                                // it's okay if config 
constants aren't resolved
                                                // we don't need to resolve 
anything

Reply via email to