Affects PMD Version: 7.9.0, 7.10.0
Description:
Encountered in pmd-designer, when trying to upgrade to 7.10.0 from 7.8.0, see pmd/pmd-designer#120
The following code in pmd-designer triggers this exception:
protected Subscription observeInputs() { return ReactfxExtensions.dynamic(base, (e, i) -> ticks.apply(e).subscribe(k -> this.notifyObservers(Collections::emptyList))) .and(LiveList.observeQuasiChanges(base, this::notifyObservers)); }
Exception Stacktrace:
java.lang.IllegalArgumentException: <?> cannot be a wildcard bound
at net.sourceforge.pmd.lang.java.types.TypeSystem.wildcard(TypeSystem.java:648)
at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:36)
at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:17)
at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:997)
at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:78)
at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:54)
at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:997)
at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:78)
at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$substClasses$1(TypeOps.java:977)
at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:997)
at net.sourceforge.pmd.lang.java.types.TypeOps.substClasses(TypeOps.java:977)
at net.sourceforge.pmd.lang.java.symbols.internal.asm.GenericSigBase$LazyClassSignature.getSuperItfs(GenericSigBase.java:204)
at net.sourceforge.pmd.lang.java.symbols.internal.asm.ClassStub.getSuperInterfaceTypes(ClassStub.java:315)
at net.sourceforge.pmd.lang.java.types.ClassTypeImpl.getSuperInterfaces(ClassTypeImpl.java:302)
at net.sourceforge.pmd.lang.java.symbols.table.internal.SuperTypesEnumerator$SuperTypeWalker.enqueue(SuperTypesEnumerator.java:153)
at net.sourceforge.pmd.lang.java.symbols.table.internal.SuperTypesEnumerator$SuperTypeWalker.computeNext(SuperTypesEnumerator.java:144)
at net.sourceforge.pmd.util.IteratorUtil$AbstractIterator.hasNext(IteratorUtil.java:535)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:132)
at java.base/java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578)
at net.sourceforge.pmd.lang.java.types.TypeOps.getMethodsOf(TypeOps.java:1950)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:73)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:26)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:292)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:270)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.BaseInvocMirror.getStandaloneCtdecl(BaseInvocMirror.java:74)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getStandaloneType(MethodInvocMirror.java:37)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:98)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.lambda$isLambdaCongruent$6(ExprCheckHelper.java:625)
at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.callListeners(InferenceContext.java:398)
at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.solve(InferenceContext.java:550)
at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.solve(InferenceContext.java:511)
at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.solve(InferenceContext.java:496)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.tryToSolve(Infer.java:639)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateImpl(Infer.java:588)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMaybeNoInfer(Infer.java:561)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethod(Infer.java:405)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.instantiateMethodOrCtor(Infer.java:385)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.logInference(Infer.java:368)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.finishInstantiation(Infer.java:348)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:213)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:165)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:357)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:362)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:102)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:68)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.MethodInvocMirror.getAccessibleCandidates(MethodInvocMirror.java:26)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:292)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:270)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:203)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:165)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:357)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:362)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:102)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:39)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.lambda$forceTypeResolutionPhase$0(InternalApiBridge.java:92)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at net.sourceforge.pmd.lang.ast.internal.IteratorBasedNStream.forEach(IteratorBasedNStream.java:102)
at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.forceTypeResolutionPhase(InternalApiBridge.java:90)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$3(JavaAstProcessor.java:135)
at net.sourceforge.pmd.benchmark.TimeTracker.bench(TimeTracker.java:163)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:135)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:166)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:150)
at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:69)
at net.sourceforge.pmd.lang.java.ast.JavaParser.parseImpl(JavaParser.java:25)
at net.sourceforge.pmd.lang.ast.impl.javacc.JjtreeParserAdapter.parse(JjtreeParserAdapter.java:36)
at net.sourceforge.pmd.lang.impl.PmdRunnable.parse(PmdRunnable.java:112)
at net.sourceforge.pmd.lang.impl.PmdRunnable.processSource(PmdRunnable.java:132)
at net.sourceforge.pmd.lang.impl.PmdRunnable.run(PmdRunnable.java:80)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
Error: [ERROR] PMD processing errors:
Error: /home/runner/work/pmd-designer/pmd-designer/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/reactfx/ObservableTickList.java: ContextedRuntimeException: java.lang.IllegalArgumentException: <?> cannot be a wildcard bound
Exception Context:
[1:Resolving type of=!debug only! [MethodCall:36:58]ticks.apply(e).subscribe(k -> this.notifyObservers(Collections::emptyList))]
[2:Location=!debug only! /home/runner/work/pmd-designer/pmd-designer/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/reactfx/ObservableTickList.java:36:58]
Code Sample demonstrating the issue:
I seem to be able to reproduce it with the following class, only using standard Java API:
import java.util.*; import java.util.function.*; class TickList<E> { private Function<? super E, ? extends List<?>> ticks; public void run() { BiFunction<E, Integer, String> f = (e, i) -> "" + ticks.apply(e).removeIf(k -> false); } }At least, by adding this test to CaptureTest.kt, I get a similar stacktrace
Add the following snippet here:
test("test wildcard") { val acu = javaParser.parse( """ import java.util.*; import java.util.function.*; class TickList<E> { private Function<? super E, ? extends List<?>> ticks; public void run() { BiFunction<E, Integer, String> f = (e, i) -> "" + ticks.apply(e).removeIf(k -> false); } } """.trimIndent() ) }
Resulting stacktrace:
java.lang.IllegalArgumentException: <?> cannot be a wildcard bound
org.apache.commons.lang3.exception.ContextedRuntimeException: java.lang.IllegalArgumentException: <?> cannot be a wildcard bound
Exception Context:
[1:Resolving type of=!debug only! [MethodCall:7:55]ticks.apply(e).removeIf(k -> false)]
[2:Location=!debug only! (unknown):7:55]
[3:Resolving type of=!debug only! [InfixExpression:7:50]"" + ticks.apply(e).removeIf(k -> false)]
[4:Location=!debug only! (unknown):7:50]
[5:Resolving type of=!debug only! [LambdaExpression:7:40](e, i) -> "" + ticks.apply(e).removeIf(k -> false)]
[6:Location=!debug only! (unknown):7:40]
---------------------------------
at net.sourceforge.pmd.util.AssertionUtil.contexted(AssertionUtil.java:236)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:54)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.getTypeMirror(ASTMethodCall.java:22)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:457)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:102)
at net.sourceforge.pmd.lang.java.ast.ASTInfixExpression.acceptVisitor(ASTInfixExpression.java:45)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
at net.sourceforge.pmd.lang.java.ast.ASTInfixExpression.getTypeMirror(ASTInfixExpression.java:34)
at net.sourceforge.pmd.lang.java.types.internal.infer.ast.StandaloneExprMirror.getStandaloneType(StandaloneExprMirror.java:21)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:98)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.lambda$isLambdaCongruent$6(ExprCheckHelper.java:625)
at net.sourceforge.pmd.lang.java.types.internal.infer.InferenceContext.addInstantiationListener(InferenceContext.java:375)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isLambdaCongruent(ExprCheckHelper.java:607)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isLambdaCompatible(ExprCheckHelper.java:540)
at net.sourceforge.pmd.lang.java.types.internal.infer.ExprCheckHelper.isCompatible(ExprCheckHelper.java:128)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.addBoundOrDefer(Infer.java:935)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferFunctionalExprInUnambiguousContext(Infer.java:140)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferLambdaOrMref(PolyResolution.java:206)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:196)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:357)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:372)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:102)
at net.sourceforge.pmd.lang.java.ast.ASTLambdaExpression.acceptVisitor(ASTLambdaExpression.java:136)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
at net.sourceforge.pmd.lang.java.ast.ASTLambdaExpression.getTypeMirror(ASTLambdaExpression.java:24)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:39)
at net.sourceforge.pmd.lang.java.ast.ASTLambdaExpression.getTypeMirror(ASTLambdaExpression.java:41)
at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.lambda$forceTypeResolutionPhase$0(InternalApiBridge.java:92)
at java.base/java.util.Iterator.forEachRemaining(Iterator.java:133)
at net.sourceforge.pmd.lang.ast.internal.IteratorBasedNStream.forEach(IteratorBasedNStream.java:102)
at net.sourceforge.pmd.lang.java.ast.InternalApiBridge.forceTypeResolutionPhase(InternalApiBridge.java:90)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.lambda$process$3(JavaAstProcessor.java:135)
at net.sourceforge.pmd.benchmark.TimeTracker.bench(TimeTracker.java:163)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:135)
at net.sourceforge.pmd.lang.java.internal.JavaAstProcessor.process(JavaAstProcessor.java:166)
at net.sourceforge.pmd.lang.java.JavaParsingHelper.doParse(JavaParsingHelper.java:87)
at net.sourceforge.pmd.lang.java.JavaParsingHelper.doParse(JavaParsingHelper.java:43)
at net.sourceforge.pmd.lang.test.ast.BaseParsingHelper.parse(BaseParsingHelper.kt:135)
at net.sourceforge.pmd.lang.test.ast.BaseParsingHelper.parse$default(BaseParsingHelper.kt:125)
at net.sourceforge.pmd.lang.java.types.CaptureTest$1$1$1$7.invokeSuspend(CaptureTest.kt:126)
at net.sourceforge.pmd.lang.java.types.CaptureTest$1$1$1$7.invoke(CaptureTest.kt)
at net.sourceforge.pmd.lang.java.types.CaptureTest$1$1$1$7.invoke(CaptureTest.kt)
at io.kotest.core.spec.style.scopes.RootScopeKt$addTest$1.invokeSuspend(RootScope.kt:36)
at io.kotest.core.spec.style.scopes.RootScopeKt$addTest$1.invoke(RootScope.kt)
at io.kotest.core.spec.style.scopes.RootScopeKt$addTest$1.invoke(RootScope.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$innerExecute$1.invokeSuspend(TestCaseExecutor.kt:91)
at io.kotest.engine.test.TestCaseExecutor$execute$innerExecute$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$innerExecute$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.CoroutineDebugProbeInterceptor.intercept(CoroutineDebugProbeInterceptor.kt:29)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestInvocationInterceptor$runBeforeTestAfter$executeWithBeforeAfter$1.invokeSuspend(TestInvocationInterceptor.kt:63)
at io.kotest.engine.test.TestInvocationInterceptor$runBeforeTestAfter$executeWithBeforeAfter$1.invoke(TestInvocationInterceptor.kt)
at io.kotest.engine.test.TestInvocationInterceptor$runBeforeTestAfter$executeWithBeforeAfter$1.invoke(TestInvocationInterceptor.kt)
at io.kotest.engine.test.interceptors.InvocationTimeoutInterceptor$intercept$3.invokeSuspend(InvocationTimeoutInterceptor.kt:43)
at io.kotest.engine.test.interceptors.InvocationTimeoutInterceptor$intercept$3.invoke(InvocationTimeoutInterceptor.kt)
at io.kotest.engine.test.interceptors.InvocationTimeoutInterceptor$intercept$3.invoke(InvocationTimeoutInterceptor.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturnIgnoreTimeout(Undispatched.kt:72)
at kotlinx.coroutines.TimeoutKt.setupTimeout(Timeout.kt:148)
at kotlinx.coroutines.TimeoutKt.withTimeoutOrNull(Timeout.kt:104)
at io.kotest.engine.test.interceptors.InvocationTimeoutInterceptor.intercept(InvocationTimeoutInterceptor.kt:42)
at io.kotest.engine.test.TestInvocationInterceptor$runBeforeTestAfter$wrappedTest$1$1.invokeSuspend(TestInvocationInterceptor.kt:70)
at io.kotest.engine.test.TestInvocationInterceptor$runBeforeTestAfter$wrappedTest$1$1.invoke(TestInvocationInterceptor.kt)
at io.kotest.engine.test.TestInvocationInterceptor$runBeforeTestAfter$wrappedTest$1$1.invoke(TestInvocationInterceptor.kt)
at io.kotest.engine.test.TestInvocationInterceptor.runBeforeTestAfter(TestInvocationInterceptor.kt:73)
at io.kotest.engine.test.TestInvocationInterceptor.access$runBeforeTestAfter(TestInvocationInterceptor.kt:14)
at io.kotest.engine.test.TestInvocationInterceptor$intercept$2$1.invokeSuspend(TestInvocationInterceptor.kt:36)
at io.kotest.engine.test.TestInvocationInterceptor$intercept$2$1.invoke(TestInvocationInterceptor.kt)
at io.kotest.engine.test.TestInvocationInterceptor$intercept$2$1.invoke(TestInvocationInterceptor.kt)
at io.kotest.mpp.ReplayKt.replay(replay.kt:15)
at io.kotest.engine.test.TestInvocationInterceptor$intercept$2.invokeSuspend(TestInvocationInterceptor.kt:32)
at io.kotest.engine.test.TestInvocationInterceptor$intercept$2.invoke(TestInvocationInterceptor.kt)
at io.kotest.engine.test.TestInvocationInterceptor$intercept$2.invoke(TestInvocationInterceptor.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:61)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:261)
at io.kotest.engine.test.TestInvocationInterceptor.intercept(TestInvocationInterceptor.kt:31)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.interceptors.MarkAbortedExceptionsAsSkippedTestInterceptor.intercept(MarkAbortedExceptionsAsSkippedTestInterceptor.kt:23)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.ExpectExceptionTestInterceptor.intercept(ExpectExceptionTestInterceptor.kt:18)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.TimeoutInterceptor.intercept(TimeoutInterceptor.kt:33)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.BlockedThreadTimeoutInterceptor.intercept(BlockedThreadTimeoutInterceptor.kt:79)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.CoroutineLoggingInterceptor.intercept(CoroutineLoggingInterceptor.kt:30)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.SoftAssertInterceptor.intercept(SoftAssertInterceptor.kt:27)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.AssertionModeInterceptor.intercept(AssertionModeInterceptor.kt:25)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.LifecycleInterceptor.intercept(LifecycleInterceptor.kt:50)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.TestCaseExtensionInterceptor$intercept$2.invokeSuspend(TestCaseExtensionInterceptor.kt:24)
at io.kotest.engine.test.interceptors.TestCaseExtensionInterceptor$intercept$2.invoke(TestCaseExtensionInterceptor.kt)
at io.kotest.engine.test.interceptors.TestCaseExtensionInterceptor$intercept$2.invoke(TestCaseExtensionInterceptor.kt)
at io.kotest.engine.test.TestExtensions.intercept(TestExtensions.kt:148)
at io.kotest.engine.test.interceptors.TestCaseExtensionInterceptor.intercept(TestCaseExtensionInterceptor.kt:24)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.BeforeSpecListenerInterceptor$intercept$runTest$1$2.invokeSuspend(BeforeSpecListenerInterceptor.kt:43)
at io.kotest.engine.test.interceptors.BeforeSpecListenerInterceptor$intercept$runTest$1$2.invoke(BeforeSpecListenerInterceptor.kt)
at io.kotest.engine.test.interceptors.BeforeSpecListenerInterceptor$intercept$runTest$1$2.invoke(BeforeSpecListenerInterceptor.kt)
at io.kotest.engine.test.interceptors.BeforeSpecListenerInterceptor.intercept(BeforeSpecListenerInterceptor.kt:60)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.TestEnabledCheckInterceptor.intercept(TestEnabledCheckInterceptor.kt:31)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.CoroutineErrorCollectorInterceptor$intercept$3.invokeSuspend(CoroutineErrorCollectorInterceptor.kt:34)
at io.kotest.engine.test.interceptors.CoroutineErrorCollectorInterceptor$intercept$3.invoke(CoroutineErrorCollectorInterceptor.kt)
at io.kotest.engine.test.interceptors.CoroutineErrorCollectorInterceptor$intercept$3.invoke(CoroutineErrorCollectorInterceptor.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:61)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:163)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source)
at io.kotest.engine.test.interceptors.CoroutineErrorCollectorInterceptor.intercept(CoroutineErrorCollectorInterceptor.kt:33)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invokeSuspend(TestCaseExecutor.kt:100)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.TestCaseExecutor$execute$3$1.invoke(TestCaseExecutor.kt)
at io.kotest.engine.test.interceptors.CoroutineDispatcherFactoryInterceptor$intercept$4.invokeSuspend(coroutineDispatcherFactoryInterceptor.kt:57)
at io.kotest.engine.test.interceptors.CoroutineDispatcherFactoryInterceptor$intercept$4.invoke(coroutineDispatcherFactoryInterceptor.kt)
at io.kotest.engine.test.interceptors.CoroutineDispatcherFactoryInterceptor$intercept$4.invoke(coroutineDispatcherFactoryInterceptor.kt)
at io.kotest.engine.concurrency.FixedThreadCoroutineDispatcherFactory$withDispatcher$4.invokeSuspend(FixedThreadCoroutineDispatcherFactory.kt:59)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith$$$capture(ContinuationImpl.kt:33)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1575)
Caused by: java.lang.IllegalArgumentException: <?> cannot be a wildcard bound
at net.sourceforge.pmd.lang.java.types.TypeSystem.wildcard(TypeSystem.java:648)
at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:36)
at net.sourceforge.pmd.lang.java.types.WildcardTypeImpl.subst(WildcardTypeImpl.java:17)
at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:997)
at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:78)
at net.sourceforge.pmd.lang.java.types.JClassType.subst(JClassType.java:54)
at net.sourceforge.pmd.lang.java.types.TypeOps.lambda$subst$0(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.types.TypeOps.mapPreservingSelf(TypeOps.java:997)
at net.sourceforge.pmd.lang.java.types.TypeOps.subst(TypeOps.java:970)
at net.sourceforge.pmd.lang.java.symbols.internal.asm.ExecutableStub.getFormalParameterTypes(ExecutableStub.java:101)
at net.sourceforge.pmd.lang.java.types.ClassMethodSigImpl.getFormalParameters(ClassMethodSigImpl.java:115)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.isPotentiallyApplicable(Infer.java:1024)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.computeCompileTimeDecl(Infer.java:293)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.getCompileTimeDecl(Infer.java:270)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.goToInvocationWithFallback(Infer.java:203)
at net.sourceforge.pmd.lang.java.types.internal.infer.Infer.inferInvocationRecursively(Infer.java:165)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.inferInvocation(PolyResolution.java:263)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.polyTypeOtherCtx(PolyResolution.java:135)
at net.sourceforge.pmd.lang.java.types.ast.internal.PolyResolution.computePolyType(PolyResolution.java:125)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.handlePoly(LazyTypeResolver.java:357)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:362)
at net.sourceforge.pmd.lang.java.types.ast.internal.LazyTypeResolver.visit(LazyTypeResolver.java:102)
at net.sourceforge.pmd.lang.java.ast.ASTMethodCall.acceptVisitor(ASTMethodCall.java:71)
at net.sourceforge.pmd.lang.java.ast.AbstractJavaTypeNode.getTypeMirror(AbstractJavaTypeNode.java:51)
... 150 more
Running PMD through: *Maven
Maybe related issues from the past:
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4