Skip to content

Commit ef21e0b

Browse files
author
Markus Ritter
committed
bugfix for #177
1 parent 5ddde4f commit ef21e0b

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

inject-generator/src/main/java/io/avaje/inject/generator/MethodReader.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,10 @@ void addImports(Set<String> importTypes) {
177177
}
178178
}
179179

180+
Set<GenericType> getGenericTypes() {
181+
return typeReader.getGenericTypes();
182+
}
183+
180184
void buildAddFor(Append writer) {
181185
writer.append(" if (builder.isAddBeanFor(");
182186
if (isVoid) {

inject-generator/src/main/java/io/avaje/inject/generator/SimpleBeanWriter.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import javax.tools.JavaFileObject;
55
import java.io.IOException;
66
import java.io.Writer;
7+
import java.util.HashSet;
78
import java.util.List;
89
import java.util.Set;
910

@@ -74,8 +75,15 @@ private void writeGenericProviders() {
7475
}
7576

7677
private void writeGenericTypeFields() {
77-
final Set<GenericType> genericTypes = beanReader.getGenericTypes();
78-
if (genericTypes != null && !genericTypes.isEmpty()) {
78+
// collect all types to prevent duplicates
79+
Set<GenericType> genericTypes = new HashSet<>();
80+
if (beanReader.getGenericTypes()!=null) {
81+
genericTypes.addAll(beanReader.getGenericTypes());
82+
}
83+
for (MethodReader factoryMethod : beanReader.getFactoryMethods()) {
84+
genericTypes.addAll(factoryMethod.getGenericTypes());
85+
}
86+
if (!genericTypes.isEmpty()) {
7987
for (GenericType type : genericTypes) {
8088
writer.append(" public static final Type TYPE_%s = new GenericType<", type.shortName());
8189
type.writeShort(writer);

0 commit comments

Comments
 (0)