diff --git a/.changes/ba2b99b0-d583-472a-894a-9e56784eda75.json b/.changes/ba2b99b0-d583-472a-894a-9e56784eda75.json new file mode 100644 index 0000000000..b25e9bf6d4 --- /dev/null +++ b/.changes/ba2b99b0-d583-472a-894a-9e56784eda75.json @@ -0,0 +1,8 @@ +{ + "id": "ba2b99b0-d583-472a-894a-9e56784eda75", + "type": "bugfix", + "description": "Enable building this project on JDK21 by setting -Xjdk-release flag", + "issues": [ + "https://github.com/smithy-lang/smithy-kotlin/issues/1295" + ] +} \ No newline at end of file diff --git a/codegen/smithy-kotlin-codegen-testutils/build.gradle.kts b/codegen/smithy-kotlin-codegen-testutils/build.gradle.kts index b24f9ac8b2..8b3e1fdc8a 100644 --- a/codegen/smithy-kotlin-codegen-testutils/build.gradle.kts +++ b/codegen/smithy-kotlin-codegen-testutils/build.gradle.kts @@ -35,6 +35,7 @@ dependencies { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") } } diff --git a/codegen/smithy-kotlin-codegen/build.gradle.kts b/codegen/smithy-kotlin-codegen/build.gradle.kts index 0ac6c27c6a..0ab1c9881b 100644 --- a/codegen/smithy-kotlin-codegen/build.gradle.kts +++ b/codegen/smithy-kotlin-codegen/build.gradle.kts @@ -58,6 +58,7 @@ val generateSdkRuntimeVersion by tasks.registering { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") freeCompilerArgs.add("-opt-in=kotlin.RequiresOptIn") } dependsOn(generateSdkRuntimeVersion) diff --git a/codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/model/ShapeExt.kt b/codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/model/ShapeExt.kt index 8c6907fafd..01d02c4bee 100644 --- a/codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/model/ShapeExt.kt +++ b/codegen/smithy-kotlin-codegen/src/main/kotlin/software/amazon/smithy/kotlin/codegen/model/ShapeExt.kt @@ -21,6 +21,7 @@ import software.amazon.smithy.rulesengine.language.EndpointRuleSet import software.amazon.smithy.rulesengine.traits.EndpointRuleSetTrait import software.amazon.smithy.rulesengine.traits.EndpointTestCase import software.amazon.smithy.rulesengine.traits.EndpointTestsTrait +import java.util.stream.Collectors /** * Get all shapes of a particular type from the model. @@ -32,7 +33,7 @@ import software.amazon.smithy.rulesengine.traits.EndpointTestsTrait * shape's closure for example) */ @Suppress("EXTENSION_SHADOWED_BY_MEMBER") -inline fun Model.shapes(): List = shapes(T::class.java).toList() +inline fun Model.shapes(): List = shapes(T::class.java).collect(Collectors.toList()) /** * Extension function to return a shape of expected type. diff --git a/dokka-smithy/build.gradle.kts b/dokka-smithy/build.gradle.kts index 341e3680bc..bb4b1ff1ec 100644 --- a/dokka-smithy/build.gradle.kts +++ b/dokka-smithy/build.gradle.kts @@ -34,6 +34,7 @@ tasks.test { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") allWarningsAsErrors.set(false) // FIXME Dokka bundles stdlib into the classpath, causing an unfixable warning } } diff --git a/runtime/build.gradle.kts b/runtime/build.gradle.kts index 7a6945c178..ba5fd948bf 100644 --- a/runtime/build.gradle.kts +++ b/runtime/build.gradle.kts @@ -65,6 +65,7 @@ subprojects { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") freeCompilerArgs.add("-Xexpect-actual-classes") } } diff --git a/tests/integration/slf4j-1x-consumer/build.gradle.kts b/tests/integration/slf4j-1x-consumer/build.gradle.kts index 9531a2c436..dbe25d4e67 100644 --- a/tests/integration/slf4j-1x-consumer/build.gradle.kts +++ b/tests/integration/slf4j-1x-consumer/build.gradle.kts @@ -33,6 +33,7 @@ dependencies { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") } } diff --git a/tests/integration/slf4j-2x-consumer/build.gradle.kts b/tests/integration/slf4j-2x-consumer/build.gradle.kts index 527fa52223..b9e2e021a6 100644 --- a/tests/integration/slf4j-2x-consumer/build.gradle.kts +++ b/tests/integration/slf4j-2x-consumer/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") } } diff --git a/tests/integration/slf4j-hybrid-consumer/build.gradle.kts b/tests/integration/slf4j-hybrid-consumer/build.gradle.kts index ef306b0865..52db9e9db0 100644 --- a/tests/integration/slf4j-hybrid-consumer/build.gradle.kts +++ b/tests/integration/slf4j-hybrid-consumer/build.gradle.kts @@ -24,6 +24,7 @@ dependencies { tasks.withType { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) + freeCompilerArgs.add("-Xjdk-release=1.8") } }