Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
4.0.0-beta-1
-
None
Description
I have the following Groovy program.
import java.util.function.Function; @groovy.transform.TypeChecked class A<X, Y> { void a() { Closure<Integer> x = { Function<Integer, Integer> x -> 1}; B b = new B(); x(b::b); } } class B { Integer b(Integer x) { return null; } }
Actual Behavior
The compiler crashes with the following stacktrace.
>>> a serious error occurred: null
>>> stacktrace:
java.lang.StackOverflowError
at java.base/java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.base/java.util.LinkedList$LLSpliterator.tryAdvance(LinkedList.java:1253)
at java.base/java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:127)
at java.base/java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:502)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:488)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.base/java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.base/java.util.stream.ReferencePipeline.noneMatch(ReferencePipeline.java:538)
at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferMethodReferenceType(StaticTypeCheckingVisitor.java:3681)
at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2794)
at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.inferMethodReferenceType(StaticTypeCheckingVisitor.java:3708)
at org.codehaus.groovy.transform.stc.StaticTypeCheckingVisitor.visitMethodCallArguments(StaticTypeCheckingVisitor.java:2794)
Expected Behavior
Compile successfully.
Comment
Tested against 4-beta-1, and master (commit: 868dabf9fadbddd13c7e8859556e4ed2796f7e1b).
Attachments
Issue Links
- is related to
-
GROOVY-10269 STC: Stackoverflow Error when passing function reference to closure
-
- Closed
-