Skip to content

Commit e1993ed

Browse files
fix(go): dependent configSymbol in api client (#767)
1 parent ed2bba0 commit e1993ed

File tree

1 file changed

+26
-2
lines changed

1 file changed

+26
-2
lines changed

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

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import software.amazon.polymorph.smithygo.codegen.GoDelegator;
1414
import software.amazon.polymorph.smithygo.codegen.GoWriter;
1515
import software.amazon.polymorph.smithygo.codegen.SmithyGoDependency;
16+
import software.amazon.polymorph.smithygo.codegen.SymbolUtils;
1617
import software.amazon.polymorph.smithygo.codegen.UnionGenerator;
1718
import software.amazon.polymorph.smithygo.localservice.nameresolver.DafnyNameResolver;
1819
import software.amazon.polymorph.smithygo.localservice.nameresolver.SmithyNameResolver;
@@ -31,6 +32,7 @@
3132
import software.amazon.smithy.model.shapes.OperationShape;
3233
import software.amazon.smithy.model.shapes.ResourceShape;
3334
import software.amazon.smithy.model.shapes.ServiceShape;
35+
import software.amazon.smithy.model.shapes.Shape;
3436
import software.amazon.smithy.model.traits.ErrorTrait;
3537
import software.amazon.smithy.model.traits.UnitTypeTrait;
3638

@@ -118,7 +120,29 @@ void generateClient(GoWriter writer) {
118120
SmithyNameResolver.smithyTypesNamespace(service)
119121
);
120122
writer.addUseImports(SmithyGoDependency.CONTEXT);
121-
123+
var configShape = configSymbol.expectProperty(
124+
SymbolUtils.SHAPE,
125+
Shape.class
126+
);
127+
if (
128+
!configShape
129+
.toShapeId()
130+
.getNamespace()
131+
.equals(service.toShapeId().getNamespace())
132+
) {
133+
writer.addImportFromModule(
134+
SmithyNameResolver.getGoModuleNameForSmithyNamespace(
135+
configShape.toShapeId().getNamespace()
136+
),
137+
SmithyNameResolver.smithyTypesNamespace(configShape)
138+
);
139+
writer.addImportFromModule(
140+
SmithyNameResolver.getGoModuleNameForSmithyNamespace(
141+
configShape.toShapeId().getNamespace()
142+
),
143+
SmithyNameResolver.shapeNamespace(configShape)
144+
);
145+
}
122146
final var dafnyClient = DafnyNameResolver.getDafnyInterfaceClient(service);
123147
writer.write(
124148
"""
@@ -139,7 +163,7 @@ func NewClient(clientConfig $L) (*$T, error) {
139163
""",
140164
serviceSymbol,
141165
dafnyClient,
142-
SmithyNameResolver.getSmithyType(service, configSymbol),
166+
SmithyNameResolver.getSmithyType(configShape, configSymbol),
143167
serviceSymbol,
144168
SmithyNameResolver.getToDafnyMethodName(
145169
service,

0 commit comments

Comments
 (0)