[INFO] updating cached repository https://github.com/sarahhodne/travis-build-rs
[INFO] running `"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"`
[INFO] running `"git" "rev-parse" "HEAD"`
[INFO] [stdout] 9f3185eb567fc0dd0029016a053e309e86d0e94a
[INFO] checking sarahhodne/travis-build-rs against master#bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc for pr-70917
[INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fsarahhodne%2Ftravis-build-rs" "/workspace/builds/worker-5/source"`
[INFO] [stderr] Cloning into '/workspace/builds/worker-5/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/sarahhodne/travis-build-rs on toolchain bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "read-manifest" "--manifest-path" "Cargo.toml"`
[INFO] started tweaking git repo https://github.com/sarahhodne/travis-build-rs
[INFO] finished tweaking git repo https://github.com/sarahhodne/travis-build-rs
[INFO] tweaked toml for git repo https://github.com/sarahhodne/travis-build-rs written to /workspace/builds/worker-5/source/Cargo.toml
[INFO] crate git repo https://github.com/sarahhodne/travis-build-rs already has a lockfile, it will not be regenerated
[INFO] running `"/workspace/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "fetch" "--locked" "--manifest-path" "Cargo.toml"`
[INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5/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=forbid" "-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" "/opt/rustwide/cargo-home/bin/cargo" "+bf1f2eedda4fa02b7c9347dd849ed73ddd43dedc" "check" "--frozen" "--all" "--all-targets"`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] a193eb3a7b407b4474dde0a3ec82a69dd440a2d6bcf4aa3b2d04783eb96a3089
[INFO] running `"docker" "start" "-a" "a193eb3a7b407b4474dde0a3ec82a69dd440a2d6bcf4aa3b2d04783eb96a3089"`
[INFO] [stderr]     Checking travis_build v0.0.1 (/opt/rustwide/workdir)
[INFO] [stderr] error[E0658]: non-builtin inner attributes are unstable
[INFO] [stderr]  --> src/lib.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | #![license = "MIT"]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: see issue #54726 <https://github.com/rust-lang/rust/issues/54726> for more information
[INFO] [stderr]   = help: add `#![feature(custom_inner_attributes)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: non-builtin inner attributes are unstable
[INFO] [stderr]  --> src/lib.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | #![comment = "Travis Build generates build scripts"]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: see issue #54726 <https://github.com/rust-lang/rust/issues/54726> for more information
[INFO] [stderr]   = help: add `#![feature(custom_inner_attributes)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: non-builtin inner attributes are unstable
[INFO] [stderr]  --> src/lib.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | #![experimental]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: see issue #54726 <https://github.com/rust-lang/rust/issues/54726> for more information
[INFO] [stderr]   = help: add `#![feature(custom_inner_attributes)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:53:21
[INFO] [stderr]    |
[INFO] [stderr] 53 |   macro_rules! ast_if (
[INFO] [stderr]    |  _____________________^
[INFO] [stderr] 54 | |     ($cond:expr { $($body:expr;)* }) => (::ast::If($cond, box ast_block! { $($body);* }, box ::ast::Noop));
[INFO] [stderr] 55 | |     ($cond:expr { $($body:expr;)* } else { $($elsebody:expr;)* }) => (::ast::If($cond, box ast_block!{ $($body);* }, box ast_block! { $($elsebody);* }))
[INFO] [stderr] 56 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 53 | macro_rules! ast_if {
[INFO] [stderr] 54 |     ($cond:expr { $($body:expr;)* }) => (::ast::If($cond, box ast_block! { $($body);* }, box ::ast::Noop));
[INFO] [stderr] 55 |     ($cond:expr { $($body:expr;)* } else { $($elsebody:expr;)* }) => (::ast::If($cond, box ast_block!{ $($body);* }, box ast_block! { $($elsebody);* }))
[INFO] [stderr] 56 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 56 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:59:24
[INFO] [stderr]    |
[INFO] [stderr] 59 |   macro_rules! format_cmd(
[INFO] [stderr]    |  ________________________^
[INFO] [stderr] 60 | |         ([$($opts:ident)|*], $($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![$(::ast::$opts),*]));
[INFO] [stderr] 61 | |         ($($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![]))
[INFO] [stderr] 62 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 59 | macro_rules! format_cmd{
[INFO] [stderr] 60 |         ([$($opts:ident)|*], $($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![$(::ast::$opts),*]));
[INFO] [stderr] 61 |         ($($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![]))
[INFO] [stderr] 62 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 62 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:65:17
[INFO] [stderr]    |
[INFO] [stderr] 65 |   macro_rules! cmd(
[INFO] [stderr]    |  _________________^
[INFO] [stderr] 66 | |     ([$($opts:ident)|*], $cmd:expr) => (::ast::Cmd($cmd, vec![$(::ast::$opts),*]));
[INFO] [stderr] 67 | |     ($cmd:expr) => (::ast::Cmd($cmd, vec![]))
[INFO] [stderr] 68 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 65 | macro_rules! cmd{
[INFO] [stderr] 66 |     ([$($opts:ident)|*], $cmd:expr) => (::ast::Cmd($cmd, vec![$(::ast::$opts),*]));
[INFO] [stderr] 67 |     ($cmd:expr) => (::ast::Cmd($cmd, vec![]))
[INFO] [stderr] 68 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 68 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:71:21
[INFO] [stderr]    |
[INFO] [stderr] 71 |   macro_rules! ast_set(
[INFO] [stderr]    |  _____________________^
[INFO] [stderr] 72 | |     ($key:ident = $value:expr) => (cmd!(ast::Envset(stringify!($key).to_string(), $value)));
[INFO] [stderr] 73 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 71 | macro_rules! ast_set{
[INFO] [stderr] 72 |     ($key:ident = $value:expr) => (cmd!(ast::Envset(stringify!($key).to_string(), $value)));
[INFO] [stderr] 73 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 73 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:88:23
[INFO] [stderr]    |
[INFO] [stderr] 88 |   macro_rules! ast_block(
[INFO] [stderr]    |  _______________________^
[INFO] [stderr] 89 | |     { $($x:expr);* } => (::ast::Statements(box vec![$($x),*]));
[INFO] [stderr] 90 | |     { $($x:expr;)* } => (ast_block! { $($x);* })
[INFO] [stderr] 91 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 88 | macro_rules! ast_block{
[INFO] [stderr] 89 |     { $($x:expr);* } => (::ast::Statements(box vec![$($x),*]));
[INFO] [stderr] 90 |     { $($x:expr;)* } => (ast_block! { $($x);* })
[INFO] [stderr] 91 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 91 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/payload.rs:43:22
[INFO] [stderr]    |
[INFO] [stderr] 43 |   macro_rules! json_to (
[INFO] [stderr]    |  ______________________^
[INFO] [stderr] 44 | |     ($r:expr, String) => ($r.as_string());
[INFO] [stderr] 45 | |     ($r:expr, bool) => ($r.as_boolean());
[INFO] [stderr] 46 | |     ($r:expr, u64) => ($r.as_u64());
[INFO] [stderr] 47 | |     ($r:expr, $t:ident) => (Some(try!($t::from_json($r))));
[INFO] [stderr] 48 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 43 | macro_rules! json_to {
[INFO] [stderr] 44 |     ($r:expr, String) => ($r.as_string());
[INFO] [stderr] 45 |     ($r:expr, bool) => ($r.as_boolean());
[INFO] [stderr] 46 |     ($r:expr, u64) => ($r.as_u64());
[INFO] [stderr] 47 |     ($r:expr, $t:ident) => (Some(try!($t::from_json($r))));
[INFO] [stderr] 48 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 48 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/payload.rs:50:23
[INFO] [stderr]    |
[INFO] [stderr] 50 |   macro_rules! find_key (
[INFO] [stderr]    |  _______________________^
[INFO] [stderr] 51 | |         ($j:expr, $t:ident, $key:expr) => (match $j.find(&*::std::string::as_string($key)) {
[INFO] [stderr] 52 | |             Some(v) => try!(json_to!(v, $t).ok_or(json::ApplicationError(format!("{} must be a string", $key)))),
[INFO] [stderr] 53 | |             None => return Err(json::MissingFieldError($key.to_string())),
[INFO] [stderr] ...  |
[INFO] [stderr] 59 | |         });
[INFO] [stderr] 60 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 50 | macro_rules! find_key {
[INFO] [stderr] 51 |         ($j:expr, $t:ident, $key:expr) => (match $j.find(&*::std::string::as_string($key)) {
[INFO] [stderr] 52 |             Some(v) => try!(json_to!(v, $t).ok_or(json::ApplicationError(format!("{} must be a string", $key)))),
[INFO] [stderr] 53 |             None => return Err(json::MissingFieldError($key.to_string())),
[INFO] [stderr] 54 |         });
[INFO] [stderr] 55 |         ($j:expr, $t:ident, $key:expr, Optional) => (try!($j.find(&*::std::string::as_string($key)).map_or(Ok(None), |r| json_to!(r, $t).ok_or(json::ApplicationError(format!("{} must be a string", $key))).map(Some))));
[INFO] [stderr]  ...
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 60 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: non-builtin inner attributes are unstable
[INFO] [stderr]  --> src/lib.rs:3:1
[INFO] [stderr]   |
[INFO] [stderr] 3 | #![license = "MIT"]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: see issue #54726 <https://github.com/rust-lang/rust/issues/54726> for more information
[INFO] [stderr]   = help: add `#![feature(custom_inner_attributes)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: non-builtin inner attributes are unstable
[INFO] [stderr]  --> src/lib.rs:4:1
[INFO] [stderr]   |
[INFO] [stderr] 4 | #![comment = "Travis Build generates build scripts"]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: see issue #54726 <https://github.com/rust-lang/rust/issues/54726> for more information
[INFO] [stderr]   = help: add `#![feature(custom_inner_attributes)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error[E0658]: non-builtin inner attributes are unstable
[INFO] [stderr]  --> src/lib.rs:6:1
[INFO] [stderr]   |
[INFO] [stderr] 6 | #![experimental]
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: see issue #54726 <https://github.com/rust-lang/rust/issues/54726> for more information
[INFO] [stderr]   = help: add `#![feature(custom_inner_attributes)]` to the crate attributes to enable
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:53:21
[INFO] [stderr]    |
[INFO] [stderr] 53 |   macro_rules! ast_if (
[INFO] [stderr]    |  _____________________^
[INFO] [stderr] 54 | |     ($cond:expr { $($body:expr;)* }) => (::ast::If($cond, box ast_block! { $($body);* }, box ::ast::Noop));
[INFO] [stderr] 55 | |     ($cond:expr { $($body:expr;)* } else { $($elsebody:expr;)* }) => (::ast::If($cond, box ast_block!{ $($body);* }, box ast_block! { $($elsebody);* }))
[INFO] [stderr] 56 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 53 | macro_rules! ast_if {
[INFO] [stderr] 54 |     ($cond:expr { $($body:expr;)* }) => (::ast::If($cond, box ast_block! { $($body);* }, box ::ast::Noop));
[INFO] [stderr] 55 |     ($cond:expr { $($body:expr;)* } else { $($elsebody:expr;)* }) => (::ast::If($cond, box ast_block!{ $($body);* }, box ast_block! { $($elsebody);* }))
[INFO] [stderr] 56 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 56 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:59:24
[INFO] [stderr]    |
[INFO] [stderr] 59 |   macro_rules! format_cmd(
[INFO] [stderr]    |  ________________________^
[INFO] [stderr] 60 | |         ([$($opts:ident)|*], $($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![$(::ast::$opts),*]));
[INFO] [stderr] 61 | |         ($($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![]))
[INFO] [stderr] 62 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 59 | macro_rules! format_cmd{
[INFO] [stderr] 60 |         ([$($opts:ident)|*], $($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![$(::ast::$opts),*]));
[INFO] [stderr] 61 |         ($($arg:tt)*) => (::ast::Cmd(::ast::Raw(format!($($arg)*)), vec![]))
[INFO] [stderr] 62 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 62 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:65:17
[INFO] [stderr]    |
[INFO] [stderr] 65 |   macro_rules! cmd(
[INFO] [stderr]    |  _________________^
[INFO] [stderr] 66 | |     ([$($opts:ident)|*], $cmd:expr) => (::ast::Cmd($cmd, vec![$(::ast::$opts),*]));
[INFO] [stderr] 67 | |     ($cmd:expr) => (::ast::Cmd($cmd, vec![]))
[INFO] [stderr] 68 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 65 | macro_rules! cmd{
[INFO] [stderr] 66 |     ([$($opts:ident)|*], $cmd:expr) => (::ast::Cmd($cmd, vec![$(::ast::$opts),*]));
[INFO] [stderr] 67 |     ($cmd:expr) => (::ast::Cmd($cmd, vec![]))
[INFO] [stderr] 68 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 68 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:71:21
[INFO] [stderr]    |
[INFO] [stderr] 71 |   macro_rules! ast_set(
[INFO] [stderr]    |  _____________________^
[INFO] [stderr] 72 | |     ($key:ident = $value:expr) => (cmd!(ast::Envset(stringify!($key).to_string(), $value)));
[INFO] [stderr] 73 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 71 | macro_rules! ast_set{
[INFO] [stderr] 72 |     ($key:ident = $value:expr) => (cmd!(ast::Envset(stringify!($key).to_string(), $value)));
[INFO] [stderr] 73 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 73 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/ast/mod.rs:88:23
[INFO] [stderr]    |
[INFO] [stderr] 88 |   macro_rules! ast_block(
[INFO] [stderr]    |  _______________________^
[INFO] [stderr] 89 | |     { $($x:expr);* } => (::ast::Statements(box vec![$($x),*]));
[INFO] [stderr] 90 | |     { $($x:expr;)* } => (ast_block! { $($x);* })
[INFO] [stderr] 91 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 88 | macro_rules! ast_block{
[INFO] [stderr] 89 |     { $($x:expr);* } => (::ast::Statements(box vec![$($x),*]));
[INFO] [stderr] 90 |     { $($x:expr;)* } => (ast_block! { $($x);* })
[INFO] [stderr] 91 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 91 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/payload.rs:43:22
[INFO] [stderr]    |
[INFO] [stderr] 43 |   macro_rules! json_to (
[INFO] [stderr]    |  ______________________^
[INFO] [stderr] 44 | |     ($r:expr, String) => ($r.as_string());
[INFO] [stderr] 45 | |     ($r:expr, bool) => ($r.as_boolean());
[INFO] [stderr] 46 | |     ($r:expr, u64) => ($r.as_u64());
[INFO] [stderr] 47 | |     ($r:expr, $t:ident) => (Some(try!($t::from_json($r))));
[INFO] [stderr] 48 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 43 | macro_rules! json_to {
[INFO] [stderr] 44 |     ($r:expr, String) => ($r.as_string());
[INFO] [stderr] 45 |     ($r:expr, bool) => ($r.as_boolean());
[INFO] [stderr] 46 |     ($r:expr, u64) => ($r.as_u64());
[INFO] [stderr] 47 |     ($r:expr, $t:ident) => (Some(try!($t::from_json($r))));
[INFO] [stderr] 48 | }
[INFO] [stderr]    |
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 48 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error: macros that expand to items must be delimited with braces or followed by a semicolon
[INFO] [stderr]   --> src/payload.rs:50:23
[INFO] [stderr]    |
[INFO] [stderr] 50 |   macro_rules! find_key (
[INFO] [stderr]    |  _______________________^
[INFO] [stderr] 51 | |         ($j:expr, $t:ident, $key:expr) => (match $j.find(&*::std::string::as_string($key)) {
[INFO] [stderr] 52 | |             Some(v) => try!(json_to!(v, $t).ok_or(json::ApplicationError(format!("{} must be a string", $key)))),
[INFO] [stderr] 53 | |             None => return Err(json::MissingFieldError($key.to_string())),
[INFO] [stderr] ...  |
[INFO] [stderr] 59 | |         });
[INFO] [stderr] 60 | | )
[INFO] [stderr]    | |_^
[INFO] [stderr]    |
[INFO] [stderr] help: change the delimiters to curly braces
[INFO] [stderr]    |
[INFO] [stderr] 50 | macro_rules! find_key {
[INFO] [stderr] 51 |         ($j:expr, $t:ident, $key:expr) => (match $j.find(&*::std::string::as_string($key)) {
[INFO] [stderr] 52 |             Some(v) => try!(json_to!(v, $t).ok_or(json::ApplicationError(format!("{} must be a string", $key)))),
[INFO] [stderr] 53 |             None => return Err(json::MissingFieldError($key.to_string())),
[INFO] [stderr] 54 |         });
[INFO] [stderr] 55 |         ($j:expr, $t:ident, $key:expr, Optional) => (try!($j.find(&*::std::string::as_string($key)).map_or(Ok(None), |r| json_to!(r, $t).ok_or(json::ApplicationError(format!("{} must be a string", $key))).map(Some))));
[INFO] [stderr]  ...
[INFO] [stderr] help: add a semicolon
[INFO] [stderr]    |
[INFO] [stderr] 60 | );
[INFO] [stderr]    |  ^
[INFO] [stderr] 
[INFO] [stderr] error[E0463]: can't find crate for `serialize`
[INFO] [stderr]  --> src/lib.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | extern crate serialize;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 11 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0463, E0658.
[INFO] [stderr] For more information about an error, try `rustc --explain E0463`.
[INFO] [stderr] error: could not compile `travis_build`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stderr] error[E0463]: can't find crate for `serialize`
[INFO] [stderr]  --> src/lib.rs:9:1
[INFO] [stderr]   |
[INFO] [stderr] 9 | extern crate serialize;
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^^^^^^^ can't find crate
[INFO] [stderr] 
[INFO] [stderr] error: aborting due to 11 previous errors
[INFO] [stderr] 
[INFO] [stderr] Some errors have detailed explanations: E0463, E0658.
[INFO] [stderr] For more information about an error, try `rustc --explain E0463`.
[INFO] [stderr] error: could not compile `travis_build`.
[INFO] [stderr] 
[INFO] [stderr] To learn more, run the command again with --verbose.
[INFO] running `"docker" "inspect" "a193eb3a7b407b4474dde0a3ec82a69dd440a2d6bcf4aa3b2d04783eb96a3089"`
[INFO] running `"docker" "rm" "-f" "a193eb3a7b407b4474dde0a3ec82a69dd440a2d6bcf4aa3b2d04783eb96a3089"`
[INFO] [stdout] a193eb3a7b407b4474dde0a3ec82a69dd440a2d6bcf4aa3b2d04783eb96a3089
