Skip to content

Commit 1374493

Browse files
fix(go): generate type conversion for resource shape with no operation (#765)
1 parent 9532cb6 commit 1374493

File tree

1 file changed

+84
-84
lines changed

1 file changed

+84
-84
lines changed

Diff for: codegen/smithy-dafny-codegen/src/main/java/software/amazon/polymorph/smithygo/localservice/DafnyLocalServiceTypeConversionProtocol.java

+84-84
Original file line numberDiff line numberDiff line change
@@ -367,56 +367,56 @@ public void generateSerializers(final GenerationContext context) {
367367
);
368368
}
369369
}
370-
if (
371-
!alreadyVisited.contains(resourceShape.toShapeId()) &&
372-
resourceShape
373-
.toShapeId()
374-
.getNamespace()
375-
.equals(serviceShape.toShapeId().getNamespace())
376-
) {
377-
alreadyVisited.add(resourceShape.toShapeId());
378-
writerDelegator.useFileWriter(
379-
"%s/%s".formatted(
380-
SmithyNameResolver.shapeNamespace(serviceShape),
381-
TO_DAFNY
382-
),
370+
});
371+
if (
372+
!alreadyVisited.contains(resourceShape.toShapeId()) &&
373+
resourceShape
374+
.toShapeId()
375+
.getNamespace()
376+
.equals(serviceShape.toShapeId().getNamespace())
377+
) {
378+
alreadyVisited.add(resourceShape.toShapeId());
379+
writerDelegator.useFileWriter(
380+
"%s/%s".formatted(
383381
SmithyNameResolver.shapeNamespace(serviceShape),
384-
writer -> {
385-
var goBody =
386-
"""
387-
return nativeResource.(*%s).Impl
388-
""".formatted(resourceShape.getId().getName());
389-
if (resourceShape.hasTrait(ExtendableTrait.class)) {
390-
goBody =
391-
"""
392-
val, ok := nativeResource.(*%s)
393-
if ok {
394-
return val.Impl
395-
}
396-
return %s{&%sNativeWrapper{Impl: nativeResource}}.Impl
397-
""".formatted(
398-
resourceShape.getId().getName(),
399-
resourceShape.getId().getName(),
400-
resourceShape.getId().getName()
401-
);
382+
TO_DAFNY
383+
),
384+
SmithyNameResolver.shapeNamespace(serviceShape),
385+
writer -> {
386+
var goBody =
387+
"""
388+
return nativeResource.(*%s).Impl
389+
""".formatted(resourceShape.getId().getName());
390+
if (resourceShape.hasTrait(ExtendableTrait.class)) {
391+
goBody =
392+
"""
393+
val, ok := nativeResource.(*%s)
394+
if ok {
395+
return val.Impl
402396
}
403-
writer.write(
404-
"""
405-
func $L_ToDafny(nativeResource $L.I$L) $L.I$L {
406-
$L
407-
}
408-
""",
409-
resourceShape.getId().getName(),
410-
SmithyNameResolver.smithyTypesNamespace(resourceShape),
411-
resourceShape.getId().getName(),
412-
DafnyNameResolver.dafnyTypesNamespace(resourceShape),
413-
resourceShape.getId().getName(),
414-
goBody
415-
);
397+
return %s{&%sNativeWrapper{Impl: nativeResource}}.Impl
398+
""".formatted(
399+
resourceShape.getId().getName(),
400+
resourceShape.getId().getName(),
401+
resourceShape.getId().getName()
402+
);
403+
}
404+
writer.write(
405+
"""
406+
func $L_ToDafny(nativeResource $L.I$L) $L.I$L {
407+
$L
416408
}
409+
""",
410+
resourceShape.getId().getName(),
411+
SmithyNameResolver.smithyTypesNamespace(resourceShape),
412+
resourceShape.getId().getName(),
413+
DafnyNameResolver.dafnyTypesNamespace(resourceShape),
414+
resourceShape.getId().getName(),
415+
goBody
417416
);
418417
}
419-
});
418+
);
419+
}
420420
}
421421
}
422422
generateErrorSerializer(context, alreadyVisited);
@@ -878,50 +878,50 @@ public void generateDeserializers(final GenerationContext context) {
878878
);
879879
}
880880
}
881-
if (
882-
!alreadyVisited.contains(resourceShape.toShapeId()) &&
883-
resourceShape
884-
.toShapeId()
885-
.getNamespace()
886-
.equals(serviceShape.toShapeId().getNamespace())
887-
) {
888-
alreadyVisited.add(resourceShape.toShapeId());
889-
delegator.useFileWriter(
890-
"%s/%s".formatted(
891-
SmithyNameResolver.shapeNamespace(serviceShape),
892-
TO_NATIVE
893-
),
881+
});
882+
if (
883+
!alreadyVisited.contains(resourceShape.toShapeId()) &&
884+
resourceShape
885+
.toShapeId()
886+
.getNamespace()
887+
.equals(serviceShape.toShapeId().getNamespace())
888+
) {
889+
alreadyVisited.add(resourceShape.toShapeId());
890+
delegator.useFileWriter(
891+
"%s/%s".formatted(
894892
SmithyNameResolver.shapeNamespace(serviceShape),
895-
writer -> {
896-
var extendableResourceWrapperCheck = "";
897-
if (resourceShape.hasTrait(ExtendableTrait.class)) {
898-
extendableResourceWrapperCheck =
899-
"""
900-
val, ok := dafnyResource.(*%sNativeWrapper)
901-
if ok {
902-
return val.Impl
903-
}
904-
""".formatted(resourceShape.getId().getName());
893+
TO_NATIVE
894+
),
895+
SmithyNameResolver.shapeNamespace(serviceShape),
896+
writer -> {
897+
var extendableResourceWrapperCheck = "";
898+
if (resourceShape.hasTrait(ExtendableTrait.class)) {
899+
extendableResourceWrapperCheck =
900+
"""
901+
val, ok := dafnyResource.(*%sNativeWrapper)
902+
if ok {
903+
return val.Impl
905904
}
906-
writer.write(
907-
"""
908-
func $L_FromDafny(dafnyResource $L.I$L)($L.I$L) {
909-
$L
910-
return &$L{dafnyResource}
911-
}
912-
""",
913-
resourceShape.getId().getName(),
914-
DafnyNameResolver.dafnyTypesNamespace(resourceShape),
915-
resourceShape.getId().getName(),
916-
SmithyNameResolver.smithyTypesNamespace(resourceShape),
917-
resourceShape.getId().getName(),
918-
extendableResourceWrapperCheck,
919-
resourceShape.getId().getName()
920-
);
905+
""".formatted(resourceShape.getId().getName());
906+
}
907+
writer.write(
908+
"""
909+
func $L_FromDafny(dafnyResource $L.I$L)($L.I$L) {
910+
$L
911+
return &$L{dafnyResource}
921912
}
913+
""",
914+
resourceShape.getId().getName(),
915+
DafnyNameResolver.dafnyTypesNamespace(resourceShape),
916+
resourceShape.getId().getName(),
917+
SmithyNameResolver.smithyTypesNamespace(resourceShape),
918+
resourceShape.getId().getName(),
919+
extendableResourceWrapperCheck,
920+
resourceShape.getId().getName()
922921
);
923922
}
924-
});
923+
);
924+
}
925925
}
926926
}
927927
generateErrorDeserializer(context, alreadyVisited);

0 commit comments

Comments
 (0)