File tree 2 files changed +25
-1
lines changed
main/java/org/openrewrite/java/tree
test/java/org/openrewrite/java/internal/template 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -715,7 +715,12 @@ public String getFullyQualifiedName() {
715
715
716
716
@ Override
717
717
public FullyQualified withFullyQualifiedName (String fullyQualifiedName ) {
718
- return type .withFullyQualifiedName (fullyQualifiedName );
718
+ FullyQualified qualified = type .withFullyQualifiedName (fullyQualifiedName );
719
+ if (type == qualified ) {
720
+ return this ;
721
+ }
722
+
723
+ return new Parameterized (managedReference , qualified , typeParameters );
719
724
}
720
725
721
726
@ Override
Original file line number Diff line number Diff line change @@ -89,6 +89,25 @@ void parameterized(String name) {
89
89
assertThat (TypeUtils .toString (type )).isEqualTo (name );
90
90
}
91
91
92
+ @ ParameterizedTest
93
+ @ ValueSource (strings = {
94
+ "java.util.List<java.lang.String>" ,
95
+ "java.util.Map<java.lang.String, java.lang.Integer>" ,
96
+ "java.util.List<? extends java.lang.Object>" ,
97
+ "java.util.List<? super java.lang.Integer>" ,
98
+ "java.util.List<java.util.List<? super java.lang.Integer>>" ,
99
+ })
100
+ void parameterizedWithModifierShouldNeverHideParametrizedType (String name ) {
101
+ TemplateParameterParser parser = new TemplateParameterParser (new CommonTokenStream (new TemplateParameterLexer (
102
+ CharStreams .fromString (name ))));
103
+ JavaType type = TypeParameter .toFullyQualifiedName (parser .type ());
104
+
105
+ JavaType .Parameterized pType = (JavaType .Parameterized ) type ;
106
+ assertThat (pType .withFullyQualifiedName ("test" )).isInstanceOf (JavaType .Parameterized .class );
107
+ assertThat (pType .withFullyQualifiedName ("test" )).isNotSameAs (pType );
108
+ assertThat (pType .withFullyQualifiedName (pType .getFullyQualifiedName ())).isSameAs (pType );
109
+ }
110
+
92
111
@ ParameterizedTest
93
112
@ ValueSource (strings = {
94
113
"java.util.List<?>" ,
You can’t perform that action at this time.
0 commit comments