Add kotest-runner-junit5-jvm as a dependency,
in pmd-java. This makes kotest discoverable
as Junit tests, which IDEs can pick up on (at
least IntelliJ does).
Update kotlin version to latest stable (1.3.72)
- Bug with captured tvar inference in IteratorBasedNStream
-> replaced by lambda
- Bug with improperly resolved nested type, around the antlr classes
-> fixed by qualifying the types. This is a scoping bug of the eclipse
compiler.
- Bug with `Node::children` not being resolved to the overridden variant
for `GenericNode<DummyNode>`, in tests using DummyRoot
-> a bug in the eclipse compiler. Problem looks like, this declaration
of DummyRoot is not handled correctly:
```java
class DummyRoot extends DummyNode implements RootNode {}
```
-> DummyNode implements GenericNode<DummyNode> transitively,
so inherits the refined version `NodeStream<? extends DummyNode> GenericNode<DummyNode>::children()`.
-> But RootNode extends Node directly, and eclipse sees that
its type for the inherited `children` method is `NodeStream<? extends Node> Node::children();`
-> A java compiler should prove that the method inherited from Node
through DummyRoot is overridden by the one inherited from GenericNode
through DummyNode
-> A workaround is to respecify that DummyRoot implements
`GenericNode<DummyNode>` explicitly:
```java
class DummyRoot extends DummyNode implements GenericNode<DummyNode>, RootNode {}
```
- Same thing with JavaNode, still because of RootNode (and AccessNode,
which incorrectly extended Node instead of JavaNode)
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.