A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/pmd/pmd/issues/5493 below:

<?> cannot be a wildcard bound · Issue #5493 · pmd/pmd · GitHub

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));
    }

(https://github.com/pmd/pmd-designer/blob/5a3f8d419cec3b5fb4bd0f23e72bd082a1c89c47/src/main/java/net/sourceforge/pmd/util/fxdesigner/util/reactfx/ObservableTickList.java#L35-L38)

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