Unverified Commit ed04cbcf authored by Kyle Thomson's avatar Kyle Thomson Committed by GitHub
Browse files

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

parent a1832044
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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"
+2 −1
Original line number Diff line number Diff line
@@ -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 {
+6 −0
Original line number Diff line number Diff line
@@ -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")
    }
}