[INFO] updating cached repository https://github.com/ericbean/worklog [INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "-c" "remote.origin.fetch=refs/heads/*:refs/heads/*" "fetch" "origin" "--force" "--prune", kill_on_drop: false }` [INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }` [INFO] [stdout] 734c70651046a6a05efb071aa2cca2dcfefb4939 [INFO] testing ericbean/worklog against 1.45.2 for beta-1.46-1 [INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fericbean%2Fworklog" "/workspace/builds/worker-10/source", kill_on_drop: false }` [INFO] [stderr] Cloning into '/workspace/builds/worker-10/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/ericbean/worklog on toolchain 1.45.2 [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.45.2" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] started tweaking git repo https://github.com/ericbean/worklog [INFO] finished tweaking git repo https://github.com/ericbean/worklog [INFO] tweaked toml for git repo https://github.com/ericbean/worklog written to /workspace/builds/worker-10/source/Cargo.toml [INFO] crate git repo https://github.com/ericbean/worklog already has a lockfile, it will not be regenerated [INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+1.45.2" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }` [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+1.45.2" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] bb46ed56a126221c2fbb462a5a74048a3328cb39098c2a5a97dd72987c022e58 [INFO] running `Command { std: "docker" "start" "-a" "bb46ed56a126221c2fbb462a5a74048a3328cb39098c2a5a97dd72987c022e58", kill_on_drop: false }` [INFO] running `Command { std: "docker" "inspect" "bb46ed56a126221c2fbb462a5a74048a3328cb39098c2a5a97dd72987c022e58", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "bb46ed56a126221c2fbb462a5a74048a3328cb39098c2a5a97dd72987c022e58", kill_on_drop: false }` [INFO] [stdout] bb46ed56a126221c2fbb462a5a74048a3328cb39098c2a5a97dd72987c022e58 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+1.45.2" "build" "--frozen" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] 47624fdc0e3800a3e9ed8b35499fe5a279518de9ed7258d9d8ced16104fa1b6f [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "47624fdc0e3800a3e9ed8b35499fe5a279518de9ed7258d9d8ced16104fa1b6f", kill_on_drop: false }` [INFO] [stderr] Compiling libc v0.2.23 [INFO] [stderr] Compiling peg v0.5.3 [INFO] [stderr] Compiling serde_derive v1.0.8 [INFO] [stderr] Compiling memchr v1.0.1 [INFO] [stderr] Compiling atty v0.2.2 [INFO] [stderr] Compiling time v0.1.37 [INFO] [stderr] Compiling term_size v0.3.0 [INFO] [stderr] Compiling clap v2.24.2 [INFO] [stderr] Compiling csv-core v0.1.2 [INFO] [stderr] Compiling chrono v0.3.1 [INFO] [stderr] Compiling csv v1.0.0-beta.3 [INFO] [stderr] Compiling worklog v0.1.4-alpha (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/timeclock/mod.rs:25:36 [INFO] [stdout] | [INFO] [stdout] 25 | let mut in_v: Vec = try!(rdr.deserialize().collect()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | try ! [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | self . expected . len() == 0 { try ! (write ! (fmt, "EOF")) ; } else [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | try ! [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:30:55 [INFO] [stdout] | [INFO] [stdout] 30 | let mut iter = self . expected . iter() ; try ! [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | { try ! (write ! (fmt, ", `{}`", escape_default(elem))) ; } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:62:15 [INFO] [stdout] | [INFO] [stdout] 62 | let res = try!(grammar::rounding(fmt)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | let offset = try!(grammar::offset(offset)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:79:34 [INFO] [stdout] | [INFO] [stdout] 79 | let (hour, minute, second) = try!(grammar::time(input)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:81:16 [INFO] [stdout] | [INFO] [stdout] 81 | let time = try!(time.with_hour(hour).ok_or(ParseError::Hour)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | let time = try!(time.with_minute(minute).ok_or(ParseError::Minute)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:83:16 [INFO] [stdout] | [INFO] [stdout] 83 | let time = try!(time.with_second(second as u32).ok_or(ParseError::Second)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | let time = try!(time.with_nanosecond(nanosecond as u32) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | try!(grammar::datetime(input)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:111:16 [INFO] [stdout] | [INFO] [stdout] 111 | let time = try!(time.with_hour(hour).ok_or(ParseError::Hour)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | let time = try!(time.with_minute(minute).ok_or(ParseError::Minute)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:113:16 [INFO] [stdout] | [INFO] [stdout] 113 | let time = try!(time.with_second(second as u32).ok_or(ParseError::Second)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | let time = try!(time.with_nanosecond(nanosecond as u32) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:50:23 [INFO] [stdout] | [INFO] [stdout] 50 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:70:23 [INFO] [stdout] | [INFO] [stdout] 70 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:133:20 [INFO] [stdout] | [INFO] [stdout] 133 | let csv_path = try!(get_csv_path()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:135:24 [INFO] [stdout] | [INFO] [stdout] 135 | let mut csv_file = try!(OpenOptions::new() [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | try!(parsers::parse_rounding(ROUNDING_DEFAULT)) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | try!(parsers::parse_rounding(matches.value_of("round_ex").unwrap())) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:156:57 [INFO] [stdout] | [INFO] [stdout] 156 | let mut range: Vec> = try!(range.map(|a| parsers::parse_datetime(a, ctime)) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | try!(parsers::parse_datetime(a, ctime) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | try!(print_short_summary(&csv_file, start_date, end_date, rounding)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | try!(print_csv_entries(&csv_file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | try!(print_short_summary(&csv_file, start_date, today, rounding)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:63:32 [INFO] [stdout] | [INFO] [stdout] 63 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:65:56 [INFO] [stdout] | [INFO] [stdout] 65 | WorklogError::Env(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:66:55 [INFO] [stdout] | [INFO] [stdout] 66 | WorklogError::Io(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:67:63 [INFO] [stdout] | [INFO] [stdout] 67 | WorklogError::CronoParse(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:68:62 [INFO] [stdout] | [INFO] [stdout] 68 | WorklogError::TimeClock(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:69:63 [INFO] [stdout] | [INFO] [stdout] 69 | WorklogError::ParseError(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/timeclock/error.rs:25:32 [INFO] [stdout] | [INFO] [stdout] 25 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/timeclock/error.rs:27:58 [INFO] [stdout] | [INFO] [stdout] 27 | TimeClockError::Csv(ref err) => err as &Error, [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:82:459 [INFO] [stdout] | [INFO] [stdout] 82 | fn __parse_number < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:84:460 [INFO] [stdout] | [INFO] [stdout] 84 | fn __parse_decimal < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:86:852 [INFO] [stdout] | [INFO] [stdout] 86 | fn __parse_signed_decimal < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let __seq_res = match { let __choice_res = slice_eq ( __input , __state , __pos , "+" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "-" ) } } { Matched ( __newpos , _ ) => { Matched ( __newpos , ( ) ) } , Failed => { Matched ( __pos , ( ) ) } , } ; match __seq_res { Matched ( __pos , _ ) => { { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } } Failed => Failed , } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:110:505 [INFO] [stdout] | [INFO] [stdout] 110 | fn __parse_offset_hh < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:112:505 [INFO] [stdout] | [INFO] [stdout] 112 | fn __parse_offset_mm < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 2 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:124:500 [INFO] [stdout] | [INFO] [stdout] 124 | fn __parse_hour < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:126:502 [INFO] [stdout] | [INFO] [stdout] 126 | fn __parse_minute < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 2 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:128:503 [INFO] [stdout] | [INFO] [stdout] 128 | fn __parse_second < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 12 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:166:500 [INFO] [stdout] | [INFO] [stdout] 166 | fn __parse_year < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 4 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 4 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:168:501 [INFO] [stdout] | [INFO] [stdout] 168 | fn __parse_month < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:170:499 [INFO] [stdout] | [INFO] [stdout] 170 | fn __parse_day < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parsers.rs:44:32 [INFO] [stdout] | [INFO] [stdout] 44 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parsers.rs:46:53 [INFO] [stdout] | [INFO] [stdout] 46 | ParseError::PE(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead. [INFO] [stdout] --> src/main.rs:88:31 [INFO] [stdout] | [INFO] [stdout] 88 | let mut data_path = match env::home_dir() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:55:47 [INFO] [stdout] | [INFO] [stdout] 55 | WorklogError::Env(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:56:46 [INFO] [stdout] | [INFO] [stdout] 56 | WorklogError::Io(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:57:54 [INFO] [stdout] | [INFO] [stdout] 57 | WorklogError::CronoParse(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:58:53 [INFO] [stdout] | [INFO] [stdout] 58 | WorklogError::TimeClock(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:59:54 [INFO] [stdout] | [INFO] [stdout] 59 | WorklogError::ParseError(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/timeclock/error.rs:21:49 [INFO] [stdout] | [INFO] [stdout] 21 | TimeClockError::Csv(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/parsers.rs:33:44 [INFO] [stdout] | [INFO] [stdout] 33 | ParseError::PE(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/parsers.rs:56:41 [INFO] [stdout] | [INFO] [stdout] 56 | _ => fmt::Display::fmt(self.description(), f), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 60 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 17.73s [INFO] running `Command { std: "docker" "inspect" "47624fdc0e3800a3e9ed8b35499fe5a279518de9ed7258d9d8ced16104fa1b6f", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "47624fdc0e3800a3e9ed8b35499fe5a279518de9ed7258d9d8ced16104fa1b6f", kill_on_drop: false }` [INFO] [stdout] 47624fdc0e3800a3e9ed8b35499fe5a279518de9ed7258d9d8ced16104fa1b6f [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+1.45.2" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }` [INFO] [stdout] e82e6e531a9ba04a6a89b807799586b9cdc5199540d69bbc5fb12331f5f73ea4 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "e82e6e531a9ba04a6a89b807799586b9cdc5199540d69bbc5fb12331f5f73ea4", kill_on_drop: false }` [INFO] [stderr] Compiling worklog v0.1.4-alpha (/opt/rustwide/workdir) [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/timeclock/mod.rs:25:36 [INFO] [stdout] | [INFO] [stdout] 25 | let mut in_v: Vec = try!(rdr.deserialize().collect()); [INFO] [stdout] | ^^^ [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(deprecated)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:18:9 [INFO] [stdout] | [INFO] [stdout] 18 | try ! [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:21:40 [INFO] [stdout] | [INFO] [stdout] 21 | self . expected . len() == 0 { try ! (write ! (fmt, "EOF")) ; } else [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:24:13 [INFO] [stdout] | [INFO] [stdout] 24 | try ! [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:30:55 [INFO] [stdout] | [INFO] [stdout] 30 | let mut iter = self . expected . iter() ; try ! [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:34:15 [INFO] [stdout] | [INFO] [stdout] 34 | { try ! (write ! (fmt, ", `{}`", escape_default(elem))) ; } [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:62:15 [INFO] [stdout] | [INFO] [stdout] 62 | let res = try!(grammar::rounding(fmt)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:69:18 [INFO] [stdout] | [INFO] [stdout] 69 | let offset = try!(grammar::offset(offset)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:79:34 [INFO] [stdout] | [INFO] [stdout] 79 | let (hour, minute, second) = try!(grammar::time(input)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:81:16 [INFO] [stdout] | [INFO] [stdout] 81 | let time = try!(time.with_hour(hour).ok_or(ParseError::Hour)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:82:16 [INFO] [stdout] | [INFO] [stdout] 82 | let time = try!(time.with_minute(minute).ok_or(ParseError::Minute)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:83:16 [INFO] [stdout] | [INFO] [stdout] 83 | let time = try!(time.with_second(second as u32).ok_or(ParseError::Second)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:84:16 [INFO] [stdout] | [INFO] [stdout] 84 | let time = try!(time.with_nanosecond(nanosecond as u32) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:94:9 [INFO] [stdout] | [INFO] [stdout] 94 | try!(grammar::datetime(input)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:111:16 [INFO] [stdout] | [INFO] [stdout] 111 | let time = try!(time.with_hour(hour).ok_or(ParseError::Hour)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:112:16 [INFO] [stdout] | [INFO] [stdout] 112 | let time = try!(time.with_minute(minute).ok_or(ParseError::Minute)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:113:16 [INFO] [stdout] | [INFO] [stdout] 113 | let time = try!(time.with_second(second as u32).ok_or(ParseError::Second)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/parsers.rs:115:16 [INFO] [stdout] | [INFO] [stdout] 115 | let time = try!(time.with_nanosecond(nanosecond as u32) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:39:23 [INFO] [stdout] | [INFO] [stdout] 39 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:50:23 [INFO] [stdout] | [INFO] [stdout] 50 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:70:23 [INFO] [stdout] | [INFO] [stdout] 70 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:133:20 [INFO] [stdout] | [INFO] [stdout] 133 | let csv_path = try!(get_csv_path()); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:135:24 [INFO] [stdout] | [INFO] [stdout] 135 | let mut csv_file = try!(OpenOptions::new() [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:143:13 [INFO] [stdout] | [INFO] [stdout] 143 | try!(parsers::parse_rounding(ROUNDING_DEFAULT)) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:145:13 [INFO] [stdout] | [INFO] [stdout] 145 | try!(parsers::parse_rounding(matches.value_of("round_ex").unwrap())) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:156:57 [INFO] [stdout] | [INFO] [stdout] 156 | let mut range: Vec> = try!(range.map(|a| parsers::parse_datetime(a, ctime)) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:176:17 [INFO] [stdout] | [INFO] [stdout] 176 | try!(parsers::parse_datetime(a, ctime) [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:188:9 [INFO] [stdout] | [INFO] [stdout] 188 | try!(print_short_summary(&csv_file, start_date, end_date, rounding)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:191:9 [INFO] [stdout] | [INFO] [stdout] 191 | try!(print_csv_entries(&csv_file)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stdout] --> src/main.rs:198:9 [INFO] [stdout] | [INFO] [stdout] 198 | try!(print_short_summary(&csv_file, start_date, today, rounding)); [INFO] [stdout] | ^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:63:32 [INFO] [stdout] | [INFO] [stdout] 63 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:65:56 [INFO] [stdout] | [INFO] [stdout] 65 | WorklogError::Env(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:66:55 [INFO] [stdout] | [INFO] [stdout] 66 | WorklogError::Io(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:67:63 [INFO] [stdout] | [INFO] [stdout] 67 | WorklogError::CronoParse(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:68:62 [INFO] [stdout] | [INFO] [stdout] 68 | WorklogError::TimeClock(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/error.rs:69:63 [INFO] [stdout] | [INFO] [stdout] 69 | WorklogError::ParseError(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/timeclock/error.rs:25:32 [INFO] [stdout] | [INFO] [stdout] 25 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/timeclock/error.rs:27:58 [INFO] [stdout] | [INFO] [stdout] 27 | TimeClockError::Csv(ref err) => err as &Error, [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:82:459 [INFO] [stdout] | [INFO] [stdout] 82 | fn __parse_number < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] | [INFO] [stdout] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:84:460 [INFO] [stdout] | [INFO] [stdout] 84 | fn __parse_decimal < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:86:852 [INFO] [stdout] | [INFO] [stdout] 86 | fn __parse_signed_decimal < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let __seq_res = match { let __choice_res = slice_eq ( __input , __state , __pos , "+" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "-" ) } } { Matched ( __newpos , _ ) => { Matched ( __newpos , ( ) ) } , Failed => { Matched ( __pos , ( ) ) } , } ; match __seq_res { Matched ( __pos , _ ) => { { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } } Failed => Failed , } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:110:505 [INFO] [stdout] | [INFO] [stdout] 110 | fn __parse_offset_hh < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:112:505 [INFO] [stdout] | [INFO] [stdout] 112 | fn __parse_offset_mm < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 2 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:124:500 [INFO] [stdout] | [INFO] [stdout] 124 | fn __parse_hour < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:126:502 [INFO] [stdout] | [INFO] [stdout] 126 | fn __parse_minute < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 2 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:128:503 [INFO] [stdout] | [INFO] [stdout] 128 | fn __parse_second < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 12 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:166:500 [INFO] [stdout] | [INFO] [stdout] 166 | fn __parse_year < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 4 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 4 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:168:501 [INFO] [stdout] | [INFO] [stdout] 168 | fn __parse_month < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: `...` range patterns are deprecated [INFO] [stdout] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:170:499 [INFO] [stdout] | [INFO] [stdout] 170 | fn __parse_day < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stdout] | ^^^ help: use `..=` for an inclusive range [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parsers.rs:44:32 [INFO] [stdout] | [INFO] [stdout] 44 | fn cause(&self) -> Option<&Error> { [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stdout] --> src/parsers.rs:46:53 [INFO] [stdout] | [INFO] [stdout] 46 | ParseError::PE(ref err) => Some(err as &Error), [INFO] [stdout] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead. [INFO] [stdout] --> src/main.rs:88:31 [INFO] [stdout] | [INFO] [stdout] 88 | let mut data_path = match env::home_dir() { [INFO] [stdout] | ^^^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:55:47 [INFO] [stdout] | [INFO] [stdout] 55 | WorklogError::Env(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:56:46 [INFO] [stdout] | [INFO] [stdout] 56 | WorklogError::Io(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:57:54 [INFO] [stdout] | [INFO] [stdout] 57 | WorklogError::CronoParse(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:58:53 [INFO] [stdout] | [INFO] [stdout] 58 | WorklogError::TimeClock(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/error.rs:59:54 [INFO] [stdout] | [INFO] [stdout] 59 | WorklogError::ParseError(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/timeclock/error.rs:21:49 [INFO] [stdout] | [INFO] [stdout] 21 | TimeClockError::Csv(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/parsers.rs:33:44 [INFO] [stdout] | [INFO] [stdout] 33 | ParseError::PE(ref err) => err.description(), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stdout] --> src/parsers.rs:56:41 [INFO] [stdout] | [INFO] [stdout] 56 | _ => fmt::Display::fmt(self.description(), f), [INFO] [stdout] | ^^^^^^^^^^^ [INFO] [stdout] [INFO] [stdout] [INFO] [stdout] warning: 60 warnings emitted [INFO] [stdout] [INFO] [stdout] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 4.41s [INFO] running `Command { std: "docker" "inspect" "e82e6e531a9ba04a6a89b807799586b9cdc5199540d69bbc5fb12331f5f73ea4", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "e82e6e531a9ba04a6a89b807799586b9cdc5199540d69bbc5fb12331f5f73ea4", kill_on_drop: false }` [INFO] [stdout] e82e6e531a9ba04a6a89b807799586b9cdc5199540d69bbc5fb12331f5f73ea4 [INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-10/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+1.45.2" "test" "--frozen", kill_on_drop: false }` [INFO] [stdout] 8ed611a9037579b75e379f4300a5f0d4b5570d491b59b73c357509c3c8821cb8 [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] running `Command { std: "docker" "start" "-a" "8ed611a9037579b75e379f4300a5f0d4b5570d491b59b73c357509c3c8821cb8", kill_on_drop: false }` [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/timeclock/mod.rs:25:36 [INFO] [stderr] | [INFO] [stderr] 25 | let mut in_v: Vec = try!(rdr.deserialize().collect()); [INFO] [stderr] | ^^^ [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(deprecated)]` on by default [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:18:9 [INFO] [stderr] | [INFO] [stderr] 18 | try ! [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:21:40 [INFO] [stderr] | [INFO] [stderr] 21 | self . expected . len() == 0 { try ! (write ! (fmt, "EOF")) ; } else [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:24:13 [INFO] [stderr] | [INFO] [stderr] 24 | try ! [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:30:55 [INFO] [stderr] | [INFO] [stderr] 30 | let mut iter = self . expected . iter() ; try ! [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:34:15 [INFO] [stderr] | [INFO] [stderr] 34 | { try ! (write ! (fmt, ", `{}`", escape_default(elem))) ; } [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:62:15 [INFO] [stderr] | [INFO] [stderr] 62 | let res = try!(grammar::rounding(fmt)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:69:18 [INFO] [stderr] | [INFO] [stderr] 69 | let offset = try!(grammar::offset(offset)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:79:34 [INFO] [stderr] | [INFO] [stderr] 79 | let (hour, minute, second) = try!(grammar::time(input)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:81:16 [INFO] [stderr] | [INFO] [stderr] 81 | let time = try!(time.with_hour(hour).ok_or(ParseError::Hour)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:82:16 [INFO] [stderr] | [INFO] [stderr] 82 | let time = try!(time.with_minute(minute).ok_or(ParseError::Minute)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:83:16 [INFO] [stderr] | [INFO] [stderr] 83 | let time = try!(time.with_second(second as u32).ok_or(ParseError::Second)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:84:16 [INFO] [stderr] | [INFO] [stderr] 84 | let time = try!(time.with_nanosecond(nanosecond as u32) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:94:9 [INFO] [stderr] | [INFO] [stderr] 94 | try!(grammar::datetime(input)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:111:16 [INFO] [stderr] | [INFO] [stderr] 111 | let time = try!(time.with_hour(hour).ok_or(ParseError::Hour)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:112:16 [INFO] [stderr] | [INFO] [stderr] 112 | let time = try!(time.with_minute(minute).ok_or(ParseError::Minute)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:113:16 [INFO] [stderr] | [INFO] [stderr] 113 | let time = try!(time.with_second(second as u32).ok_or(ParseError::Second)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/parsers.rs:115:16 [INFO] [stderr] | [INFO] [stderr] 115 | let time = try!(time.with_nanosecond(nanosecond as u32) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:39:23 [INFO] [stderr] | [INFO] [stderr] 39 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:50:23 [INFO] [stderr] | [INFO] [stderr] 50 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:70:23 [INFO] [stderr] | [INFO] [stderr] 70 | let csv_entries = try!(timeclock::read_timesheet(file)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:133:20 [INFO] [stderr] | [INFO] [stderr] 133 | let csv_path = try!(get_csv_path()); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:135:24 [INFO] [stderr] | [INFO] [stderr] 135 | let mut csv_file = try!(OpenOptions::new() [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:143:13 [INFO] [stderr] | [INFO] [stderr] 143 | try!(parsers::parse_rounding(ROUNDING_DEFAULT)) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:145:13 [INFO] [stderr] | [INFO] [stderr] 145 | try!(parsers::parse_rounding(matches.value_of("round_ex").unwrap())) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:156:57 [INFO] [stderr] | [INFO] [stderr] 156 | let mut range: Vec> = try!(range.map(|a| parsers::parse_datetime(a, ctime)) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:176:17 [INFO] [stderr] | [INFO] [stderr] 176 | try!(parsers::parse_datetime(a, ctime) [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:188:9 [INFO] [stderr] | [INFO] [stderr] 188 | try!(print_short_summary(&csv_file, start_date, end_date, rounding)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:191:9 [INFO] [stderr] | [INFO] [stderr] 191 | try!(print_csv_entries(&csv_file)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'try': use the `?` operator instead [INFO] [stderr] --> src/main.rs:198:9 [INFO] [stderr] | [INFO] [stderr] 198 | try!(print_short_summary(&csv_file, start_date, today, rounding)); [INFO] [stderr] | ^^^ [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:63:32 [INFO] [stderr] | [INFO] [stderr] 63 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(bare_trait_objects)]` on by default [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:65:56 [INFO] [stderr] | [INFO] [stderr] 65 | WorklogError::Env(ref err) => Some(err as &Error), [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:66:55 [INFO] [stderr] | [INFO] [stderr] 66 | WorklogError::Io(ref err) => Some(err as &Error), [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:67:63 [INFO] [stderr] | [INFO] [stderr] 67 | WorklogError::CronoParse(ref err) => Some(err as &Error), [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:68:62 [INFO] [stderr] | [INFO] [stderr] 68 | WorklogError::TimeClock(ref err) => Some(err as &Error), [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/error.rs:69:63 [INFO] [stderr] | [INFO] [stderr] 69 | WorklogError::ParseError(ref err) => Some(err as &Error), [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/timeclock/error.rs:25:32 [INFO] [stderr] | [INFO] [stderr] 25 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/timeclock/error.rs:27:58 [INFO] [stderr] | [INFO] [stderr] 27 | TimeClockError::Csv(ref err) => err as &Error, [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:82:459 [INFO] [stderr] | [INFO] [stderr] 82 | fn __parse_number < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] | [INFO] [stderr] = note: `#[warn(ellipsis_inclusive_range_patterns)]` on by default [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:84:460 [INFO] [stderr] | [INFO] [stderr] 84 | fn __parse_decimal < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:86:852 [INFO] [stderr] | [INFO] [stderr] 86 | fn __parse_signed_decimal < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let __seq_res = match { let __choice_res = slice_eq ( __input , __state , __pos , "+" ) ; match __choice_res { Matched ( __pos , __value ) => Matched ( __pos , __value ) , Failed => slice_eq ( __input , __state , __pos , "-" ) } } { Matched ( __newpos , _ ) => { Matched ( __newpos , ( ) ) } , Failed => { Matched ( __pos , ( ) ) } , } ; match __seq_res { Matched ( __pos , _ ) => { { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } } Failed => Failed , } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:110:505 [INFO] [stderr] | [INFO] [stderr] 110 | fn __parse_offset_hh < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:112:505 [INFO] [stderr] | [INFO] [stderr] 112 | fn __parse_offset_mm < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 2 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:124:500 [INFO] [stderr] | [INFO] [stderr] 124 | fn __parse_hour < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:126:502 [INFO] [stderr] | [INFO] [stderr] 126 | fn __parse_minute < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 2 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:128:503 [INFO] [stderr] | [INFO] [stderr] 128 | fn __parse_second < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < f32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 12 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' | '.' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9.]" ) , } } else { __state . mark_failure ( __pos , "[0-9.]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:166:500 [INFO] [stderr] | [INFO] [stderr] 166 | fn __parse_year < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < i32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 4 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 4 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:168:501 [INFO] [stderr] | [INFO] [stderr] 168 | fn __parse_month < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: `...` range patterns are deprecated [INFO] [stderr] --> /opt/rustwide/target/debug/build/worklog-f1761ce4edff39ec/out/grammar.rs:170:499 [INFO] [stderr] | [INFO] [stderr] 170 | fn __parse_day < 'input > ( __input : & 'input str , __state : & mut ParseState < 'input > , __pos : usize ) -> RuleResult < u32 > { # ! [ allow ( non_snake_case , unused ) ] { let __seq_res = { let str_start = __pos ; match { let mut __repeat_pos = __pos ; let mut __repeat_value = vec ! ( ) ; loop { let __pos = __repeat_pos ; if __repeat_value . len ( ) >= 2 { break } let __step_res = if __input . len ( ) > __pos { let ( __ch , __next ) = char_range_at ( __input , __pos ) ; match __ch { '0' ... '9' => Matched ( __next , ( ) ) , _ => __state . mark_failure ( __pos , "[0-9]" ) , } } else { __state . mark_failure ( __pos , "[0-9]" ) } ; match __step_res { Matched ( __newpos , __value ) => { __repeat_pos = __newpos ; __repeat_value . push ( __value ) ; } , Failed => { break ; } } } if __repeat_value . len ( ) >= 1 { Matched ( __repeat_pos , ( ) ) } else { Failed } } { Matched ( __newpos , _ ) => { Matched ( __newpos , & __input [ str_start .. __newpos ] ) } , Failed => Failed , } } ; match __seq_res { Matched ( __pos , n ) => { Matched ( __pos , { n.parse().unwrap() } ) } Failed => Failed , } } } [INFO] [stderr] | ^^^ help: use `..=` for an inclusive range [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parsers.rs:44:32 [INFO] [stderr] | [INFO] [stderr] 44 | fn cause(&self) -> Option<&Error> { [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: trait objects without an explicit `dyn` are deprecated [INFO] [stderr] --> src/parsers.rs:46:53 [INFO] [stderr] | [INFO] [stderr] 46 | ParseError::PE(ref err) => Some(err as &Error), [INFO] [stderr] | ^^^^^ help: use `dyn`: `dyn Error` [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::env::home_dir': This function's behavior is unexpected and probably not what you want. Consider using a crate from crates.io instead. [INFO] [stderr] --> src/main.rs:88:31 [INFO] [stderr] | [INFO] [stderr] 88 | let mut data_path = match env::home_dir() { [INFO] [stderr] | ^^^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:55:47 [INFO] [stderr] | [INFO] [stderr] 55 | WorklogError::Env(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:56:46 [INFO] [stderr] | [INFO] [stderr] 56 | WorklogError::Io(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:57:54 [INFO] [stderr] | [INFO] [stderr] 57 | WorklogError::CronoParse(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:58:53 [INFO] [stderr] | [INFO] [stderr] 58 | WorklogError::TimeClock(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/error.rs:59:54 [INFO] [stderr] | [INFO] [stderr] 59 | WorklogError::ParseError(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/timeclock/error.rs:21:49 [INFO] [stderr] | [INFO] [stderr] 21 | TimeClockError::Csv(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/parsers.rs:33:44 [INFO] [stderr] | [INFO] [stderr] 33 | ParseError::PE(ref err) => err.description(), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: use of deprecated item 'std::error::Error::description': use the Display impl or to_string() [INFO] [stderr] --> src/parsers.rs:56:41 [INFO] [stderr] | [INFO] [stderr] 56 | _ => fmt::Display::fmt(self.description(), f), [INFO] [stderr] | ^^^^^^^^^^^ [INFO] [stderr] [INFO] [stderr] warning: 60 warnings emitted [INFO] [stderr] [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.12s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/worklog-a7e4f968ba8d9272 [INFO] [stdout] [INFO] [stdout] running 37 tests [INFO] [stdout] test parsers::tests::offset_test ... ok [INFO] [stdout] test timeclock::daterecord::tests::fmt_display_test ... ok [INFO] [stdout] test timeclock::daterecord::tests::memo_methods_test ... ok [INFO] [stdout] test timeclock::daterecord::tests::duration_methods_test ... ok [INFO] [stdout] test parsers::tests::parse_offset_test ... ok [INFO] [stdout] test parsers::tests::datetime_test ... ok [INFO] [stdout] test parsers::tests::parse_time_test ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_in_invalid_test ... ok [INFO] [stdout] test timeclock::daterecord::tests::combine_test ... ok [INFO] [stdout] test parsers::tests::parse_rounding_test ... ok [INFO] [stdout] test timeclock::iterators::tests::date_record_iter_test ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_in_in_test ... ok [INFO] [stdout] test timeclock::daterecord::tests::fmt_debug_test ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_in_out_test ... ok [INFO] [stdout] test parsers::tests::parse_datetime_test ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_out_invalid_test ... ok [INFO] [stdout] test timeclock::iterators::tests::to_daterecords ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_invalid_invalid_test ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_out_out_test ... ok [INFO] [stdout] test timeclock::tests::collect_date_records_test ... ok [INFO] [stdout] test timeclock::tests::mark_time_test ... ok [INFO] [stdout] test timeclock::iterators::tests::iter_out_in_test ... ok [INFO] [stdout] test timeclock::timeentry::tests::timeentry_print_test ... ok [INFO] [stdout] test util::tests::round_none_test ... ok [INFO] [stdout] test util::tests::round_down_test ... ok [INFO] [stdout] test timeclock::tests::pair_time_entries_test ... ok [INFO] [stdout] test timeclock::tests::pair_time_entries_double_in_test ... ok [INFO] [stdout] test util::tests::round_half_test ... ok [INFO] [stdout] test timeclock::tests::read_timesheet_test ... ok [INFO] [stdout] test timeclock::tests::read_timesheet_haggis_test ... ok [INFO] [stdout] test util::tests::round_quarter_test ... ok [INFO] [stdout] test util::tests::round_zero_test ... ok [INFO] [stdout] test util::tests::round_up_test ... ok [INFO] [stdout] test parsers::tests::time_test ... ok [INFO] [stdout] test timeclock::timeentry::tests::timeentrypair_test ... ok [INFO] [stdout] test timeclock::tests::collect_date_records_tz_test ... ok [INFO] [stdout] test parsers::tests::parse_datetime_seperator_test ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 37 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `Command { std: "docker" "inspect" "8ed611a9037579b75e379f4300a5f0d4b5570d491b59b73c357509c3c8821cb8", kill_on_drop: false }` [INFO] running `Command { std: "docker" "rm" "-f" "8ed611a9037579b75e379f4300a5f0d4b5570d491b59b73c357509c3c8821cb8", kill_on_drop: false }` [INFO] [stdout] 8ed611a9037579b75e379f4300a5f0d4b5570d491b59b73c357509c3c8821cb8