diff --git a/src/lib/fs.rs b/src/lib/fs.rs index 51c1ff9cdde5..79538e79ff80 100644 --- a/src/lib/fs.rs +++ b/src/lib/fs.rs @@ -19,6 +19,7 @@ fn dirname(path p) -> path { ret str::substr(p, 0u, i as uint); } +// FIXME: Need some typestate to avoid bounds check when len(pre) == 0 fn connect(path pre, path post) -> path { auto len = str::byte_len(pre); if (pre.(len - 1u) == (os_fs::path_sep as u8)) { // Trailing '/'? diff --git a/src/test/run-pass/lib-fs.rs b/src/test/run-pass/lib-fs.rs new file mode 100644 index 000000000000..45029765ad90 --- /dev/null +++ b/src/test/run-pass/lib-fs.rs @@ -0,0 +1,15 @@ +use std; + +import std::fs; + +fn test_connect() { + auto slash = fs::path_sep(); + assert (fs::connect("a", "b") + == "a" + slash + "b"); + assert (fs::connect("a" + slash, "b") + == "a" + slash + "b"); +} + +fn main() { + test_connect(); +}