Closed
Description
With the following code, I'm getting an incorrect warning:
cargo run
Compiling hellors v0.1.0 (file:///home/ngupta/temp/hellors)
warning: type alias is never used: `Result`
--> src/main.rs:3:1
|
3 | type Result<T> = ::std::result::Result<(T, usize), usize>;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: #[warn(dead_code)] on by default
Finished dev [unoptimized + debuginfo] target(s) in 0.44s
Running `target/debug/hellors`
Code
// On success, return what was parsed and where to start parsing from next.
// On failure, return where the parsing failed.
type Result<T> = ::std::result::Result<(T, usize), usize>;
fn parse_until(terminator: &'static str) -> impl Fn(&str, usize) -> Result<&str> {
move |s, location| {
let s = &s[location..];
match s.find(terminator) {
Some(pos) => {
let head = &s[..pos];
Ok((head, location + pos + terminator.len()))
},
None => {
Err(location)
}
}
}
}
fn main() {
let input = "hello\nworld";
assert_eq!(Ok(("hello", 6)), parse_until("\n")(input, 0));
assert_eq!(Err(6), parse_until("\n")(input, 6));
}
Version
rustc --version
rustc 1.29.0 (aa3ca1994 2018-09-11)