Fix platform issue when determining module name from file (#1505)

This commit is contained in:
Kyle Thomson 2022-06-28 21:56:59 +10:00 committed by GitHub
parent a183204493
commit ed04cbcfe8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 1 deletions

View File

@ -27,3 +27,9 @@ message = "Add comments for docker settings needed when using this sdk"
references = ["aws-sdk-rust#540"]
meta = { "breaking" = false, "tada" = false, "bug" = false }
author = "jmklix"
[[smithy-rs]]
message = "Fix issue with codegen on Windows where module names were incorrectly determined from filenames"
references = ["smithy-rs#1505"]
meta = { "breaking" = false, "tada" = false, "bug" = true }
author = "kiiadi"

View File

@ -24,6 +24,7 @@ import software.amazon.smithy.rust.codegen.smithy.isOptional
import software.amazon.smithy.rust.codegen.smithy.rustType
import software.amazon.smithy.rust.codegen.util.orNull
import software.amazon.smithy.utils.AbstractCodeWriter
import java.io.File
import java.util.function.BiFunction
/**
@ -393,7 +394,7 @@ class RustWriter private constructor(
}
fun module(): String? = if (filename.startsWith("src") && filename.endsWith(".rs")) {
filename.removeSuffix(".rs").split('/').last()
filename.removeSuffix(".rs").substringAfterLast(File.separatorChar)
} else null
fun safeName(prefix: String = "var"): String {

View File

@ -143,4 +143,10 @@ class RustWriterTest {
)
sut.toString().shouldContain("inner: hello, regular: http::foo")
}
@Test
fun `can handle file paths properly when determining module`() {
val sut = RustWriter.forModule("src/module_name")
sut.module().shouldBe("module_name")
}
}