Skip to content

Commit cde5684

Browse files
committed
Error shapes do not explicitly need to reference MetadataBearer
1 parent 35a4acc commit cde5684

File tree

2 files changed

+1
-51
lines changed

2 files changed

+1
-51
lines changed

smithy-typescript-codegen/src/main/java/software/amazon/smithy/typescript/codegen/SymbolVisitor.java

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -310,20 +310,7 @@ public Symbol serviceShape(ServiceShape shape) {
310310

311311
@Override
312312
public Symbol structureShape(StructureShape shape) {
313-
Symbol.Builder builder = createObjectSymbolBuilder(shape);
314-
315-
// Errors won't be re-used in locations where being a MetadataBearer is an issue.
316-
if (errorShapes.contains(shape)) {
317-
SymbolReference reference = SymbolReference.builder()
318-
.options(SymbolReference.ContextOption.DECLARE)
319-
.alias("$MetadataBearer")
320-
.symbol(TypeScriptDependency.AWS_SDK_TYPES.createSymbol("MetadataBearer"))
321-
.putProperty(IMPLEMENTS_INTERFACE_PROPERTY, true)
322-
.build();
323-
builder.addReference(reference);
324-
}
325-
326-
return builder.build();
313+
return createObjectSymbolBuilder(shape).build();
327314
}
328315

329316
private Symbol.Builder addSmithyUseImport(Symbol.Builder builder, String name, String as) {

smithy-typescript-codegen/src/test/java/software/amazon/smithy/typescript/codegen/SymbolProviderTest.java

Lines changed: 0 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import static org.hamcrest.MatcherAssert.assertThat;
44
import static org.hamcrest.Matchers.containsString;
55
import static org.hamcrest.Matchers.equalTo;
6-
import static org.hamcrest.Matchers.greaterThan;
76

87
import org.junit.jupiter.api.Test;
98
import software.amazon.smithy.build.MockManifest;
@@ -145,42 +144,6 @@ public void escapesRecursiveSymbols() {
145144
assertThat(listSymbol.getName(), equalTo("(_Record)[]"));
146145
}
147146

148-
@Test
149-
public void errorStructuresAreMetadataBearers() {
150-
Model model = Model.assembler()
151-
.addImport(getClass().getResource("output-structure.smithy"))
152-
.assemble()
153-
.unwrap();
154-
TypeScriptSettings settings = TypeScriptSettings.from(model, Node.objectNodeBuilder()
155-
.withMember("package", Node.from("example"))
156-
.withMember("packageVersion", Node.from("1.0.0"))
157-
.build());
158-
159-
Shape input = model.expectShape(ShapeId.from("smithy.example#GetFooInput"));
160-
Shape output = model.expectShape(ShapeId.from("smithy.example#GetFooOutput"));
161-
Shape error = model.expectShape(ShapeId.from("smithy.example#GetFooError"));
162-
SymbolProvider provider = TypeScriptCodegenPlugin.createSymbolProvider(model, settings);
163-
Symbol inputSymbol = provider.toSymbol(input);
164-
Symbol outputSymbol = provider.toSymbol(output);
165-
Symbol errorSymbol = provider.toSymbol(error);
166-
167-
// Input and Output does not use MetadataBearer
168-
assertThat(inputSymbol.getReferences().stream()
169-
.filter(ref -> ref.getProperty("extends").isPresent())
170-
.count(), equalTo(0L));
171-
assertThat(outputSymbol.getReferences().stream()
172-
.filter(ref -> ref.getAlias().equals("$MetadataBearer"))
173-
.count(), equalTo(0L));
174-
175-
// Output uses MetadataBearer
176-
assertThat(errorSymbol.getReferences().stream()
177-
.filter(ref -> ref.getProperty(SymbolVisitor.IMPLEMENTS_INTERFACE_PROPERTY).isPresent())
178-
.count(), greaterThan(0L));
179-
assertThat(errorSymbol.getReferences().stream()
180-
.filter(ref -> ref.getAlias().equals("$MetadataBearer"))
181-
.count(), greaterThan(0L));
182-
}
183-
184147
@Test
185148
public void createsCommandModules() {
186149
Model model = Model.assembler()

0 commit comments

Comments
 (0)