diff --git a/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java b/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java index 60bb09718..c6842ce59 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java +++ b/processor/src/main/java/org/mapstruct/ap/model/assignment/MethodReference.java @@ -23,11 +23,11 @@ import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Set; + import org.mapstruct.ap.model.Assignment; import org.mapstruct.ap.model.FactoryMethod; import org.mapstruct.ap.model.MapperReference; import org.mapstruct.ap.model.MappingMethod; - import org.mapstruct.ap.model.common.ConversionContext; import org.mapstruct.ap.model.common.Parameter; import org.mapstruct.ap.model.common.Type; @@ -74,7 +74,7 @@ public class MethodReference extends MappingMethod implements Assignment, Factor super( method ); this.declaringMapper = declaringMapper; this.contextParam = null; - Set imported = new HashSet( method.getThrownTypes() ); + Set imported = new HashSet( method.getThrownTypes() ); if ( targetType != null ) { imported.add( targetType ); } @@ -130,7 +130,7 @@ public class MethodReference extends MappingMethod implements Assignment, Factor @Override public Set getImportTypes() { - Set imported = org.mapstruct.ap.util.Collections.asSet( importTypes, super.getImportTypes() ); + Set imported = new HashSet( importTypes ); if ( assignment != null ) { imported.addAll( assignment.getImportTypes() ); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/imports/ConflictingTypesNamesTest.java b/processor/src/test/java/org/mapstruct/ap/test/imports/ConflictingTypesNamesTest.java index 44a46260c..66475c52b 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/imports/ConflictingTypesNamesTest.java +++ b/processor/src/test/java/org/mapstruct/ap/test/imports/ConflictingTypesNamesTest.java @@ -95,7 +95,13 @@ public class ConflictingTypesNamesTest { assertThat( target ).isNotNull(); assertThat( target.getNotImported() ).isSameAs( source.getNotImported() ); + target = SecondSourceTargetMapper.INSTANCE.sourceToTarget( source ); + + assertThat( target ).isNotNull(); + assertThat( target.getNotImported() ).isSameAs( source.getNotImported() ); + generatedSource.forMapper( SourceTargetMapper.class ).containsNoImportFor( NotImportedDatatype.class ); + generatedSource.forMapper( SecondSourceTargetMapper.class ).containsNoImportFor( NotImportedDatatype.class ); } @Test diff --git a/processor/src/test/java/org/mapstruct/ap/test/imports/SecondSourceTargetMapper.java b/processor/src/test/java/org/mapstruct/ap/test/imports/SecondSourceTargetMapper.java index 225ad9673..3023af033 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/imports/SecondSourceTargetMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/imports/SecondSourceTargetMapper.java @@ -20,6 +20,8 @@ package org.mapstruct.ap.test.imports; import org.mapstruct.Mapper; import org.mapstruct.ap.test.imports.referenced.GenericMapper; +import org.mapstruct.ap.test.imports.referenced.Source; +import org.mapstruct.ap.test.imports.referenced.Target; import org.mapstruct.ap.test.imports.to.FooWrapper; import org.mapstruct.factory.Mappers; @@ -32,4 +34,6 @@ public interface SecondSourceTargetMapper { SecondSourceTargetMapper INSTANCE = Mappers.getMapper( SecondSourceTargetMapper.class ); FooWrapper fooWrapperToFooWrapper(org.mapstruct.ap.test.imports.from.FooWrapper foo); + + Target sourceToTarget(Source source); } diff --git a/processor/src/test/java/org/mapstruct/ap/test/imports/referenced/GenericMapper.java b/processor/src/test/java/org/mapstruct/ap/test/imports/referenced/GenericMapper.java index e127cf51e..20da025c6 100644 --- a/processor/src/test/java/org/mapstruct/ap/test/imports/referenced/GenericMapper.java +++ b/processor/src/test/java/org/mapstruct/ap/test/imports/referenced/GenericMapper.java @@ -37,4 +37,8 @@ public class GenericMapper { return null; } + + public NotImportedDatatype identity(NotImportedDatatype notImported) { + return notImported; + } }