-
Notifications
You must be signed in to change notification settings - Fork 101
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
What version of OpenRewrite are you using?
I am using Moderne.io, current.
How are you running OpenRewrite?
I am using Moderne.io and triggered UseVar Recipe.
And discovered the problem in various Spring Projects like spring-shell
What is the smallest, simplest way to reproduce the problem?
class A {
static <T> void generic() {
List<T> lst = new ArrayList<>();
}
void unbound() {
List<?> lst = new ArrayList<>();
}
void inception() {
List<List<Object>> lst = new ArrayList<>();
}
}
What did you expect to see?
class A {
static <T> void generic() {
var lst = new ArrayList<T>();
}
void unbound() {
var lst = new ArrayList<>();
}
void inception() {
var lst = new ArrayList<List<Object>>();
}
}
What did you see instead?
Generic
class org.openrewrite.java.tree.JavaType$GenericTypeVariable cannot be cast to class org.openrewrite.java.tree.JavaType$Class (org.openrewrite.java.tree.JavaType$GenericTypeVariable and org.openrewrite.java.tree.JavaType$Class are in unnamed module of loader 'app')
Unbound
class org.openrewrite.java.tree.JavaType$GenericTypeVariable cannot be cast to class org.openrewrite.java.tree.JavaType$Class (org.openrewrite.java.tree.JavaType$GenericTypeVariable and org.openrewrite.java.tree.JavaType$Class are in unnamed module of loader 'app')
Inception
class org.openrewrite.java.tree.JavaType$Parameterized cannot be cast to class org.openrewrite.java.tree.JavaType$Class (org.openrewrite.java.tree.JavaType$Parameterized and org.openrewrite.java.tree.JavaType$Class are in unnamed module of loader 'app')
What is the full stack trace of any errors you encountered?
Generic
java.lang.ClassCastException: class org.openrewrite.java.tree.JavaType$GenericTypeVariable cannot be cast to class org.openrewrite.java.tree.JavaType$Class (org.openrewrite.java.tree.JavaType$GenericTypeVariable and org.openrewrite.java.tree.JavaType$Class are in unnamed module of loader 'app')
org.openrewrite.java.migrate.lang.var.UseVarForGenericsConstructors$UseVarForGenericsVisitor.lambda$transformToVar$0(UseVarForGenericsConstructors.java:121)
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
...
Unbound
java.lang.ClassCastException: class org.openrewrite.java.tree.JavaType$GenericTypeVariable cannot be cast to class org.openrewrite.java.tree.JavaType$Class (org.openrewrite.java.tree.JavaType$GenericTypeVariable and org.openrewrite.java.tree.JavaType$Class are in unnamed module of loader 'app')
org.openrewrite.java.migrate.lang.var.UseVarForGenericsConstructors$UseVarForGenericsVisitor.lambda$transformToVar$0(UseVarForGenericsConstructors.java:121)
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
...
Inception
java.lang.ClassCastException: class org.openrewrite.java.tree.JavaType$Parameterized cannot be cast to class org.openrewrite.java.tree.JavaType$Class (org.openrewrite.java.tree.JavaType$Parameterized and org.openrewrite.java.tree.JavaType$Class are in unnamed module of loader 'app')
org.openrewrite.java.migrate.lang.var.UseVarForGenericsConstructors$UseVarForGenericsVisitor.lambda$transformToVar$0(UseVarForGenericsConstructors.java:121)
java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)
java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)
java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)
java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
...
Are you interested in contributing a fix to OpenRewrite?
yup.
timtebeek
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working
Type
Projects
Status
Done