diff --git a/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java index d4a7bdb4f..2daf00136 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java +++ b/processor/src/main/java/org/mapstruct/ap/model/IterableMappingMethod.java @@ -179,6 +179,9 @@ public class IterableMappingMethod extends MappingMethod { } if ( ( factoryMethod == null ) && ( !isExistingInstanceMapping() ) ) { types.addAll( getReturnType().getImportTypes() ); + if ( getReturnType().getImplementationType() != null ) { + types.addAll( getReturnType().getImplementationType().getImportTypes() ); + } } return types; } diff --git a/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java b/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java index c4e8065bc..37c3ad15c 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java +++ b/processor/src/main/java/org/mapstruct/ap/model/MapMappingMethod.java @@ -217,6 +217,9 @@ public class MapMappingMethod extends MappingMethod { } if ( ( factoryMethod == null ) && ( !isExistingInstanceMapping() ) ) { types.addAll( getReturnType().getImportTypes() ); + if ( getReturnType().getImplementationType() != null ) { + types.addAll( getReturnType().getImplementationType().getImportTypes() ); + } } return types; diff --git a/processor/src/main/java/org/mapstruct/ap/model/common/Type.java b/processor/src/main/java/org/mapstruct/ap/model/common/Type.java index 31074d036..1b1b397c0 100644 --- a/processor/src/main/java/org/mapstruct/ap/model/common/Type.java +++ b/processor/src/main/java/org/mapstruct/ap/model/common/Type.java @@ -268,10 +268,6 @@ public class Type extends ModelElement implements Comparable { result.add( this ); - if ( implementationType != null ) { - result.addAll( implementationType.getImportTypes() ); - } - if ( componentType != null ) { result.addAll( componentType.getImportTypes() ); }