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
