Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public Class<StringTrait> 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());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@
*/
@SmithyUnstableApi
public final class JavaWriter extends DeferredSymbolWriter<JavaWriter, JavaImportContainer> {
private static final char PLACEHOLDER_FORMAT_CHAR = '£';
private final String packageNamespace;
private final JavaCodegenSettings settings;
private final String filename;
Expand Down Expand Up @@ -81,28 +80,20 @@ 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();
}

/**
* @return Returns the formatted writer contents without headers, package declarations, or imports.
*/
public String toContentString() {
putNameContext();
setExpressionStart(PLACEHOLDER_FORMAT_CHAR);
return format("£L", super.toString());
return super.toString();
}

/**
Expand Down Expand Up @@ -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}"));
}
}

Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -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"
Expand Down