[INFO] fetching crate thrust 0.1.0...
[INFO] testing thrust-0.1.0 against beta-2025-09-21 for beta-1.91-3
[INFO] extracting crate thrust 0.1.0 into /workspace/builds/worker-6-tc2/source
[INFO] started tweaking crates.io crate thrust 0.1.0
[INFO] finished tweaking crates.io crate thrust 0.1.0
[INFO] tweaked toml for crates.io crate thrust 0.1.0 written to /workspace/builds/worker-6-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate thrust 0.1.0 on toolchain beta-2025-09-21
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 17 packages to latest compatible versions
[INFO] [stderr]       Adding docopt v0.6.86 (available: v1.1.1)
[INFO] [stderr]       Adding nom v1.2.4 (available: v8.0.0)
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-09-21" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 496239e1eaaaffed1b20fd897f5612dfa7b9b306621e95cb9accc5fc28e5f82c
[INFO] running `Command { std: "docker" "start" "-a" "496239e1eaaaffed1b20fd897f5612dfa7b9b306621e95cb9accc5fc28e5f82c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "496239e1eaaaffed1b20fd897f5612dfa7b9b306621e95cb9accc5fc28e5f82c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "496239e1eaaaffed1b20fd897f5612dfa7b9b306621e95cb9accc5fc28e5f82c", kill_on_drop: false }`
[INFO] [stdout] 496239e1eaaaffed1b20fd897f5612dfa7b9b306621e95cb9accc5fc28e5f82c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-6-tc2/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" "RUSTDOCFLAGS=--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" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-09-21" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f914cc4849488483a188f29bc7b713451238b7bf395e0c23f13b7764104049e6
[INFO] running `Command { std: "docker" "start" "-a" "f914cc4849488483a188f29bc7b713451238b7bf395e0c23f13b7764104049e6", kill_on_drop: false }`
[INFO] [stderr] warning: no edition set: defaulting to the 2015 edition while the latest is 2024
[INFO] [stderr]    Compiling regex v0.1.80
[INFO] [stderr]    Compiling strsim v0.5.2
[INFO] [stderr]    Compiling nom v1.2.4
[INFO] [stderr]    Compiling docopt v0.6.86
[INFO] [stderr]    Compiling thrust v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]  --> src/lib.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::str;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused doc comment
[INFO] [stdout]    --> src/parser.rs:163:1
[INFO] [stdout]     |
[INFO] [stdout] 163 | / /// ```notrust
[INFO] [stdout] 164 | | /// struct Foobar {
[INFO] [stdout] 165 | | ///     1: string name
[INFO] [stdout] 166 | | /// }
[INFO] [stdout] 167 | | /// ```
[INFO] [stdout]     | |_------^
[INFO] [stdout]     |   |
[INFO] [stdout]     |   rustdoc does not generate documentation for macro invocations
[INFO] [stdout]     |
[INFO] [stdout]     = help: to document an item produced by a macro, the macro must produce the documentation as part of its expansion
[INFO] [stdout]     = note: `#[warn(unused_doc_comments)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `be_u8`
[INFO] [stdout]  --> src/parser.rs:1:99
[INFO] [stdout]   |
[INFO] [stdout] 1 | use nom::{space, alphanumeric, ErrorKind, IterIndices, IResult, multispace, not_line_ending, Err, be_u8, digit, InputLength, is_alphanume...
[INFO] [stdout]   |                                                                                                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::convert::From`
[INFO] [stdout]  --> src/parser.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use std::convert::From;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Index`, `RangeFrom`, and `Range`
[INFO] [stdout]  --> src/parser.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 | use std::ops::{Index,Range,RangeFrom};
[INFO] [stdout]   |                ^^^^^ ^^^^^ ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `super::*`
[INFO] [stdout]    --> src/parser.rs:219:9
[INFO] [stdout]     |
[INFO] [stdout] 219 |     use super::*;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::str`
[INFO] [stdout]    --> src/parser.rs:220:9
[INFO] [stdout]     |
[INFO] [stdout] 220 |     use std::str;
[INFO] [stdout]     |         ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `nom::IResult::*`
[INFO] [stdout]    --> src/parser.rs:221:9
[INFO] [stdout]     |
[INFO] [stdout] 221 |     use nom::IResult::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Ast`, `FieldMetadataNode`, `FunctionNode`, `IdentNode`, `NamespaceNode`, `ServiceNode`, `StructFieldNode`, `StructNode`, and `Ty`
[INFO] [stdout]    --> src/parser.rs:223:15
[INFO] [stdout]     |
[INFO] [stdout] 223 |     use ast::{IdentNode, StructNode, FunctionNode, ServiceNode, NamespaceNode, StructFieldNode, FieldMetadataNode, Ty, Ast};
[INFO] [stdout]     |               ^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^^  ^^  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `Read`
[INFO] [stdout]  --> src/ast.rs:1:15
[INFO] [stdout]   |
[INFO] [stdout] 1 | use std::io::{Read, Write};
[INFO] [stdout]   |               ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::path::Path`
[INFO] [stdout]  --> src/generator.rs:2:5
[INFO] [stdout]   |
[INFO] [stdout] 2 | use std::path::Path;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Result` and `Write`
[INFO] [stdout]  --> src/generator.rs:3:15
[INFO] [stdout]   |
[INFO] [stdout] 3 | use std::io::{Result, Read, Write};
[INFO] [stdout]   |               ^^^^^^        ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ast::Ast`
[INFO] [stdout]  --> src/generator.rs:5:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | use ast::Ast;
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]   --> src/lib.rs:59:29
[INFO] [stdout]    |
[INFO] [stdout] 59 |                     buffer: try!(String::from_utf8(buf))
[INFO] [stdout]    |                             ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:42:40
[INFO] [stdout]    |
[INFO] [stdout] 42 | named!(pub parse_thrift<&[u8], Vec<Box<Ast> > >, many0!(
[INFO] [stdout]    |                                        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout]    = note: `#[warn(bare_trait_objects)]` (part of `#[warn(rust_2021_compatibility)]`) on by default
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 42 | named!(pub parse_thrift<&[u8], Vec<Box<dyn Ast> > >, many0!(
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]  --> src/ast.rs:4:27
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn gen(&self, w: &mut Write) {}
[INFO] [stdout]   |                           ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]   = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn gen(&self, w: &mut dyn Write) {}
[INFO] [stdout]   |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:49:43
[INFO] [stdout]    |
[INFO] [stdout] 49 | named!(pub parse_ast_namespace<&[u8], Box<Ast> >, chain!(
[INFO] [stdout]    |                                           ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 49 | named!(pub parse_ast_namespace<&[u8], Box<dyn Ast> >, chain!(
[INFO] [stdout]    |                                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]   --> src/parser.rs:54:40
[INFO] [stdout]    |
[INFO] [stdout] 54 | named!(pub parse_ast_struct<&[u8], Box<Ast> >, chain!(
[INFO] [stdout]    |                                        ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]    |
[INFO] [stdout] 54 | named!(pub parse_ast_struct<&[u8], Box<dyn Ast> >, chain!(
[INFO] [stdout]    |                                        +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:195:27
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn gen(&self, w: &mut Write) {}
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn gen(&self, w: &mut dyn Write) {}
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:213:27
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn gen(&self, w: &mut Write) {
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 213 |     fn gen(&self, w: &mut dyn Write) {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:227:27
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn gen(&self, w: &mut Write) {
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 227 |     fn gen(&self, w: &mut dyn Write) {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trait objects without an explicit `dyn` are deprecated
[INFO] [stdout]    --> src/ast.rs:255:27
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn gen(&self, w: &mut Write) {
[INFO] [stdout]     |                           ^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this is accepted in the current edition (Rust 2015) but is a hard error in Rust 2021!
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>
[INFO] [stdout] help: if this is a dyn-compatible trait, use `dyn`
[INFO] [stdout]     |
[INFO] [stdout] 255 |     fn gen(&self, w: &mut dyn Write) {
[INFO] [stdout]     |                           +++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]  --> src/ast.rs:4:19
[INFO] [stdout]   |
[INFO] [stdout] 4 |     fn gen(&self, w: &mut Write) {}
[INFO] [stdout]   |                   ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `w`
[INFO] [stdout]    --> src/ast.rs:195:19
[INFO] [stdout]     |
[INFO] [stdout] 195 |     fn gen(&self, w: &mut Write) {}
[INFO] [stdout]     |                   ^ help: if this is intentional, prefix it with an underscore: `_w`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/generator.rs:18:17
[INFO] [stdout]    |
[INFO] [stdout] 18 |             Err(err) => return "Error opening the input .thrift file."
[INFO] [stdout]    |                 ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/generator.rs:26:27
[INFO] [stdout]    |
[INFO] [stdout] 26 |             IResult::Done(i, o) => println!("Done parsing."),
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `o`
[INFO] [stdout]   --> src/generator.rs:26:30
[INFO] [stdout]    |
[INFO] [stdout] 26 |             IResult::Done(i, o) => println!("Done parsing."),
[INFO] [stdout]    |                              ^ help: if this is intentional, prefix it with an underscore: `_o`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `output`
[INFO] [stdout]   --> src/generator.rs:15:28
[INFO] [stdout]    |
[INFO] [stdout] 15 |     pub fn run(path: &str, output: &str) -> &'static str {
[INFO] [stdout]    |                            ^^^^^^ help: if this is intentional, prefix it with an underscore: `_output`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/lib.rs:26:13
[INFO] [stdout]    |
[INFO] [stdout] 26 |     fn from(err: string::FromUtf8Error) -> ThriftCompilerError {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `i`
[INFO] [stdout]   --> src/lib.rs:40:27
[INFO] [stdout]    |
[INFO] [stdout] 40 |             IResult::Done(i, nodes) => {
[INFO] [stdout]    |                           ^ help: if this is intentional, prefix it with an underscore: `_i`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/lib.rs:62:28
[INFO] [stdout]    |
[INFO] [stdout] 62 |             IResult::Error(err) => {
[INFO] [stdout]    |                            ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `eof` is never used
[INFO] [stdout]   --> src/parser.rs:32:4
[INFO] [stdout]    |
[INFO] [stdout] 32 | fn eof(input:&[u8]) -> IResult<&[u8], &[u8]> {
[INFO] [stdout]    |    ^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `namespace` is never used
[INFO] [stdout]   --> src/parser.rs:60:8
[INFO] [stdout]    |
[INFO] [stdout] 60 | pub fn namespace<'a>(input:&'a [u8]) -> IResult<&'a [u8], &'a [u8]> {
[INFO] [stdout]    |        ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `Parser` is never constructed
[INFO] [stdout]    --> src/parser.rs:214:12
[INFO] [stdout]     |
[INFO] [stdout] 214 | pub struct Parser<'a> {
[INFO] [stdout]     |            ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `ServiceNode` is never constructed
[INFO] [stdout]    --> src/ast.rs:121:12
[INFO] [stdout]     |
[INFO] [stdout] 121 | pub struct ServiceNode {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `new` is never used
[INFO] [stdout]    --> src/ast.rs:127:12
[INFO] [stdout]     |
[INFO] [stdout] 126 | impl ServiceNode {
[INFO] [stdout]     | ---------------- associated function in this implementation
[INFO] [stdout] 127 |     pub fn new(name: IdentNode) -> ServiceNode {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `FunctionNode` is never constructed
[INFO] [stdout]    --> src/ast.rs:136:12
[INFO] [stdout]     |
[INFO] [stdout] 136 | pub struct FunctionNode {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `EnumNode` is never constructed
[INFO] [stdout]    --> src/ast.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct EnumNode {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `input` and `output` are never read
[INFO] [stdout]   --> src/generator.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct Generator {
[INFO] [stdout]    |            --------- fields in this struct
[INFO] [stdout] 10 |     input: String,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout] 11 |     output: Option<File>
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:214:9
[INFO] [stdout]     |
[INFO] [stdout] 214 |         write!(w, "pub struct {} {{\n", self.name.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout]     = note: `#[warn(unused_must_use)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 214 |         let _ = write!(w, "pub struct {} {{\n", self.name.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:218:13
[INFO] [stdout]     |
[INFO] [stdout] 218 |             write!(w, "    ");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 218 |             let _ = write!(w, "    ");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:222:9
[INFO] [stdout]     |
[INFO] [stdout] 222 |         write!(w, "}}\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 222 |         let _ = write!(w, "}}\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:229:30
[INFO] [stdout]     |
[INFO] [stdout] 229 |             &Ty::String => { write!(w, "String"); },
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 229 |             &Ty::String => { let _ = write!(w, "String"); },
[INFO] [stdout]     |                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:230:28
[INFO] [stdout]     |
[INFO] [stdout] 230 |             &Ty::Void => { write!(w, "()"); },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 230 |             &Ty::Void => { let _ = write!(w, "()"); },
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:231:28
[INFO] [stdout]     |
[INFO] [stdout] 231 |             &Ty::Byte => { write!(w, "i8"); },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 231 |             &Ty::Byte => { let _ = write!(w, "i8"); },
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:232:30
[INFO] [stdout]     |
[INFO] [stdout] 232 |             &Ty::Binary => { write!(w, "Vec<i8>"); },
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 232 |             &Ty::Binary => { let _ = write!(w, "Vec<i8>"); },
[INFO] [stdout]     |                              +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:233:32
[INFO] [stdout]     |
[INFO] [stdout] 233 |             &Ty::Signed16 => { write!(w, "i16"); },
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 233 |             &Ty::Signed16 => { let _ = write!(w, "i16"); },
[INFO] [stdout]     |                                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:234:32
[INFO] [stdout]     |
[INFO] [stdout] 234 |             &Ty::Signed32 => { write!(w, "i32"); },
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 234 |             &Ty::Signed32 => { let _ = write!(w, "i32"); },
[INFO] [stdout]     |                                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:235:32
[INFO] [stdout]     |
[INFO] [stdout] 235 |             &Ty::Signed64 => { write!(w, "i64"); },
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 235 |             &Ty::Signed64 => { let _ = write!(w, "i64"); },
[INFO] [stdout]     |                                +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:236:28
[INFO] [stdout]     |
[INFO] [stdout] 236 |             &Ty::Bool => { write!(w, "bool"); },
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 236 |             &Ty::Bool => { let _ = write!(w, "bool"); },
[INFO] [stdout]     |                            +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:238:17
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 write!(w, "Vec<");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 238 |                 let _ = write!(w, "Vec<");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:240:17
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 write!(w, ">");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 240 |                 let _ = write!(w, ">");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 write!(w, "HashMap<");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 let _ = write!(w, "HashMap<");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:245:17
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 write!(w, ", ");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 245 |                 let _ = write!(w, ", ");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:247:17
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 write!(w, ">");
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 247 |                 let _ = write!(w, ">");
[INFO] [stdout]     |                 +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:257:9
[INFO] [stdout]     |
[INFO] [stdout] 257 |         write!(w, "{}: ", self.ident.0);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 257 |         let _ = write!(w, "{}: ", self.ident.0);
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:260:13
[INFO] [stdout]     |
[INFO] [stdout] 260 |             write!(w, "Option<");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 260 |             let _ = write!(w, "Option<");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:266:13
[INFO] [stdout]     |
[INFO] [stdout] 266 |             write!(w, ">");
[INFO] [stdout]     |             ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 266 |             let _ = write!(w, ">");
[INFO] [stdout]     |             +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]    --> src/ast.rs:269:9
[INFO] [stdout]     |
[INFO] [stdout] 269 |         write!(w, ",\n");
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]     |
[INFO] [stdout] 269 |         let _ = write!(w, ",\n");
[INFO] [stdout]     |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused `Result` that must be used
[INFO] [stdout]   --> src/generator.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 23 |         file.read_to_string(&mut input);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this `Result` may be an `Err` variant, which should be handled
[INFO] [stdout] help: use `let _ = ...` to ignore the resulting value
[INFO] [stdout]    |
[INFO] [stdout] 23 |         let _ = file.read_to_string(&mut input);
[INFO] [stdout]    |         +++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: cannot find derive macro `RustcDecodable` in this scope
[INFO] [stdout]   --> src/bin/thrust.rs:20:17
[INFO] [stdout]    |
[INFO] [stdout] 20 | #[derive(Debug, RustcDecodable)]
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `Args: Decodable` is not satisfied
[INFO] [stdout]    --> src/bin/thrust.rs:28:45
[INFO] [stdout]     |
[INFO] [stdout]  28 | ...                   .and_then(|d| d.decode())
[INFO] [stdout]     |                                       ^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `Decodable` is not implemented for `Args`
[INFO] [stdout]    --> src/bin/thrust.rs:21:1
[INFO] [stdout]     |
[INFO] [stdout]  21 | struct Args {
[INFO] [stdout]     | ^^^^^^^^^^^
[INFO] [stdout]     = help: the following other types implement trait `Decodable`:
[INFO] [stdout]               ()
[INFO] [stdout]               (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T10, T11)
[INFO] [stdout]               (T11,)
[INFO] [stdout]               (T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T3, T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]               (T4, T5, T6, T7, T8, T9, T10, T11)
[INFO] [stdout]             and 71 others
[INFO] [stdout] note: required by a bound in `Docopt::decode`
[INFO] [stdout]    --> /opt/rustwide/cargo-home/registry/src/index.crates.io-1949cf8c6b5b557f/docopt-0.6.86/src/dopt.rs:198:58
[INFO] [stdout]     |
[INFO] [stdout] 198 |     pub fn decode<D>(&self) -> Result<D, Error> where D: Decodable {
[INFO] [stdout]     |                                                          ^^^^^^^^^ required by this bound in `Docopt::decode`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0277`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `thrust` (bin "thrust") due to 2 previous errors
[INFO] running `Command { std: "docker" "inspect" "f914cc4849488483a188f29bc7b713451238b7bf395e0c23f13b7764104049e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f914cc4849488483a188f29bc7b713451238b7bf395e0c23f13b7764104049e6", kill_on_drop: false }`
[INFO] [stdout] f914cc4849488483a188f29bc7b713451238b7bf395e0c23f13b7764104049e6
