[INFO] cloning repository https://github.com/JohnPeng47/source_analyzer
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/JohnPeng47/source_analyzer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohnPeng47%2Fsource_analyzer", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohnPeng47%2Fsource_analyzer'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 144a7f73fd98cb440a2d262c3df8526cafb24ad8
[INFO] testing JohnPeng47/source_analyzer against beta-2020-10-09 for beta-1.48-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FJohnPeng47%2Fsource_analyzer" "/workspace/builds/worker-4/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/JohnPeng47/source_analyzer on toolchain beta-2020-10-09
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/JohnPeng47/source_analyzer
[INFO] finished tweaking git repo https://github.com/JohnPeng47/source_analyzer
[INFO] tweaked toml for git repo https://github.com/JohnPeng47/source_analyzer written to /workspace/builds/worker-4/source/Cargo.toml
[INFO] crate git repo https://github.com/JohnPeng47/source_analyzer already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-10-09" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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" "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" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] fd3ce4afbd15a7922b7537b5439615ab2bdfc5eef78d4e24654a3d70ec93865e
[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" "fd3ce4afbd15a7922b7537b5439615ab2bdfc5eef78d4e24654a3d70ec93865e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "fd3ce4afbd15a7922b7537b5439615ab2bdfc5eef78d4e24654a3d70ec93865e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "fd3ce4afbd15a7922b7537b5439615ab2bdfc5eef78d4e24654a3d70ec93865e", kill_on_drop: false }`
[INFO] [stdout] fd3ce4afbd15a7922b7537b5439615ab2bdfc5eef78d4e24654a3d70ec93865e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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" "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" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "build" "--frozen" "--message-format=json", 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] 82efde77661f7bdfc15f8b407fd00e20537b89b9925a2b8fdb884aab4a8a490d
[INFO] running `Command { std: "docker" "start" "-a" "82efde77661f7bdfc15f8b407fd00e20537b89b9925a2b8fdb884aab4a8a490d", kill_on_drop: false }`
[INFO] [stderr]    Compiling source_analyzer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`
[INFO] [stdout]  --> src/main.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{BufRead, BufReader}; //BufRead implements the lines trait
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/source_file.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let class = String::from("");
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function`
[INFO] [stdout]   --> src/source_file.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let function = String::from("");
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_scope`
[INFO] [stdout]   --> src/source_file.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut function_scope = Vec::<char>::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_scope`
[INFO] [stdout]   --> src/source_file.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut class_scope = Vec::<char>::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_buf`
[INFO] [stdout]    --> src/source_file.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let function_buf = Vec::<&String>::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn path_cb(entry: &DirEntry, mut files: &mut SourceFiles) -> () {
[INFO] [stdout]    |                              ----^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut source_file = SourceFile {
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_file.rs:59:38
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn parse_brackets(line: &String, mut stack: &mut Vec<char>) -> bool {
[INFO] [stdout]    |                                      ----^^^^^
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_file.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut function_scope = Vec::<char>::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_file.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut class_scope = Vec::<char>::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/source_file.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let mut line_trimmed: Vec<String> = line.split_whitespace().map(String::from).collect();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `content`
[INFO] [stdout]   --> src/source_file.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     content: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_pat`
[INFO] [stdout]   --> src/source_file.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_pat<'a>(line: &'a str, pat: &str) -> Option<&'a str> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `parse_brackets`
[INFO] [stdout]   --> src/source_file.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn parse_brackets(line: &String, mut stack: &mut Vec<char>) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `function_pats`
[INFO] [stdout]   --> src/main.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | const function_pats: &'static [&'static str] = &[r"(public|private).+{$"];
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `function_pats` should have an upper case name
[INFO] [stdout]   --> src/main.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const function_pats: &'static [&'static str] = &[r"(public|private).+{$"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^ help: convert the identifier to upper case: `FUNCTION_PATS`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     visit_dirs(path, &path_cb, &mut files);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 visit_dirs(&path, &path_cb, &mut files);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 1.93s
[INFO] running `Command { std: "docker" "inspect" "82efde77661f7bdfc15f8b407fd00e20537b89b9925a2b8fdb884aab4a8a490d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "82efde77661f7bdfc15f8b407fd00e20537b89b9925a2b8fdb884aab4a8a490d", kill_on_drop: false }`
[INFO] [stdout] 82efde77661f7bdfc15f8b407fd00e20537b89b9925a2b8fdb884aab4a8a490d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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" "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" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 9c2d324ffa1d4ce3e1ad35b2345a4351a8695a5a35e232b39fc53afc00d7c608
[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" "9c2d324ffa1d4ce3e1ad35b2345a4351a8695a5a35e232b39fc53afc00d7c608", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]    Compiling source_analyzer v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `BufRead`, `BufReader`
[INFO] [stdout]  --> src/main.rs:7:15
[INFO] [stdout]   |
[INFO] [stdout] 7 | use std::io::{BufRead, BufReader}; //BufRead implements the lines trait
[INFO] [stdout]   |               ^^^^^^^  ^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class`
[INFO] [stdout]   --> src/source_file.rs:90:13
[INFO] [stdout]    |
[INFO] [stdout] 90 |         let class = String::from("");
[INFO] [stdout]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function`
[INFO] [stdout]   --> src/source_file.rs:91:13
[INFO] [stdout]    |
[INFO] [stdout] 91 |         let function = String::from("");
[INFO] [stdout]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_scope`
[INFO] [stdout]   --> src/source_file.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut function_scope = Vec::<char>::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `class_scope`
[INFO] [stdout]   --> src/source_file.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut class_scope = Vec::<char>::new();
[INFO] [stdout]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_scope`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `function_buf`
[INFO] [stdout]    --> src/source_file.rs:101:13
[INFO] [stdout]     |
[INFO] [stdout] 101 |         let function_buf = Vec::<&String>::new();
[INFO] [stdout]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_buf`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:32:30
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn path_cb(entry: &DirEntry, mut files: &mut SourceFiles) -> () {
[INFO] [stdout]    |                              ----^^^^^
[INFO] [stdout]    |                              |
[INFO] [stdout]    |                              help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/main.rs:39:13
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let mut source_file = SourceFile {
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_file.rs:59:38
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn parse_brackets(line: &String, mut stack: &mut Vec<char>) -> bool {
[INFO] [stdout]    |                                      ----^^^^^
[INFO] [stdout]    |                                      |
[INFO] [stdout]    |                                      help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_file.rs:97:13
[INFO] [stdout]    |
[INFO] [stdout] 97 |         let mut function_scope = Vec::<char>::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/source_file.rs:98:13
[INFO] [stdout]    |
[INFO] [stdout] 98 |         let mut class_scope = Vec::<char>::new();
[INFO] [stdout]    |             ----^^^^^^^^^^^
[INFO] [stdout]    |             |
[INFO] [stdout]    |             help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]    --> src/source_file.rs:112:17
[INFO] [stdout]     |
[INFO] [stdout] 112 |             let mut line_trimmed: Vec<String> = line.split_whitespace().map(String::from).collect();
[INFO] [stdout]     |                 ----^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 help: remove this `mut`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field is never read: `content`
[INFO] [stdout]   --> src/source_file.rs:32:5
[INFO] [stdout]    |
[INFO] [stdout] 32 |     content: Vec<String>,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `find_pat`
[INFO] [stdout]   --> src/source_file.rs:39:8
[INFO] [stdout]    |
[INFO] [stdout] 39 |     fn find_pat<'a>(line: &'a str, pat: &str) -> Option<&'a str> {
[INFO] [stdout]    |        ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function is never used: `parse_brackets`
[INFO] [stdout]   --> src/source_file.rs:59:8
[INFO] [stdout]    |
[INFO] [stdout] 59 |     fn parse_brackets(line: &String, mut stack: &mut Vec<char>) -> bool {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant is never used: `function_pats`
[INFO] [stdout]   --> src/main.rs:12:1
[INFO] [stdout]    |
[INFO] [stdout] 12 | const function_pats: &'static [&'static str] = &[r"(public|private).+{$"];
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `function_pats` should have an upper case name
[INFO] [stdout]   --> src/main.rs:12:7
[INFO] [stdout]    |
[INFO] [stdout] 12 | const function_pats: &'static [&'static str] = &[r"(public|private).+{$"];
[INFO] [stdout]    |       ^^^^^^^^^^^^^ help: convert the identifier to upper case: `FUNCTION_PATS`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:24:5
[INFO] [stdout]    |
[INFO] [stdout] 24 |     visit_dirs(path, &path_cb, &mut files);
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `std::result::Result` that must be used
[INFO] [stdout]   --> src/main.rs:65:17
[INFO] [stdout]    |
[INFO] [stdout] 65 |                 visit_dirs(&path, &path_cb, &mut files);
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 19 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.86s
[INFO] running `Command { std: "docker" "inspect" "9c2d324ffa1d4ce3e1ad35b2345a4351a8695a5a35e232b39fc53afc00d7c608", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "9c2d324ffa1d4ce3e1ad35b2345a4351a8695a5a35e232b39fc53afc00d7c608", kill_on_drop: false }`
[INFO] [stdout] 9c2d324ffa1d4ce3e1ad35b2345a4351a8695a5a35e232b39fc53afc00d7c608
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4/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" "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" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:d92eaeed33fa75130ca1ee6c8a01d1ffb62bac859dfdfb3450e3e5d1c0146529" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-10-09" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] d7679983bf15e4c42f0ef68fb7ac451fe224c2221899d6c499a1440dc85bad2e
[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" "d7679983bf15e4c42f0ef68fb7ac451fe224c2221899d6c499a1440dc85bad2e", kill_on_drop: false }`
[INFO] [stderr] warning: unused imports: `BufRead`, `BufReader`
[INFO] [stderr]  --> src/main.rs:7:15
[INFO] [stderr]   |
[INFO] [stderr] 7 | use std::io::{BufRead, BufReader}; //BufRead implements the lines trait
[INFO] [stderr]   |               ^^^^^^^  ^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `class`
[INFO] [stderr]   --> src/source_file.rs:90:13
[INFO] [stderr]    |
[INFO] [stderr] 90 |         let class = String::from("");
[INFO] [stderr]    |             ^^^^^ help: if this is intentional, prefix it with an underscore: `_class`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `function`
[INFO] [stderr]   --> src/source_file.rs:91:13
[INFO] [stderr]    |
[INFO] [stderr] 91 |         let function = String::from("");
[INFO] [stderr]    |             ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `function_scope`
[INFO] [stderr]   --> src/source_file.rs:97:13
[INFO] [stderr]    |
[INFO] [stderr] 97 |         let mut function_scope = Vec::<char>::new();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_scope`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `class_scope`
[INFO] [stderr]   --> src/source_file.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let mut class_scope = Vec::<char>::new();
[INFO] [stderr]    |             ^^^^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_class_scope`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `function_buf`
[INFO] [stderr]    --> src/source_file.rs:101:13
[INFO] [stderr]     |
[INFO] [stderr] 101 |         let function_buf = Vec::<&String>::new();
[INFO] [stderr]     |             ^^^^^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_function_buf`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:32:30
[INFO] [stderr]    |
[INFO] [stderr] 32 | fn path_cb(entry: &DirEntry, mut files: &mut SourceFiles) -> () {
[INFO] [stderr]    |                              ----^^^^^
[INFO] [stderr]    |                              |
[INFO] [stderr]    |                              help: remove this `mut`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/main.rs:39:13
[INFO] [stderr]    |
[INFO] [stderr] 39 |         let mut source_file = SourceFile {
[INFO] [stderr]    |             ----^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/source_file.rs:59:38
[INFO] [stderr]    |
[INFO] [stderr] 59 |     fn parse_brackets(line: &String, mut stack: &mut Vec<char>) -> bool {
[INFO] [stderr]    |                                      ----^^^^^
[INFO] [stderr]    |                                      |
[INFO] [stderr]    |                                      help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/source_file.rs:97:13
[INFO] [stderr]    |
[INFO] [stderr] 97 |         let mut function_scope = Vec::<char>::new();
[INFO] [stderr]    |             ----^^^^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]   --> src/source_file.rs:98:13
[INFO] [stderr]    |
[INFO] [stderr] 98 |         let mut class_scope = Vec::<char>::new();
[INFO] [stderr]    |             ----^^^^^^^^^^^
[INFO] [stderr]    |             |
[INFO] [stderr]    |             help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: variable does not need to be mutable
[INFO] [stderr]    --> src/source_file.rs:112:17
[INFO] [stderr]     |
[INFO] [stderr] 112 |             let mut line_trimmed: Vec<String> = line.split_whitespace().map(String::from).collect();
[INFO] [stderr]     |                 ----^^^^^^^^^^^^
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 help: remove this `mut`
[INFO] [stderr] 
[INFO] [stderr] warning: field is never read: `content`
[INFO] [stderr]   --> src/source_file.rs:32:5
[INFO] [stderr]    |
[INFO] [stderr] 32 |     content: Vec<String>,
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `find_pat`
[INFO] [stderr]   --> src/source_file.rs:39:8
[INFO] [stderr]    |
[INFO] [stderr] 39 |     fn find_pat<'a>(line: &'a str, pat: &str) -> Option<&'a str> {
[INFO] [stderr]    |        ^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: associated function is never used: `parse_brackets`
[INFO] [stderr]   --> src/source_file.rs:59:8
[INFO] [stderr]    |
[INFO] [stderr] 59 |     fn parse_brackets(line: &String, mut stack: &mut Vec<char>) -> bool {
[INFO] [stderr]    |        ^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant is never used: `function_pats`
[INFO] [stderr]   --> src/main.rs:12:1
[INFO] [stderr]    |
[INFO] [stderr] 12 | const function_pats: &'static [&'static str] = &[r"(public|private).+{$"];
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: constant `function_pats` should have an upper case name
[INFO] [stderr]   --> src/main.rs:12:7
[INFO] [stderr]    |
[INFO] [stderr] 12 | const function_pats: &'static [&'static str] = &[r"(public|private).+{$"];
[INFO] [stderr]    |       ^^^^^^^^^^^^^ help: convert the identifier to upper case: `FUNCTION_PATS`
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(non_upper_case_globals)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/main.rs:24:5
[INFO] [stderr]    |
[INFO] [stderr] 24 |     visit_dirs(path, &path_cb, &mut files);
[INFO] [stderr]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_must_use)]` on by default
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: unused `std::result::Result` that must be used
[INFO] [stderr]   --> src/main.rs:65:17
[INFO] [stderr]    |
[INFO] [stderr] 65 |                 visit_dirs(&path, &path_cb, &mut files);
[INFO] [stderr]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stderr] 
[INFO] [stderr] warning: 19 warnings emitted
[INFO] [stderr] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.06s
[INFO] [stderr]      Running /opt/rustwide/target/debug/deps/source_analyzer-d3430cc5a94c4603
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "d7679983bf15e4c42f0ef68fb7ac451fe224c2221899d6c499a1440dc85bad2e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d7679983bf15e4c42f0ef68fb7ac451fe224c2221899d6c499a1440dc85bad2e", kill_on_drop: false }`
[INFO] [stdout] d7679983bf15e4c42f0ef68fb7ac451fe224c2221899d6c499a1440dc85bad2e
