diff --git a/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/integrations/core/StringTraitInitializer.java b/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/integrations/core/StringTraitInitializer.java index 0c4b2d47a..68c707a5b 100644 --- a/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/integrations/core/StringTraitInitializer.java +++ b/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/integrations/core/StringTraitInitializer.java @@ -17,7 +17,6 @@ public Class traitClass() { @Override public void accept(JavaWriter writer, StringTrait stringTrait) { - var stringValue = stringTrait.getValue().replace("£", "££"); - writer.writeInline("new $T($S)", stringTrait.getClass(), stringValue); + writer.writeInline("new $T($S)", stringTrait.getClass(), stringTrait.getValue()); } } diff --git a/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/DeferredSymbolWriter.java b/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/DeferredSymbolWriter.java index cf59e47cd..7a3c5446c 100644 --- a/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/DeferredSymbolWriter.java +++ b/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/DeferredSymbolWriter.java @@ -25,11 +25,6 @@ public DeferredSymbolWriter(I importContainer) { super(importContainer); } - @Override - public String toString() { - return format(super.toString()); - } - /** * Add symbol to symbol table, so potential type name conflicts can be detected and * handled. diff --git a/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/JavaWriter.java b/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/JavaWriter.java index 399a01982..e9a793d63 100644 --- a/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/JavaWriter.java +++ b/codegen/codegen-core/src/main/java/software/amazon/smithy/java/codegen/writer/JavaWriter.java @@ -30,7 +30,6 @@ */ @SmithyUnstableApi public final class JavaWriter extends DeferredSymbolWriter { - private static final char PLACEHOLDER_FORMAT_CHAR = '£'; private final String packageNamespace; private final JavaCodegenSettings settings; private final String filename; @@ -81,19 +80,12 @@ public String toString() { } putNameContext(); - setExpressionStart(PLACEHOLDER_FORMAT_CHAR); String header = settings.header(); String headerPrefix = (header != null && !header.isEmpty()) ? header + "\n" : ""; - return format( - """ - £Lpackage £L; - - £L - £L""", - headerPrefix, - packageNamespace, - getImportContainer(), - super.toString()); + return headerPrefix + + "package " + packageNamespace + ";\n\n" + + getImportContainer() + "\n" + + super.toString(); } /** @@ -101,8 +93,7 @@ public String toString() { */ public String toContentString() { putNameContext(); - setExpressionStart(PLACEHOLDER_FORMAT_CHAR); - return format("£L", super.toString()); + return super.toString(); } /** @@ -228,9 +219,10 @@ private String getPlaceholder(Symbol symbol) { addImport(normalizedSymbol); addToSymbolTable(normalizedSymbol); - // Return a placeholder value that will be filled when toString is called + // Return a deferred value that resolves the type name at toString() time // [] is replaced with "Array" to ensure array types don't break formatter. - return format("$L{$L:L}", PLACEHOLDER_FORMAT_CHAR, symbol.getFullName().replace("[]", "Array")); + String fullName = symbol.getFullName().replace("[]", "Array"); + return defer(() -> format("${" + fullName + ":L}")); } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d53235947..84c236a8b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] junit5 = "6.0.3" hamcrest = "3.0" -smithy = "1.70.0" +smithy = "1.71.0" jmh = "0.7.3" test-logger-plugin = "4.0.0" spotbugs = "6.0.22"