From f125647f2345a3b62d930185626d7e035d2b4dd1 Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sat, 19 Oct 2024 17:15:22 +0300 Subject: [PATCH 1/8] #3707 Fix abstract generic builder mappings --- .../ap/spi/DefaultAccessorNamingStrategy.java | 9 +++- .../ap/test/bugs/_3707/AbstractDto.java | 38 +++++++++++++++ .../ap/test/bugs/_3707/BigIntegerDto.java | 40 ++++++++++++++++ .../ap/test/bugs/_3707/Issue3707Mapper.java | 14 ++++++ .../ap/test/bugs/_3707/Issue3707Test.java | 25 ++++++++++ .../ap/test/bugs/_3707/StringDto.java | 45 ++++++++++++++++++ .../test/bugs/_3707/Issue3707MapperImpl.java | 46 +++++++++++++++++++ 7 files changed, 215 insertions(+), 2 deletions(-) create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java create mode 100644 processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java create mode 100644 processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3707/Issue3707MapperImpl.java diff --git a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java index 82ecb4e17b..8e5e74c83b 100644 --- a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java +++ b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java @@ -7,6 +7,7 @@ import java.util.regex.Pattern; +import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; import javax.lang.model.type.DeclaredType; @@ -102,10 +103,14 @@ public boolean isSetterMethod(ExecutableElement method) { } protected boolean isFluentSetter(ExecutableElement method) { + TypeMirror returnType = method.getReturnType(); + Element enclosingType = method.getEnclosingElement(); + boolean isGenericReturnType = returnType.getKind() == TypeKind.TYPEVAR; + return method.getParameters().size() == 1 && - !JAVA_JAVAX_PACKAGE.matcher( method.getEnclosingElement().asType().toString() ).matches() && + !JAVA_JAVAX_PACKAGE.matcher( enclosingType.asType().toString() ).matches() && !isAdderWithUpperCase4thCharacter( method ) && - typeUtils.isAssignable( method.getReturnType(), method.getEnclosingElement().asType() ); + ( isGenericReturnType || typeUtils.isAssignable( returnType, enclosingType.asType() ) ); } /** diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java new file mode 100644 index 0000000000..c7d886379e --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java @@ -0,0 +1,38 @@ +package org.mapstruct.ap.test.bugs._3707; + +public abstract class AbstractDto { + private final String name; + private final Integer id; + + public abstract static class Builder { + private String name; + private Integer id; + + protected abstract T self(); + + public T name(String name) { + this.name = name; + return self(); + } + + public T id(Integer id) { + this.id = id; + return self(); + } + + public abstract AbstractDto build(); + } + + protected AbstractDto(Builder builder) { + this.name = builder.name; + this.id = builder.id; + } + + public String getName() { + return name; + } + + public int getId() { + return id; + } +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java new file mode 100644 index 0000000000..d4eb615401 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java @@ -0,0 +1,40 @@ +package org.mapstruct.ap.test.bugs._3707; + +import java.math.BigInteger; + +public class BigIntegerDto extends AbstractDto { + private final BigInteger value; + + public static class Builder extends AbstractDto.Builder { + + private BigInteger value; + + @Override + protected Builder self() { + return this; + } + + public Builder value(BigInteger value) { + this.value = value; + return self(); + } + + @Override + public BigIntegerDto build() { + return new BigIntegerDto(this); + } + } + + private BigIntegerDto(Builder builder) { + super(builder); + value = builder.value; + } + + public BigInteger getValue() { + return value; + } + + public static Builder builder() { + return new Builder(); + } +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java new file mode 100644 index 0000000000..690a16921d --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java @@ -0,0 +1,14 @@ +package org.mapstruct.ap.test.bugs._3707; + +import org.mapstruct.Mapper; +import org.mapstruct.factory.Mappers; + +@Mapper +public interface Issue3707Mapper { + + Issue3707Mapper INSTANCE = Mappers.getMapper( Issue3707Mapper.class ); + + StringDto clone(StringDto stringDto); + + BigIntegerDto clone(BigIntegerDto bigIntegerDto); +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java new file mode 100644 index 0000000000..b2ee85f9d2 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java @@ -0,0 +1,25 @@ +package org.mapstruct.ap.test.bugs._3707; + +import org.junit.jupiter.api.extension.RegisterExtension; +import org.mapstruct.ap.testutil.IssueKey; +import org.mapstruct.ap.testutil.ProcessorTest; +import org.mapstruct.ap.testutil.WithClasses; +import org.mapstruct.ap.testutil.runner.GeneratedSource; + +@WithClasses({ + Issue3707Mapper.class, + AbstractDto.class, + BigIntegerDto.class, + StringDto.class, +}) +@IssueKey("3707") +public class Issue3707Test { + + @RegisterExtension + final GeneratedSource generatedSource = new GeneratedSource() + .addComparisonToFixtureFor( Issue3707Mapper.class ); + + @ProcessorTest + void shouldCompile() { + } +} diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java new file mode 100644 index 0000000000..d73d30a9c9 --- /dev/null +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java @@ -0,0 +1,45 @@ +package org.mapstruct.ap.test.bugs._3707; + +public class StringDto extends AbstractDto { + private final String value; + public static class Builder extends AbstractDto.Builder { + + private String value; + + @Override + protected Builder self() { + return this; + } + + public Builder value(String value) { + this.value = value; + return self(); + } + + public Builder name(String value) { + return super.name(value); + } + + public Builder id(Integer value) { + return super.id(value); + } + + @Override + public StringDto build() { + return new StringDto(this); + } + } + + private StringDto(Builder builder) { + super(builder); + value = builder.value; + } + + public String getValue() { + return value; + } + + public static Builder builder() { + return new Builder(); + } +} diff --git a/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3707/Issue3707MapperImpl.java b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3707/Issue3707MapperImpl.java new file mode 100644 index 0000000000..7338e77ef2 --- /dev/null +++ b/processor/src/test/resources/fixtures/org/mapstruct/ap/test/bugs/_3707/Issue3707MapperImpl.java @@ -0,0 +1,46 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ +package org.mapstruct.ap.test.bugs._3707; + +import javax.annotation.processing.Generated; + +@Generated( + value = "org.mapstruct.ap.MappingProcessor", + date = "2024-10-19T17:05:14+0300", + comments = "version: , compiler: javac, environment: Java 17.0.10 (Private Build)" +) +public class Issue3707MapperImpl implements Issue3707Mapper { + + @Override + public StringDto clone(StringDto stringDto) { + if ( stringDto == null ) { + return null; + } + + StringDto.Builder stringDto1 = StringDto.builder(); + + stringDto1.value( stringDto.getValue() ); + stringDto1.name( stringDto.getName() ); + stringDto1.id( stringDto.getId() ); + + return stringDto1.build(); + } + + @Override + public BigIntegerDto clone(BigIntegerDto bigIntegerDto) { + if ( bigIntegerDto == null ) { + return null; + } + + BigIntegerDto.Builder bigIntegerDto1 = BigIntegerDto.builder(); + + bigIntegerDto1.name( bigIntegerDto.getName() ); + bigIntegerDto1.id( bigIntegerDto.getId() ); + bigIntegerDto1.value( bigIntegerDto.getValue() ); + + return bigIntegerDto1.build(); + } +} From e4abf0da744f803881ef7e4a5049effc22561b3c Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sat, 19 Oct 2024 17:55:52 +0300 Subject: [PATCH 2/8] #3707 Fix copyrights --- .../java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java | 5 +++++ .../java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java | 5 +++++ .../org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java | 5 +++++ .../java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java | 5 +++++ .../java/org/mapstruct/ap/test/bugs/_3707/StringDto.java | 5 +++++ 5 files changed, 25 insertions(+) diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java index c7d886379e..08ac0a5423 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java @@ -1,3 +1,8 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ package org.mapstruct.ap.test.bugs._3707; public abstract class AbstractDto { diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java index d4eb615401..76cb648007 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java @@ -1,3 +1,8 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ package org.mapstruct.ap.test.bugs._3707; import java.math.BigInteger; diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java index 690a16921d..369843ae20 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Mapper.java @@ -1,3 +1,8 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ package org.mapstruct.ap.test.bugs._3707; import org.mapstruct.Mapper; diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java index b2ee85f9d2..bfab2a23fd 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/Issue3707Test.java @@ -1,3 +1,8 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ package org.mapstruct.ap.test.bugs._3707; import org.junit.jupiter.api.extension.RegisterExtension; diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java index d73d30a9c9..000a9521cd 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java @@ -1,3 +1,8 @@ +/* + * Copyright MapStruct Authors. + * + * Licensed under the Apache License version 2.0, available at http://www.apache.org/licenses/LICENSE-2.0 + */ package org.mapstruct.ap.test.bugs._3707; public class StringDto extends AbstractDto { From f09cbd0467fc0790597e46accbf3c047ba54e54a Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sat, 19 Oct 2024 18:02:32 +0300 Subject: [PATCH 3/8] #3707 Fix codestyle --- .../org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java | 4 ++-- .../java/org/mapstruct/ap/test/bugs/_3707/StringDto.java | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java index 76cb648007..053e592e9c 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/BigIntegerDto.java @@ -26,12 +26,12 @@ public Builder value(BigInteger value) { @Override public BigIntegerDto build() { - return new BigIntegerDto(this); + return new BigIntegerDto( this ); } } private BigIntegerDto(Builder builder) { - super(builder); + super( builder ); value = builder.value; } diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java index 000a9521cd..a7aaf8a686 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/StringDto.java @@ -7,6 +7,7 @@ public class StringDto extends AbstractDto { private final String value; + public static class Builder extends AbstractDto.Builder { private String value; @@ -22,21 +23,21 @@ public Builder value(String value) { } public Builder name(String value) { - return super.name(value); + return super.name( value ); } public Builder id(Integer value) { - return super.id(value); + return super.id( value ); } @Override public StringDto build() { - return new StringDto(this); + return new StringDto( this ); } } private StringDto(Builder builder) { - super(builder); + super( builder ); value = builder.value; } From 2ac512f433244bb27c00913d193745680116fae4 Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sun, 3 Nov 2024 16:06:56 +0200 Subject: [PATCH 4/8] #3707 Resolve actual type for generic builder --- .../ap/spi/DefaultAccessorNamingStrategy.java | 46 +++++++++++++++++-- .../ap/test/bugs/_3707/AbstractDto.java | 1 + 2 files changed, 43 insertions(+), 4 deletions(-) diff --git a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java index 8e5e74c83b..646fb7fdf0 100644 --- a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java +++ b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java @@ -5,14 +5,17 @@ */ package org.mapstruct.ap.spi; +import java.util.List; import java.util.regex.Pattern; import javax.lang.model.element.Element; import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.TypeElement; +import javax.lang.model.element.TypeParameterElement; import javax.lang.model.type.DeclaredType; import javax.lang.model.type.TypeKind; import javax.lang.model.type.TypeMirror; +import javax.lang.model.type.TypeVariable; import javax.lang.model.util.Elements; import javax.lang.model.util.SimpleElementVisitor6; import javax.lang.model.util.SimpleTypeVisitor6; @@ -104,15 +107,50 @@ public boolean isSetterMethod(ExecutableElement method) { protected boolean isFluentSetter(ExecutableElement method) { TypeMirror returnType = method.getReturnType(); - Element enclosingType = method.getEnclosingElement(); - boolean isGenericReturnType = returnType.getKind() == TypeKind.TYPEVAR; + Element enclosingElement = method.getEnclosingElement(); + + TypeElement enclosingTypeElement = (TypeElement) enclosingElement; + + if ( returnType.getKind() == TypeKind.TYPEVAR + && isTypeVariableRepresentingBuilder( returnType, enclosingTypeElement ) ) { + returnType = enclosingTypeElement.asType(); + } return method.getParameters().size() == 1 && - !JAVA_JAVAX_PACKAGE.matcher( enclosingType.asType().toString() ).matches() && + !JAVA_JAVAX_PACKAGE.matcher( enclosingElement.asType().toString() ).matches() && !isAdderWithUpperCase4thCharacter( method ) && - ( isGenericReturnType || typeUtils.isAssignable( returnType, enclosingType.asType() ) ); + typeUtils.isAssignable( returnType, enclosingElement.asType() ); } + private boolean isTypeVariableRepresentingBuilder(TypeMirror typeVariable, TypeElement builderElement) { + if ( typeVariable.getKind() != TypeKind.TYPEVAR ) { + return false; + } + + String typeVarName = ((TypeVariable) typeVariable).asElement().getSimpleName().toString(); + + TypeElement currentElement = builderElement; + while ( currentElement != null ) { + List typeParameters = currentElement.getTypeParameters(); + + for ( TypeParameterElement typeParam : typeParameters ) { + if ( typeParam.getSimpleName().contentEquals( typeVarName ) ) { + return true; + } + } + + TypeMirror superclass = currentElement.getSuperclass(); + if ( superclass.getKind() == TypeKind.NONE + || superclass.toString().equals( Object.class.getCanonicalName() ) ) { + break; + } + currentElement = (TypeElement) ( (DeclaredType) superclass ).asElement(); + } + + return false; + } + + /** * Checks that the method is an adder with an upper case 4th character. The reason for this is that methods such * as {@code address(String address)} are considered as setter and {@code addName(String name)} too. We need to diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java index 08ac0a5423..5bf06df1ab 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java @@ -10,6 +10,7 @@ public abstract class AbstractDto { private final Integer id; public abstract static class Builder { +// public abstract static class Builder> { private String name; private Integer id; From 0d51d62fe74fd82895604dff3f110b759c0808f0 Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sun, 3 Nov 2024 16:14:04 +0200 Subject: [PATCH 5/8] #3707 Fix code style --- .../java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java | 1 - 1 file changed, 1 deletion(-) diff --git a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java index 646fb7fdf0..d1fea03829 100644 --- a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java +++ b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java @@ -150,7 +150,6 @@ private boolean isTypeVariableRepresentingBuilder(TypeMirror typeVariable, TypeE return false; } - /** * Checks that the method is an adder with an upper case 4th character. The reason for this is that methods such * as {@code address(String address)} are considered as setter and {@code addName(String name)} too. We need to From 314906018f111c2c1ae5f7188fe3d2d940c996b7 Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sun, 3 Nov 2024 16:24:24 +0200 Subject: [PATCH 6/8] #3707 Remove commented code --- .../test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java | 1 - 1 file changed, 1 deletion(-) diff --git a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java index 5bf06df1ab..08ac0a5423 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java +++ b/processor/src/test/java/org/mapstruct/ap/test/bugs/_3707/AbstractDto.java @@ -10,7 +10,6 @@ public abstract class AbstractDto { private final Integer id; public abstract static class Builder { -// public abstract static class Builder> { private String name; private Integer id; From 1ca370922900a977efe7d9839a0529fa17df4724 Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sun, 3 Nov 2024 16:30:37 +0200 Subject: [PATCH 7/8] #3707 Rerun CI --- .../java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java | 1 + 1 file changed, 1 insertion(+) diff --git a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java index d1fea03829..f74f5a6a96 100644 --- a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java +++ b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java @@ -122,6 +122,7 @@ && isTypeVariableRepresentingBuilder( returnType, enclosingTypeElement ) ) { typeUtils.isAssignable( returnType, enclosingElement.asType() ); } + private boolean isTypeVariableRepresentingBuilder(TypeMirror typeVariable, TypeElement builderElement) { if ( typeVariable.getKind() != TypeKind.TYPEVAR ) { return false; From 22e3f6f2690e52a4f43342838e99ebba95eda64e Mon Sep 17 00:00:00 2001 From: Obolrom Date: Sun, 3 Nov 2024 16:30:44 +0200 Subject: [PATCH 8/8] #3707 Rerun CI --- .../java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java | 1 - 1 file changed, 1 deletion(-) diff --git a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java index f74f5a6a96..d1fea03829 100644 --- a/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java +++ b/processor/src/main/java/org/mapstruct/ap/spi/DefaultAccessorNamingStrategy.java @@ -122,7 +122,6 @@ && isTypeVariableRepresentingBuilder( returnType, enclosingTypeElement ) ) { typeUtils.isAssignable( returnType, enclosingElement.asType() ); } - private boolean isTypeVariableRepresentingBuilder(TypeMirror typeVariable, TypeElement builderElement) { if ( typeVariable.getKind() != TypeKind.TYPEVAR ) { return false;