[fixes #3416] Ignore annotations during array detection

This commit is contained in:
Rawi01 committed 2023-04-29 09:24:11 +02:00
1 parent 3f51b25ac9
commit 8aa54b7f25
7 files changed
+88 -1

No files matched your search

@@ -206,7 +206,7 @@ public class HandleToString extends JavacAnnotationHandler<ToString> {
memberAccessor = createFieldAccessor(maker, memberNode, fieldAccess);
}
JCExpression memberType = getFieldType(memberNode, fieldAccess);
JCExpression memberType = removeTypeUseAnnotations(getFieldType(memberNode, fieldAccess));
// The distinction between primitive and object will be useful if we ever add a 'hideNulls' option.
@SuppressWarnings("unused")
@@ -0,0 +1,13 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
public class ToStringArray {
int[] primitiveArray;
Object[] objectArray;
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "ToStringArray(primitiveArray=" + java.util.Arrays.toString(this.primitiveArray) + ", objectArray=" + java.util.Arrays.deepToString(this.objectArray) + ")";
}
}
@@ -0,0 +1,22 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
public class ToStringArrayTypeAnnotations {
@TA
int[] primitiveArray1;
int @TA [] primitiveArray2;
@TA
Object[] objectArray1;
Object @TA [] objectArray2;
@Target({ElementType.TYPE_USE})
@interface TA {
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "ToStringArrayTypeAnnotations(primitiveArray1=" + java.util.Arrays.toString(this.primitiveArray1) + ", primitiveArray2=" + java.util.Arrays.toString(this.primitiveArray2) + ", objectArray1=" + java.util.Arrays.deepToString(this.objectArray1) + ", objectArray2=" + java.util.Arrays.deepToString(this.objectArray2) + ")";
}
}
@@ -0,0 +1,12 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
public @lombok.ToString class ToStringArray {
int[] primitiveArray;
Object[] objectArray;
public ToStringArray() {
super();
}
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
return (((("ToStringArray(primitiveArray=" + java.util.Arrays.toString(this.primitiveArray)) + ", objectArray=") + java.util.Arrays.deepToString(this.objectArray)) + ")");
}
}
@@ -0,0 +1,16 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
public @lombok.ToString class ToStringArrayTypeAnnotations {
@Target({ElementType.TYPE_USE}) @interface TA {
}
@TA int[] primitiveArray1;
int @TA [] primitiveArray2;
@TA Object[] objectArray1;
Object @TA [] objectArray2;
public ToStringArrayTypeAnnotations() {
super();
}
public @java.lang.Override @java.lang.SuppressWarnings("all") java.lang.String toString() {
return (((((((("ToStringArrayTypeAnnotations(primitiveArray1=" + java.util.Arrays.toString(this.primitiveArray1)) + ", primitiveArray2=") + java.util.Arrays.toString(this.primitiveArray2)) + ", objectArray1=") + java.util.Arrays.deepToString(this.objectArray1)) + ", objectArray2=") + java.util.Arrays.deepToString(this.objectArray2)) + ")");
}
}
@@ -0,0 +1,9 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@lombok.ToString
public class ToStringArray {
int[] primitiveArray;
Object[] objectArray;
}
@@ -0,0 +1,15 @@
import java.lang.annotation.ElementType;
import java.lang.annotation.Target;
@lombok.ToString
public class ToStringArrayTypeAnnotations {
@TA int[] primitiveArray1;
int @TA [] primitiveArray2;
@TA Object[] objectArray1;
Object @TA [] objectArray2;
@Target({ElementType.TYPE_USE})
@interface TA {
}
}