Skip to content

Commit edf861c

Browse files
fix(go): AWS SDK shape namespace (#769)
1 parent e1993ed commit edf861c

File tree

10 files changed

+276
-135
lines changed

10 files changed

+276
-135
lines changed

codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithygo/codegen/StructureGenerator.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,10 @@ public void renderStructure(Runnable runnable, boolean isInputStructure) {
115115
.getProperty(SymbolUtils.INPUT_VARIANT, Symbol.class)
116116
.orElse(memberSymbol);
117117
}
118-
var namespace = SmithyNameResolver.smithyTypesNamespace(targetShape);
118+
var namespace = SmithyNameResolver.smithyTypesNamespace(
119+
targetShape,
120+
model
121+
);
119122

120123
if (targetShape.hasTrait(ReferenceTrait.class)) {
121124
memberSymbol =
@@ -158,7 +161,7 @@ public void renderStructure(Runnable runnable, boolean isInputStructure) {
158161
targetShape.getId().getNamespace()
159162
),
160163
"types",
161-
SmithyNameResolver.smithyTypesNamespace(targetShape)
164+
SmithyNameResolver.smithyTypesNamespace(targetShape, model)
162165
);
163166
} else if (
164167
!member

codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithygo/codegen/SymbolVisitor.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -400,11 +400,10 @@ public Symbol mapShape(MapShape shape) {
400400

401401
private Symbol.Builder symbolBuilderFor(Shape shape, String typeName) {
402402
final String namespace;
403-
if (shape.hasTrait(ServiceTrait.class)) {
404-
namespace =
405-
shape.expectTrait(ServiceTrait.class).getSdkId().toLowerCase();
403+
if (SmithyNameResolver.isShapeFromAWSSDK(shape)) {
404+
namespace = SmithyNameResolver.smithyTypesNamespace(shape, model);
406405
} else {
407-
namespace = SmithyNameResolver.smithyTypesNamespace(shape);
406+
namespace = SmithyNameResolver.smithyTypesNamespace(shape, model);
408407
}
409408
if (pointableIndex.isPointable(shape)) {
410409
return SymbolUtils.createPointableSymbolBuilder(
@@ -541,11 +540,11 @@ public Symbol stringShape(StringShape shape) {
541540
return symbolBuilderFor(
542541
shape,
543542
name,
544-
SmithyNameResolver.smithyTypesNamespace(shape)
543+
SmithyNameResolver.smithyTypesNamespace(shape, model)
545544
)
546545
.definitionFile(
547546
"./%s/enums.go".formatted(
548-
SmithyNameResolver.smithyTypesNamespace(shape)
547+
SmithyNameResolver.smithyTypesNamespace(shape, model)
549548
)
550549
)
551550
.build();
@@ -576,13 +575,13 @@ public Symbol structureShape(StructureShape shape) {
576575
if (shape.hasTrait(ErrorTrait.ID)) {
577576
builder.definitionFile(
578577
"./%s/errors.go".formatted(
579-
SmithyNameResolver.smithyTypesNamespace(shape)
578+
SmithyNameResolver.smithyTypesNamespace(shape, model)
580579
)
581580
);
582581
} else {
583582
builder.definitionFile(
584583
"./%s/types.go".formatted(
585-
SmithyNameResolver.smithyTypesNamespace(shape)
584+
SmithyNameResolver.smithyTypesNamespace(shape, model)
586585
)
587586
);
588587
}
@@ -646,7 +645,7 @@ public Symbol unionShape(UnionShape shape) {
646645
return symbolBuilderFor(
647646
shape,
648647
name,
649-
SmithyNameResolver.smithyTypesNamespace(shape)
648+
SmithyNameResolver.smithyTypesNamespace(shape, model)
650649
)
651650
.definitionFile("./types/types.go")
652651
.build();
@@ -672,11 +671,11 @@ public Symbol intEnumShape(IntEnumShape shape) {
672671
return symbolBuilderFor(
673672
shape,
674673
name,
675-
SmithyNameResolver.smithyTypesNamespace(settings.getService(model))
674+
SmithyNameResolver.smithyTypesNamespace(settings.getService(model), model)
676675
)
677676
.definitionFile(
678677
"./%s/enums.go".formatted(
679-
SmithyNameResolver.smithyTypesNamespace(shape)
678+
SmithyNameResolver.smithyTypesNamespace(shape, model)
680679
)
681680
)
682681
.build();

codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithygo/codegen/UnionGenerator.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,10 @@ public void generateUnion(GoWriter writer) {
8989
writer.write("Value $T", memberSymbol);
9090
} else {
9191
// Handling smithy-dafny Reference Trait begins
92-
var namespace = SmithyNameResolver.smithyTypesNamespace(target);
92+
var namespace = SmithyNameResolver.smithyTypesNamespace(
93+
target,
94+
model
95+
);
9396
var newMemberSymbol = memberSymbol;
9497
if (target.hasTrait(ReferenceTrait.class)) {
9598
newMemberSymbol =

codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithygo/codegen/ValidationGenerator.java

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -514,7 +514,8 @@ private void renderListShape(
514514
);
515515
final var inputType = GoCodegenUtils.getType(
516516
symbolProvider.toSymbol(currentShape),
517-
isExternalShape
517+
isExternalShape,
518+
context.model()
518519
);
519520
if (isExternalShape) {
520521
if (SmithyNameResolver.isShapeFromAWSSDK(currentShape)) {
@@ -523,14 +524,14 @@ private void renderListShape(
523524
currentShape.getId().getNamespace()
524525
),
525526
"types",
526-
SmithyNameResolver.smithyTypesNamespace(currentShape)
527+
SmithyNameResolver.smithyTypesNamespace(currentShape, model)
527528
);
528529
} else {
529530
writer.addImportFromModule(
530531
SmithyNameResolver.getGoModuleNameForSmithyNamespace(
531532
currentShape.getId().getNamespace()
532533
),
533-
SmithyNameResolver.smithyTypesNamespace(currentShape)
534+
SmithyNameResolver.smithyTypesNamespace(currentShape, model)
534535
);
535536
}
536537
}
@@ -610,7 +611,8 @@ private void renderMapShape(
610611
);
611612
final var inputType = GoCodegenUtils.getType(
612613
symbolProvider.toSymbol(currentShape),
613-
isExternalShape
614+
isExternalShape,
615+
context.model()
614616
);
615617
if (isExternalShape) {
616618
if (SmithyNameResolver.isShapeFromAWSSDK(currentShape)) {
@@ -619,14 +621,14 @@ private void renderMapShape(
619621
currentShape.getId().getNamespace()
620622
),
621623
"types",
622-
SmithyNameResolver.smithyTypesNamespace(currentShape)
624+
SmithyNameResolver.smithyTypesNamespace(currentShape, model)
623625
);
624626
} else {
625627
writer.addImportFromModule(
626628
SmithyNameResolver.getGoModuleNameForSmithyNamespace(
627629
currentShape.getId().getNamespace()
628630
),
629-
SmithyNameResolver.smithyTypesNamespace(currentShape)
631+
SmithyNameResolver.smithyTypesNamespace(currentShape, model)
630632
);
631633
}
632634
}
@@ -671,18 +673,21 @@ private void renderUnionShape(
671673
var dataSourceForUnion = dataSource;
672674
final var currServiceShapeNamespace =
673675
SmithyNameResolver.smithyTypesNamespace(
674-
context.settings().getService(model)
676+
context.settings().getService(model),
677+
model
675678
);
676679
final var currShapeNamespace = SmithyNameResolver.smithyTypesNamespace(
677-
model.expectShape(memberShape.getTarget())
680+
model.expectShape(memberShape.getTarget()),
681+
model
678682
);
679683
if (!funcInput.isEmpty()) {
680684
final Boolean isExternalShape =
681685
!currServiceShapeNamespace.equals(currShapeNamespace) &&
682686
!currShapeNamespace.startsWith("smithy");
683687
final var inputType = GoCodegenUtils.getType(
684688
symbolProvider.toSymbol(currentShape),
685-
isExternalShape
689+
isExternalShape,
690+
context.model()
686691
);
687692
if (isExternalShape) {
688693
if (SmithyNameResolver.isShapeFromAWSSDK(currentShape)) {
@@ -691,14 +696,14 @@ private void renderUnionShape(
691696
currentShape.getId().getNamespace()
692697
),
693698
"types",
694-
SmithyNameResolver.smithyTypesNamespace(currentShape)
699+
SmithyNameResolver.smithyTypesNamespace(currentShape, model)
695700
);
696701
} else {
697702
writer.addImportFromModule(
698703
SmithyNameResolver.getGoModuleNameForSmithyNamespace(
699704
currentShape.getId().getNamespace()
700705
),
701-
SmithyNameResolver.smithyTypesNamespace(currentShape)
706+
SmithyNameResolver.smithyTypesNamespace(currentShape, model)
702707
);
703708
}
704709
}
@@ -721,7 +726,8 @@ private void renderUnionShape(
721726
);
722727
for (final var memberInUnion : currentShape.getAllMembers().values()) {
723728
final var currMemberNamespace = SmithyNameResolver.smithyTypesNamespace(
724-
currentShape
729+
currentShape,
730+
model
725731
);
726732
final Boolean isExternalShape =
727733
!currServiceShapeNamespace.equals(currMemberNamespace) &&

0 commit comments

Comments
 (0)