diff options
Diffstat (limited to 'src/main/java/com/squareup/javapoet/ParameterizedTypeName.java')
-rw-r--r-- | src/main/java/com/squareup/javapoet/ParameterizedTypeName.java | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java b/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java index d46aba8..3a8bf62 100644 --- a/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java +++ b/src/main/java/com/squareup/javapoet/ParameterizedTypeName.java @@ -41,7 +41,7 @@ public final class ParameterizedTypeName extends TypeName { private ParameterizedTypeName(ParameterizedTypeName enclosingType, ClassName rawType, List<TypeName> typeArguments, List<AnnotationSpec> annotations) { super(annotations); - this.rawType = checkNotNull(rawType, "rawType == null"); + this.rawType = checkNotNull(rawType, "rawType == null").annotated(annotations); this.enclosingType = enclosingType; this.typeArguments = Util.immutableList(typeArguments); @@ -58,17 +58,22 @@ public final class ParameterizedTypeName extends TypeName { enclosingType, rawType, typeArguments, concatAnnotations(annotations)); } - @Override public TypeName withoutAnnotations() { - return new ParameterizedTypeName(enclosingType, rawType, typeArguments, new ArrayList<>()); + @Override + public TypeName withoutAnnotations() { + return new ParameterizedTypeName( + enclosingType, rawType.withoutAnnotations(), typeArguments, new ArrayList<>()); } @Override CodeWriter emit(CodeWriter out) throws IOException { if (enclosingType != null) { - enclosingType.emitAnnotations(out); enclosingType.emit(out); - out.emit("." + rawType.simpleName()); + out.emit("."); + if (isAnnotated()) { + out.emit(" "); + emitAnnotations(out); + } + out.emit(rawType.simpleName()); } else { - rawType.emitAnnotations(out); rawType.emit(out); } if (!typeArguments.isEmpty()) { @@ -76,7 +81,6 @@ public final class ParameterizedTypeName extends TypeName { boolean firstParameter = true; for (TypeName parameter : typeArguments) { if (!firstParameter) out.emitAndIndent(", "); - parameter.emitAnnotations(out); parameter.emit(out); firstParameter = false; } |