From aaed5058bd89e58e65946ef021096ca97ee786d8 Mon Sep 17 00:00:00 2001 From: david-perez <d@vidp.dev> Date: Mon, 11 Apr 2022 18:33:04 +0200 Subject: [PATCH] Make `builderSymbol` return a `Symbol` (#1312) It currently returns a `RuntimeType`. It makes no actual difference whatsoever, but `RuntimeType` is kept for types we don't code-generate, but that we use from other crates. --- .../codegen/smithy/generators/BuilderGenerator.kt | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/smithy/generators/BuilderGenerator.kt b/codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/smithy/generators/BuilderGenerator.kt index ada585e05..7d0afd2c2 100644 --- a/codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/smithy/generators/BuilderGenerator.kt +++ b/codegen/src/main/kotlin/software/amazon/smithy/rust/codegen/smithy/generators/BuilderGenerator.kt @@ -35,10 +35,16 @@ import software.amazon.smithy.rust.codegen.smithy.rustType import software.amazon.smithy.rust.codegen.util.dq import software.amazon.smithy.rust.codegen.util.toSnakeCase -fun StructureShape.builderSymbol(symbolProvider: RustSymbolProvider): RuntimeType { - val symbol = symbolProvider.toSymbol(this) - val builderNamespace = RustReservedWords.escapeIfNeeded(symbol.name.toSnakeCase()) - return RuntimeType("Builder", null, "${symbol.namespace}::$builderNamespace") +fun StructureShape.builderSymbol(symbolProvider: RustSymbolProvider): Symbol { + val structureSymbol = symbolProvider.toSymbol(this) + val builderNamespace = RustReservedWords.escapeIfNeeded(structureSymbol.name.toSnakeCase()) + val rustType = RustType.Opaque("Builder", "${structureSymbol.namespace}::$builderNamespace") + return Symbol.builder() + .rustType(rustType) + .name(rustType.name) + .namespace(rustType.namespace, "::") + .definitionFile(structureSymbol.definitionFile) + .build() } fun RuntimeConfig.operationBuildError() = RuntimeType.operationModule(this).member("BuildError") -- GitLab