Skip to content

Commit 9089219

Browse files
committed
fix duplicate short names
1 parent fbefe26 commit 9089219

File tree

4 files changed

+32
-4
lines changed

4 files changed

+32
-4
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ void addImportTypes(Set<String> importTypes) {
222222
}
223223
}
224224

225-
void buildMethod(Append append) {
225+
void buildMethod(Append append, boolean fullyQualify) {
226226
if (generateProxy) {
227227
return;
228228
}
@@ -273,7 +273,7 @@ void buildMethod(Append append) {
273273
if (hasMethod()) {
274274
append.append(" ").append(Util.shortMethod(method)).append("(builder");
275275
} else {
276-
append.append(" ").append(shortType).append(Constants.DI).append(".build(builder");
276+
append.append(" ").append(fullyQualify ? type : shortType).append(Constants.DI).append(".build(builder");
277277
}
278278
append.append(");").append(NEWLINE);
279279
append.append(" }").append(NEWLINE);

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,12 @@
33
import static io.avaje.inject.generator.APContext.logError;
44
import static io.avaje.inject.generator.APContext.typeElement;
55
import static io.avaje.inject.generator.ProcessingContext.createMetaInfWriterFor;
6+
import static java.util.stream.Collectors.toSet;
67

78
import java.io.IOException;
89
import java.io.Writer;
910
import java.util.ArrayList;
11+
import java.util.HashSet;
1012
import java.util.LinkedHashSet;
1113
import java.util.Map;
1214
import java.util.Set;
@@ -52,6 +54,7 @@ final class SimpleModuleWriter {
5254
private final String fullName;
5355
private final ScopeInfo scopeInfo;
5456
private final MetaDataOrdering ordering;
57+
private final Set<String> duplicateTypes;
5558

5659
private Append writer;
5760

@@ -61,6 +64,12 @@ final class SimpleModuleWriter {
6164
this.modulePackage = scopeInfo.modulePackage();
6265
this.shortName = scopeInfo.moduleShortName();
6366
this.fullName = scopeInfo.moduleFullName();
67+
Set<String> seen = new HashSet<>();
68+
duplicateTypes =
69+
ordering.ordered().stream()
70+
.map(MetaData::type)
71+
.filter(t -> !seen.add(ProcessorUtils.shortType(t)))
72+
.collect(toSet());
6473
}
6574

6675
void write(ScopeInfo.Type scopeType) throws IOException {
@@ -183,7 +192,7 @@ private void writeBuildMethod() {
183192

184193
private void writeBuildMethods() {
185194
for (MetaData metaData : ordering.ordered()) {
186-
metaData.buildMethod(writer);
195+
metaData.buildMethod(writer, duplicateTypes.contains(metaData.type()));
187196
}
188197
}
189198

@@ -192,8 +201,9 @@ private void writePackage() {
192201
for (String type : factoryImportTypes()) {
193202
writer.append("import %s;", type).eol();
194203
}
204+
195205
for (String type : scopeInfo.initModuleDependencies(ordering.importTypes())) {
196-
if (Util.validImportType(type, modulePackage)) {
206+
if (!duplicateTypes.contains(type) && Util.validImportType(type, modulePackage)) {
197207
writer.append("import %s;", type).eol();
198208
}
199209
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.avaje.inject.generator.models.valid.duplicate;
2+
3+
import jakarta.inject.Singleton;
4+
5+
@Singleton
6+
public class SameType {
7+
@Singleton
8+
static class Inner {}
9+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package io.avaje.inject.generator.models.valid.duplicate.two;
2+
3+
import jakarta.inject.Singleton;
4+
5+
@Singleton
6+
public class SameType {
7+
@Singleton
8+
static class Inner {}
9+
}

0 commit comments

Comments
 (0)