LanguageVersionHandler#getTypeResolutionFacade is deprecated. Moved the VfExpressionTypeVisitor creation and execution to VfParser#parse instead.
ParsingOptionsTest located in pmd-test wasn't running previously because it was in the src/main hierarchy. Moved this test into the src/test hierarchy and consolidated the methods from the
similarly named class from pmd-core.
Rewrite assertions for better error messages
The difference is 32 tokens instead of 30;
this is because previously, AnyTokenizer
tokenized `window.alert` as a single token. Now
it tokenizes it a `window`, `.`, `alert`.
The columns that are reported by CPD were inconsistent across languages
before. A language like Java (using a JavaCC-based tokenizer) would use
a width of 8 for tabs, whereas a language like C# (using an Antlr-based
tokenizer) would use 1 instead.
This includes unit tests for most languages to ensure a tab character is
counted as 1. The configuration for JavaCC has been adjusted to respect
this as well.
This removes junit-vintage-engine as a test dependency
as well as kotlintest-runner-junit5.
The engines are only needed during test execution, but should
not be available for test compilation.
For this to work, the latest surefire plugin is required.
source-type is actually only needed if
* the language supports more than one version
* the parser behaves differently with different versions
(this has to do with compatibility, e.g. assert/enum keywords
in java)
* the test needs a newer version than the default version
(e.g. to test new language features)
* the test needs an older version than the default version
(e.g. the rule has a maximumLanguageVersion specified)
* the rule behaves differently for different versions
(e.g. BigIntegerInstantiation)