From 1b33488cbf388a6fbc4e09af7e2d46ca0b306571 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Thu, 15 Aug 2024 15:48:24 -0500 Subject: [PATCH 1/3] fix: Supply explicit type on forEach block to try preventing compiler crash --- .../MiddlewareExecutionGenerator.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt b/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt index 8a5fc8823..d467950e1 100644 --- a/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt +++ b/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt @@ -58,18 +58,18 @@ class MiddlewareExecutionGenerator( } """.trimIndent() ) - // Swift can't infer the generic arguments to `create` for some reason - writer.write( - """ - config.httpInterceptorProviders.forEach { provider in - let i: any ${'$'}N<${'$'}N, ${'$'}N> = provider.create() - builder.interceptors.add(i) - } - """.trimIndent(), - ClientRuntimeTypes.Core.HttpInterceptor, - inputShape, - outputShape, - ) + writer.openBlock( + "config.httpInterceptorProviders.forEach { (provider: any \$N) -> Void in", + "}", + ClientRuntimeTypes.Core.HttpInterceptorProvider, + ) { + writer.write("let i: any \$N<\$N, \$N> = provider.create()", + ClientRuntimeTypes.Core.HttpInterceptor, + inputShape, + outputShape, + ) + writer.write("builder.interceptors.add(i)") + } renderMiddlewares(ctx, op, operationStackName) From a69180c6bbecd9d9992d577da0fd774090d4a62e Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Thu, 15 Aug 2024 16:13:00 -0500 Subject: [PATCH 2/3] Fix tests --- smithy-swift-codegen/src/test/kotlin/EventStreamTests.kt | 2 +- .../src/test/kotlin/HttpProtocolClientGeneratorTests.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/smithy-swift-codegen/src/test/kotlin/EventStreamTests.kt b/smithy-swift-codegen/src/test/kotlin/EventStreamTests.kt index b7ca6641e..77dd24f6a 100644 --- a/smithy-swift-codegen/src/test/kotlin/EventStreamTests.kt +++ b/smithy-swift-codegen/src/test/kotlin/EventStreamTests.kt @@ -218,7 +218,7 @@ extension EventStreamTestClientTypes.TestStream { config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - config.httpInterceptorProviders.forEach { provider in + config.httpInterceptorProviders.forEach { (provider: any ClientRuntime.HttpInterceptorProvider) -> Void in let i: any ClientRuntime.HttpInterceptor = provider.create() builder.interceptors.add(i) } diff --git a/smithy-swift-codegen/src/test/kotlin/HttpProtocolClientGeneratorTests.kt b/smithy-swift-codegen/src/test/kotlin/HttpProtocolClientGeneratorTests.kt index 77f897550..2d8fe5cee 100644 --- a/smithy-swift-codegen/src/test/kotlin/HttpProtocolClientGeneratorTests.kt +++ b/smithy-swift-codegen/src/test/kotlin/HttpProtocolClientGeneratorTests.kt @@ -158,7 +158,7 @@ extension RestJsonProtocolClient { config.interceptorProviders.forEach { provider in builder.interceptors.add(provider.create()) } - config.httpInterceptorProviders.forEach { provider in + config.httpInterceptorProviders.forEach { (provider: any ClientRuntime.HttpInterceptorProvider) -> Void in let i: any ClientRuntime.HttpInterceptor = provider.create() builder.interceptors.add(i) } From c16375c016f59b4fbb1778deae60c320604f7df5 Mon Sep 17 00:00:00 2001 From: Josh Elkins Date: Thu, 15 Aug 2024 16:16:15 -0500 Subject: [PATCH 3/3] Fix ktlint --- .../swift/codegen/middleware/MiddlewareExecutionGenerator.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt b/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt index d467950e1..4cf8c341b 100644 --- a/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt +++ b/smithy-swift-codegen/src/main/kotlin/software/amazon/smithy/swift/codegen/middleware/MiddlewareExecutionGenerator.kt @@ -63,7 +63,8 @@ class MiddlewareExecutionGenerator( "}", ClientRuntimeTypes.Core.HttpInterceptorProvider, ) { - writer.write("let i: any \$N<\$N, \$N> = provider.create()", + writer.write( + "let i: any \$N<\$N, \$N> = provider.create()", ClientRuntimeTypes.Core.HttpInterceptor, inputShape, outputShape,