[core] Remove processing stages#3810
Conversation
This also removes execution of old symbol table code.
|
|
||
| public class SymbolFacade { | ||
| public void initializeWith(ASTInput node) { | ||
| public final class SymbolFacade { |
There was a problem hiding this comment.
Should we mark that as well @InternalApi?
There was a problem hiding this comment.
I think so, but many other classes in this package should be internalized. The base symbol table classes should also be moved out of pmd-core into pmd PLSQL I think
Generated by 🚫 Danger |
The dogfood failure is probably caused by missing classes on the classpath, as I can't reproduce it locally with a full classpath, but can with an incomplete one.
f972083 to
ee0e751
Compare
|
@adangel The dogfood failure is caused by unresolved types in pmd-apex. It seems like the compiled classes of pmd apex cannot be resolved (I enabled logging of unresolved types in ee0e751): https://github.com/pmd/pmd/runs/5350631098?check_suite_focus=true#step:7:11118 |
Do we have a problem, how maven-pmd-plugin provides the classpath to PMD 7? The compiled classes should be there (target/classes). Nice logging, btw :) I think, I found the problem - PmdRunnable creates a ParserTask without the auxclasspath... |
See pmd/pmd#3810 Taken from #51 Co-authored-by: Clément Fournier <clement.fournier76@gmail.com>
Describe the PR
Remove support for the processing stages introduced by #1426. These stages are clunky and PMD 7 evolved in such a way that we don't need their features (namely, that these passes are optional and only run if a rule declares a dependency on it). The initial use case (way back in PMD 3) was to make type resolution optional while it was experimental and slow. The new Java type resolution of PMD 7 is neither, and most rules depend on it anyway, so it doesn't make sense to turn it off.
All processing stages are now non-optional in PMD 7. This concerns the Java, Modelica and PL/SQL modules. If there is a need to disable some stages at some point, it could be done by a language property #2518. The Java parser still supports turning off attribution passes, solely to test the parser output before disambiguation occurs (although I found out that no tests currently require it... ie there are some tests missing).
Related issues
Ready?
./mvnw clean verifypasses (checked automatically by github actions)