[INFO] cloning repository https://github.com/maekawatoshiki/rcaml
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/maekawatoshiki/rcaml" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaekawatoshiki%2Frcaml", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaekawatoshiki%2Frcaml'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] c9824653d7acd5de76731428b52d63e41f51c3e9
[INFO] testing maekawatoshiki/rcaml against 1.69.0 for beta-1.70-1
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaekawatoshiki%2Frcaml" "/workspace/builds/worker-4-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-4-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/maekawatoshiki/rcaml on toolchain 1.69.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/maekawatoshiki/rcaml
[INFO] finished tweaking git repo https://github.com/maekawatoshiki/rcaml
[INFO] tweaked toml for git repo https://github.com/maekawatoshiki/rcaml written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/maekawatoshiki/rcaml already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.69.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded textwrap v0.8.0
[INFO] [stderr]   Downloaded clap v2.26.2
[INFO] [stderr]   Downloaded llvm-sys v39.0.6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 7e5c3b05b1d44a2a4e8c058bda50c19f143a8e7fa52677e5067c20a8cf0bf6e3
[INFO] running `Command { std: "docker" "start" "-a" "7e5c3b05b1d44a2a4e8c058bda50c19f143a8e7fa52677e5067c20a8cf0bf6e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "7e5c3b05b1d44a2a4e8c058bda50c19f143a8e7fa52677e5067c20a8cf0bf6e3", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7e5c3b05b1d44a2a4e8c058bda50c19f143a8e7fa52677e5067c20a8cf0bf6e3", kill_on_drop: false }`
[INFO] [stdout] 7e5c3b05b1d44a2a4e8c058bda50c19f143a8e7fa52677e5067c20a8cf0bf6e3
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 8f0956710fa48bc3ba727882a8137e36d85a646dd0ccd0e81a0dc283219a0dee
[INFO] running `Command { std: "docker" "start" "-a" "8f0956710fa48bc3ba727882a8137e36d85a646dd0ccd0e81a0dc283219a0dee", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.33
[INFO] [stderr]    Compiling winapi-build v0.1.1
[INFO] [stderr]    Compiling winapi v0.2.8
[INFO] [stderr]    Compiling regex-syntax v0.3.9
[INFO] [stderr]    Compiling utf8-ranges v0.1.3
[INFO] [stderr]    Compiling lazy_static v0.2.9
[INFO] [stderr]    Compiling gcc v0.3.54
[INFO] [stderr]    Compiling unicode-width v0.1.4
[INFO] [stderr]    Compiling void v1.0.2
[INFO] [stderr]    Compiling ansi_term v0.9.0
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling bitflags v0.9.1
[INFO] [stderr]    Compiling num-traits v0.1.40
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling strsim v0.6.0
[INFO] [stderr]    Compiling unreachable v0.1.1
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling memchr v0.1.11
[INFO] [stderr]    Compiling term_size v0.3.0
[INFO] [stderr]    Compiling atty v0.2.3
[INFO] [stderr]    Compiling memchr v1.0.2
[INFO] [stderr]    Compiling rand v0.3.18
[INFO] [stderr]    Compiling ordered-float v0.5.0
[INFO] [stderr]    Compiling thread-id v2.0.0
[INFO] [stderr]    Compiling textwrap v0.8.0
[INFO] [stderr]    Compiling aho-corasick v0.5.3
[INFO] [stderr]    Compiling thread_local v0.2.7
[INFO] [stderr]    Compiling nom v3.2.1
[INFO] [stderr]    Compiling clap v2.26.2
[INFO] [stderr]    Compiling regex v0.1.80
[INFO] [stderr]    Compiling semver-parser v0.6.2
[INFO] [stderr]    Compiling semver v0.4.1
[INFO] [stderr]    Compiling llvm-sys v39.0.6
[INFO] [stderr]    Compiling rcaml v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused attribute `macro_export`
[INFO] [stdout]    --> src/parser.rs:397:1
[INFO] [stdout]     |
[INFO] [stdout] 397 | #[macro_export]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the built-in attribute `macro_export` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]    --> src/parser.rs:398:1
[INFO] [stdout]     |
[INFO] [stdout] 398 | named!(pub module_item<NodeKind>,
[INFO] [stdout]     | ^^^^^
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/parser.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 (params
[INFO] [stdout]    |                 ^
[INFO] [stdout] ...
[INFO] [stdout] 72 |                     .collect())
[INFO] [stdout]    |                               ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 69 ~                 params
[INFO] [stdout] 70 |                     .into_iter()
[INFO] [stdout] 71 |                     .map(|param| (param.get_ident_name().unwrap(), Type::Var(0)))
[INFO] [stdout] 72 ~                     .collect()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/typing.rs:45:129
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 macro_rules! name { ($id:expr) => ( format!("\'{}", m.entry($id).or_insert_with(|| { *i += 1; *i }).clone()) ) };
[INFO] [stdout]    |                                                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 try!(unify(a, b, tyenv));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 try!(unify(a, b, tyenv));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:376:47
[INFO] [stdout]     |
[INFO] [stdout] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |         NodeKind::Tuple(ref es) => Ok(Type::Tuple(g_seq!(es))),
[INFO] [stdout]     |                                                   ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:398:13
[INFO] [stdout]     |
[INFO] [stdout] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:398:25
[INFO] [stdout]     |
[INFO] [stdout] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:399:25
[INFO] [stdout]     |
[INFO] [stdout] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:403:13
[INFO] [stdout]     |
[INFO] [stdout] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:404:13
[INFO] [stdout]     |
[INFO] [stdout] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:403:25
[INFO] [stdout]     |
[INFO] [stdout] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:404:25
[INFO] [stdout]     |
[INFO] [stdout] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             try!(unify(&a, &b, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:408:21
[INFO] [stdout]     |
[INFO] [stdout] 408 |             let a = try!(g(lhs, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:409:21
[INFO] [stdout]     |
[INFO] [stdout] 409 |             let b = try!(g(rhs, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             try!(unify(&callee_ty, &functy, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:416:29
[INFO] [stdout]     |
[INFO] [stdout] 416 |             let callee_ty = try!(g(callee, env, tyenv, idgen));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:376:47
[INFO] [stdout]     |
[INFO] [stdout] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |             let functy = Type::Func(g_seq!(args), Box::new(ty.clone()));
[INFO] [stdout]     |                                     ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |             try!(unify(&t, ty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:424:21
[INFO] [stdout]     |
[INFO] [stdout] 424 |             let t = try!(g(expr, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:444:13
[INFO] [stdout]     |
[INFO] [stdout] 444 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:442:26
[INFO] [stdout]     |
[INFO] [stdout] 442 |                 Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 &try!(g(expr, &env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:462:13
[INFO] [stdout]     |
[INFO] [stdout] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:462:25
[INFO] [stdout]     |
[INFO] [stdout] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:483:13
[INFO] [stdout]     |
[INFO] [stdout] 483 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:479:30
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:491:13
[INFO] [stdout]     |
[INFO] [stdout] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |             try!(unify(&t, &e, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:491:25
[INFO] [stdout]     |
[INFO] [stdout] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:492:21
[INFO] [stdout]     |
[INFO] [stdout] 492 |             let t = try!(g(then_, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:493:21
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let e = try!(g(else_, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:498:25
[INFO] [stdout]     |
[INFO] [stdout] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:499:21
[INFO] [stdout]     |
[INFO] [stdout] 499 |             let t = try!(g(e2, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:505:18
[INFO] [stdout]     |
[INFO] [stdout] 505 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:509:25
[INFO] [stdout]     |
[INFO] [stdout] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:519:13
[INFO] [stdout]     |
[INFO] [stdout] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |             let t = try!(g(e3, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:515:18
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:519:25
[INFO] [stdout]     |
[INFO] [stdout] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |             try!(self.gen_expr(&env, Some(main), &expr));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 try!(self.gen_fun(&mut env, &fun));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:262:36
[INFO] [stdout]     |
[INFO] [stdout] 262 |         LLVMBuildRet(self.builder, try!(self.gen_int(0)));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let var = try!(self.declare_local_var(
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:365:23
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let ret_val = try!(self.gen_expr(&env, Some(llvm_fun), &*cls.body));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:466:29
[INFO] [stdout]     |
[INFO] [stdout] 466 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:468:13
[INFO] [stdout]     |
[INFO] [stdout] 468 |             try!(self.declare_local_var(&mut newenv, cur_fun, name, LLVMTypeOf(llvm_expr_val),));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:482:29
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:484:33
[INFO] [stdout]     |
[INFO] [stdout] 484 |             let llvm_elem_val = try!(self.llvm_struct_elem_extract(llvm_expr_val, i as u32));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:547:17
[INFO] [stdout]     |
[INFO] [stdout] 547 |         let x = try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |             try!(self.llvm_struct_alloc(actual_fv))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:608:22
[INFO] [stdout]     |
[INFO] [stdout] 608 |         let newcls = try!(self.llvm_struct_alloc(vec![fun, actual_fv]));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:623:19
[INFO] [stdout]     |
[INFO] [stdout] 623 |         let fun = try!(self.lookup_var(env, &cls.entry)).retrieve();
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:627:24
[INFO] [stdout]     |
[INFO] [stdout] 627 |                 v.push(try!(self.lookup_var(env, name)).get(self.builder))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:631:28
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let (new_env, _) = try!(self.make_cls(env, name.clone(), fun, fv));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:632:17
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let x = try!(self.gen_expr(&new_env, cur_fun, body));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:649:17
[INFO] [stdout]     |
[INFO] [stdout] 649 |         let x = try!(self.lookup_var(env, name)).get(self.builder);
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:650:19
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let fun = try!(self.llvm_struct_elem_load(x, 0));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:651:18
[INFO] [stdout]     |
[INFO] [stdout] 651 |         let fv = try!(self.llvm_struct_elem_load(x, 1));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:655:28
[INFO] [stdout]     |
[INFO] [stdout] 655 |             let llvm_arg = try!(self.gen_expr(env, cur_fun, &arg));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:694:27
[INFO] [stdout]     |
[INFO] [stdout] 694 |             args_val.push(try!(self.gen_expr(env, cur_fun, &arg)))
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:708:19
[INFO] [stdout]     |
[INFO] [stdout] 708 |         let fun = try!(self.lookup_var(env, name)).retrieve();
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:729:23
[INFO] [stdout]     |
[INFO] [stdout] 729 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:730:23
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:775:23
[INFO] [stdout]     |
[INFO] [stdout] 775 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:776:23
[INFO] [stdout]     |
[INFO] [stdout] 776 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:815:23
[INFO] [stdout]     |
[INFO] [stdout] 815 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:816:23
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/codegen.rs:883:10
[INFO] [stdout]     |
[INFO] [stdout] 883 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:884:24
[INFO] [stdout]     |
[INFO] [stdout] 884 |         let cond_val = try!(self.gen_expr(env, cur_fun, cond));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:895:24
[INFO] [stdout]     |
[INFO] [stdout] 895 |         let then_val = try!(self.gen_expr(env, cur_fun, then));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:904:24
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let else_val = try!(self.gen_expr(env, cur_fun, els));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:963:19
[INFO] [stdout]     |
[INFO] [stdout] 963 |         let val = try!(self.lookup_var(env, name));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:976:24
[INFO] [stdout]     |
[INFO] [stdout] 976 |                 v.push(try!(e));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |             try!(self.llvm_struct_alloc(es)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/closure.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 |     }};
[INFO] [stdout]     |       ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/parser.rs:751:1
[INFO] [stdout]     |
[INFO] [stdout] 751 | / lazy_static! {
[INFO] [stdout] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stdout] 753 | |         let mut extenv = HashMap::new();
[INFO] [stdout] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 771 | |     };
[INFO] [stdout] 772 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/parser.rs:751:1
[INFO] [stdout]     |
[INFO] [stdout] 751 | / lazy_static! {
[INFO] [stdout] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stdout] 753 | |         let mut extenv = HashMap::new();
[INFO] [stdout] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 771 | |     };
[INFO] [stdout] 772 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/typing.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     .trim_right_matches(" * ")
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     .trim_end_matches(" * ")
[INFO] [stdout]    |                      ~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param_ty`
[INFO] [stdout]    --> src/codegen.rs:340:43
[INFO] [stdout]     |
[INFO] [stdout] 340 |             for (i, &(ref param_name, ref param_ty)) in cls.formal_fv.iter().enumerate() {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_ty`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |         ty: &Type,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 |         for (i, &(ref name, ref ty)) in xs.iter().enumerate() {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cur_bb_has_no_terminator` is never used
[INFO] [stdout]   --> src/codegen.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | unsafe fn cur_bb_has_no_terminator(builder: LLVMBuilderRef) -> bool {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:641:51
[INFO] [stdout]     |
[INFO] [stdout] 641 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 641 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 641 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:642:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 642 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 642 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:673:51
[INFO] [stdout]     |
[INFO] [stdout] 673 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 673 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 673 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:674:43
[INFO] [stdout]     |
[INFO] [stdout] 674 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 674 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 674 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]   --> src/codegen.rs:35:86
[INFO] [stdout]    |
[INFO] [stdout] 35 |             &ValKind::Load(v) => LLVMBuildLoad(builder, v, CString::new("").unwrap().as_ptr()),
[INFO] [stdout]    |                                                            ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]    = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:121:48
[INFO] [stdout]     |
[INFO] [stdout] 121 |             CString::new("print_int").unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:145:50
[INFO] [stdout]     |
[INFO] [stdout] 145 |             CString::new("print_float").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:165:52
[INFO] [stdout]     |
[INFO] [stdout] 165 |             CString::new("print_newline").unwrap().as_ptr(),
[INFO] [stdout]     |             -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:189:51
[INFO] [stdout]     |
[INFO] [stdout] 189 |             CString::new("float_of_int").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:213:45
[INFO] [stdout]     |
[INFO] [stdout] 213 |             CString::new("malloc").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:246:79
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let main = LLVMAddFunction(self.module, CString::new("main").unwrap().as_ptr(), main_ty);
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:247:82
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let bb_entry = LLVMAppendBasicBlock(main, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                   ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:291:84
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let main = LLVMGetNamedFunction(self.module, CString::new("main").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:321:86
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let bb_entry = LLVMAppendBasicBlock(llvm_fun, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                       ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:338:90
[INFO] [stdout]     |
[INFO] [stdout] 338 |             let p = LLVMBuildPointerCast(self.builder, p, pty, CString::new("").unwrap().as_ptr());
[INFO] [stdout]     |                                                                ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                                |
[INFO] [stdout]     |                                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:345:47
[INFO] [stdout]     |
[INFO] [stdout] 345 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/codegen.rs:430:25
[INFO] [stdout]     |
[INFO] [stdout] 430 |             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 430 -             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stdout] 430 +             _ => panic!("not implemented {:?}", closure),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:451:85
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let var = LLVMBuildAlloca(builder, ty, CString::new(name.as_str()).unwrap().as_ptr());
[INFO] [stdout]     |                                                ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:540:43
[INFO] [stdout]     |
[INFO] [stdout] 540 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:543:39
[INFO] [stdout]     |
[INFO] [stdout] 543 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:566:47
[INFO] [stdout]     |
[INFO] [stdout] 566 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:579:80
[INFO] [stdout]     |
[INFO] [stdout] 579 |             LLVMBuildStructGEP(self.builder, p, idx, CString::new("").unwrap().as_ptr()),
[INFO] [stdout]     |                                                      ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:580:39
[INFO] [stdout]     |
[INFO] [stdout] 580 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:592:39
[INFO] [stdout]     |
[INFO] [stdout] 592 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:675:39
[INFO] [stdout]     |
[INFO] [stdout] 675 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:704:43
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:716:39
[INFO] [stdout]     |
[INFO] [stdout] 716 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:728:60
[INFO] [stdout]     |
[INFO] [stdout] 728 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:774:60
[INFO] [stdout]     |
[INFO] [stdout] 774 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:814:60
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:887:79
[INFO] [stdout]     |
[INFO] [stdout] 887 |         let bb_then = LLVMAppendBasicBlock(fun, CString::new("then").unwrap().as_ptr());
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:888:79
[INFO] [stdout]     |
[INFO] [stdout] 888 |         let bb_else = LLVMAppendBasicBlock(fun, CString::new("else").unwrap().as_ptr());
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:889:81
[INFO] [stdout]     |
[INFO] [stdout] 889 |         let bb_merge = LLVMAppendBasicBlock(fun, CString::new("merge").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:916:42
[INFO] [stdout]     |
[INFO] [stdout] 916 |             CString::new("phi").unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/codegen.rs:954:20
[INFO] [stdout]     |
[INFO] [stdout] 954 |             panic!(format!("not found variable '{}'", name))
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 954 -             panic!(format!("not found variable '{}'", name))
[INFO] [stdout] 954 +             panic!("not found variable '{}'", name)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:983:39
[INFO] [stdout]     |
[INFO] [stdout] 983 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/codegen.rs:1033:25
[INFO] [stdout]      |
[INFO] [stdout] 1033 |             _ => panic!(format!("{:?}", self)),
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1033 -             _ => panic!(format!("{:?}", self)),
[INFO] [stdout] 1033 +             _ => panic!("{:?}", self),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/codegen.rs:1081:25
[INFO] [stdout]      |
[INFO] [stdout] 1081 |             _ => panic!(format!("{:?}", self)),
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1081 -             _ => panic!(format!("{:?}", self)),
[INFO] [stdout] 1081 +             _ => panic!("{:?}", self),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 130 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 40 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 40 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:41:43
[INFO] [stdout]    |
[INFO] [stdout] 41 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 41 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 41 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 9.20s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "8f0956710fa48bc3ba727882a8137e36d85a646dd0ccd0e81a0dc283219a0dee", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8f0956710fa48bc3ba727882a8137e36d85a646dd0ccd0e81a0dc283219a0dee", kill_on_drop: false }`
[INFO] [stdout] 8f0956710fa48bc3ba727882a8137e36d85a646dd0ccd0e81a0dc283219a0dee
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] beb1edc9702a259c465ec2801a6a432703003bb70e0f6eb0b9bd1aac5698e163
[INFO] running `Command { std: "docker" "start" "-a" "beb1edc9702a259c465ec2801a6a432703003bb70e0f6eb0b9bd1aac5698e163", kill_on_drop: false }`
[INFO] [stdout] warning: unused attribute `macro_export`
[INFO] [stdout]    --> src/parser.rs:397:1
[INFO] [stdout]     |
[INFO] [stdout] 397 | #[macro_export]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the built-in attribute `macro_export` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]    --> src/parser.rs:398:1
[INFO] [stdout]     |
[INFO] [stdout] 398 | named!(pub module_item<NodeKind>,
[INFO] [stdout]     | ^^^^^
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/parser.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 (params
[INFO] [stdout]    |                 ^
[INFO] [stdout] ...
[INFO] [stdout] 72 |                     .collect())
[INFO] [stdout]    |                               ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 69 ~                 params
[INFO] [stdout] 70 |                     .into_iter()
[INFO] [stdout] 71 |                     .map(|param| (param.get_ident_name().unwrap(), Type::Var(0)))
[INFO] [stdout] 72 ~                     .collect()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/typing.rs:45:129
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 macro_rules! name { ($id:expr) => ( format!("\'{}", m.entry($id).or_insert_with(|| { *i += 1; *i }).clone()) ) };
[INFO] [stdout]    |                                                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 try!(unify(a, b, tyenv));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 try!(unify(a, b, tyenv));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:376:47
[INFO] [stdout]     |
[INFO] [stdout] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |         NodeKind::Tuple(ref es) => Ok(Type::Tuple(g_seq!(es))),
[INFO] [stdout]     |                                                   ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:398:13
[INFO] [stdout]     |
[INFO] [stdout] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:398:25
[INFO] [stdout]     |
[INFO] [stdout] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:399:25
[INFO] [stdout]     |
[INFO] [stdout] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:403:13
[INFO] [stdout]     |
[INFO] [stdout] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:404:13
[INFO] [stdout]     |
[INFO] [stdout] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:403:25
[INFO] [stdout]     |
[INFO] [stdout] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:404:25
[INFO] [stdout]     |
[INFO] [stdout] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             try!(unify(&a, &b, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:408:21
[INFO] [stdout]     |
[INFO] [stdout] 408 |             let a = try!(g(lhs, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:409:21
[INFO] [stdout]     |
[INFO] [stdout] 409 |             let b = try!(g(rhs, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             try!(unify(&callee_ty, &functy, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:416:29
[INFO] [stdout]     |
[INFO] [stdout] 416 |             let callee_ty = try!(g(callee, env, tyenv, idgen));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:376:47
[INFO] [stdout]     |
[INFO] [stdout] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |             let functy = Type::Func(g_seq!(args), Box::new(ty.clone()));
[INFO] [stdout]     |                                     ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |             try!(unify(&t, ty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:424:21
[INFO] [stdout]     |
[INFO] [stdout] 424 |             let t = try!(g(expr, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:444:13
[INFO] [stdout]     |
[INFO] [stdout] 444 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:442:26
[INFO] [stdout]     |
[INFO] [stdout] 442 |                 Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 &try!(g(expr, &env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:462:13
[INFO] [stdout]     |
[INFO] [stdout] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:462:25
[INFO] [stdout]     |
[INFO] [stdout] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:483:13
[INFO] [stdout]     |
[INFO] [stdout] 483 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:479:30
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:491:13
[INFO] [stdout]     |
[INFO] [stdout] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |             try!(unify(&t, &e, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:491:25
[INFO] [stdout]     |
[INFO] [stdout] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:492:21
[INFO] [stdout]     |
[INFO] [stdout] 492 |             let t = try!(g(then_, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:493:21
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let e = try!(g(else_, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:498:25
[INFO] [stdout]     |
[INFO] [stdout] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:499:21
[INFO] [stdout]     |
[INFO] [stdout] 499 |             let t = try!(g(e2, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:505:18
[INFO] [stdout]     |
[INFO] [stdout] 505 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:509:25
[INFO] [stdout]     |
[INFO] [stdout] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:519:13
[INFO] [stdout]     |
[INFO] [stdout] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |             let t = try!(g(e3, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:515:18
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:519:25
[INFO] [stdout]     |
[INFO] [stdout] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |             try!(self.gen_expr(&env, Some(main), &expr));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 try!(self.gen_fun(&mut env, &fun));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:262:36
[INFO] [stdout]     |
[INFO] [stdout] 262 |         LLVMBuildRet(self.builder, try!(self.gen_int(0)));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let var = try!(self.declare_local_var(
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:365:23
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let ret_val = try!(self.gen_expr(&env, Some(llvm_fun), &*cls.body));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:466:29
[INFO] [stdout]     |
[INFO] [stdout] 466 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:468:13
[INFO] [stdout]     |
[INFO] [stdout] 468 |             try!(self.declare_local_var(&mut newenv, cur_fun, name, LLVMTypeOf(llvm_expr_val),));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:482:29
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:484:33
[INFO] [stdout]     |
[INFO] [stdout] 484 |             let llvm_elem_val = try!(self.llvm_struct_elem_extract(llvm_expr_val, i as u32));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:547:17
[INFO] [stdout]     |
[INFO] [stdout] 547 |         let x = try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |             try!(self.llvm_struct_alloc(actual_fv))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:608:22
[INFO] [stdout]     |
[INFO] [stdout] 608 |         let newcls = try!(self.llvm_struct_alloc(vec![fun, actual_fv]));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:623:19
[INFO] [stdout]     |
[INFO] [stdout] 623 |         let fun = try!(self.lookup_var(env, &cls.entry)).retrieve();
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:627:24
[INFO] [stdout]     |
[INFO] [stdout] 627 |                 v.push(try!(self.lookup_var(env, name)).get(self.builder))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:631:28
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let (new_env, _) = try!(self.make_cls(env, name.clone(), fun, fv));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:632:17
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let x = try!(self.gen_expr(&new_env, cur_fun, body));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:649:17
[INFO] [stdout]     |
[INFO] [stdout] 649 |         let x = try!(self.lookup_var(env, name)).get(self.builder);
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:650:19
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let fun = try!(self.llvm_struct_elem_load(x, 0));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:651:18
[INFO] [stdout]     |
[INFO] [stdout] 651 |         let fv = try!(self.llvm_struct_elem_load(x, 1));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:655:28
[INFO] [stdout]     |
[INFO] [stdout] 655 |             let llvm_arg = try!(self.gen_expr(env, cur_fun, &arg));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:694:27
[INFO] [stdout]     |
[INFO] [stdout] 694 |             args_val.push(try!(self.gen_expr(env, cur_fun, &arg)))
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:708:19
[INFO] [stdout]     |
[INFO] [stdout] 708 |         let fun = try!(self.lookup_var(env, name)).retrieve();
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:729:23
[INFO] [stdout]     |
[INFO] [stdout] 729 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:730:23
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:775:23
[INFO] [stdout]     |
[INFO] [stdout] 775 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:776:23
[INFO] [stdout]     |
[INFO] [stdout] 776 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:815:23
[INFO] [stdout]     |
[INFO] [stdout] 815 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:816:23
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/codegen.rs:883:10
[INFO] [stdout]     |
[INFO] [stdout] 883 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:884:24
[INFO] [stdout]     |
[INFO] [stdout] 884 |         let cond_val = try!(self.gen_expr(env, cur_fun, cond));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:895:24
[INFO] [stdout]     |
[INFO] [stdout] 895 |         let then_val = try!(self.gen_expr(env, cur_fun, then));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:904:24
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let else_val = try!(self.gen_expr(env, cur_fun, els));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:963:19
[INFO] [stdout]     |
[INFO] [stdout] 963 |         let val = try!(self.lookup_var(env, name));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:976:24
[INFO] [stdout]     |
[INFO] [stdout] 976 |                 v.push(try!(e));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |             try!(self.llvm_struct_alloc(es)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/closure.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 |     }};
[INFO] [stdout]     |       ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/parser.rs:751:1
[INFO] [stdout]     |
[INFO] [stdout] 751 | / lazy_static! {
[INFO] [stdout] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stdout] 753 | |         let mut extenv = HashMap::new();
[INFO] [stdout] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 771 | |     };
[INFO] [stdout] 772 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/parser.rs:751:1
[INFO] [stdout]     |
[INFO] [stdout] 751 | / lazy_static! {
[INFO] [stdout] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stdout] 753 | |         let mut extenv = HashMap::new();
[INFO] [stdout] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 771 | |     };
[INFO] [stdout] 772 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/typing.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     .trim_right_matches(" * ")
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     .trim_end_matches(" * ")
[INFO] [stdout]    |                      ~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param_ty`
[INFO] [stdout]    --> src/codegen.rs:340:43
[INFO] [stdout]     |
[INFO] [stdout] 340 |             for (i, &(ref param_name, ref param_ty)) in cls.formal_fv.iter().enumerate() {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_ty`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |         ty: &Type,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 |         for (i, &(ref name, ref ty)) in xs.iter().enumerate() {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cur_bb_has_no_terminator` is never used
[INFO] [stdout]   --> src/codegen.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | unsafe fn cur_bb_has_no_terminator(builder: LLVMBuilderRef) -> bool {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:641:51
[INFO] [stdout]     |
[INFO] [stdout] 641 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 641 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 641 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:642:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 642 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 642 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:673:51
[INFO] [stdout]     |
[INFO] [stdout] 673 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 673 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 673 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:674:43
[INFO] [stdout]     |
[INFO] [stdout] 674 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 674 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 674 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]   --> src/codegen.rs:35:86
[INFO] [stdout]    |
[INFO] [stdout] 35 |             &ValKind::Load(v) => LLVMBuildLoad(builder, v, CString::new("").unwrap().as_ptr()),
[INFO] [stdout]    |                                                            ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]    = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:121:48
[INFO] [stdout]     |
[INFO] [stdout] 121 |             CString::new("print_int").unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:145:50
[INFO] [stdout]     |
[INFO] [stdout] 145 |             CString::new("print_float").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:165:52
[INFO] [stdout]     |
[INFO] [stdout] 165 |             CString::new("print_newline").unwrap().as_ptr(),
[INFO] [stdout]     |             -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:189:51
[INFO] [stdout]     |
[INFO] [stdout] 189 |             CString::new("float_of_int").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:213:45
[INFO] [stdout]     |
[INFO] [stdout] 213 |             CString::new("malloc").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:246:79
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let main = LLVMAddFunction(self.module, CString::new("main").unwrap().as_ptr(), main_ty);
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:247:82
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let bb_entry = LLVMAppendBasicBlock(main, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                   ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:291:84
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let main = LLVMGetNamedFunction(self.module, CString::new("main").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:321:86
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let bb_entry = LLVMAppendBasicBlock(llvm_fun, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                       ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:338:90
[INFO] [stdout]     |
[INFO] [stdout] 338 |             let p = LLVMBuildPointerCast(self.builder, p, pty, CString::new("").unwrap().as_ptr());
[INFO] [stdout]     |                                                                ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                                |
[INFO] [stdout]     |                                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:345:47
[INFO] [stdout]     |
[INFO] [stdout] 345 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/codegen.rs:430:25
[INFO] [stdout]     |
[INFO] [stdout] 430 |             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 430 -             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stdout] 430 +             _ => panic!("not implemented {:?}", closure),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:451:85
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let var = LLVMBuildAlloca(builder, ty, CString::new(name.as_str()).unwrap().as_ptr());
[INFO] [stdout]     |                                                ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:540:43
[INFO] [stdout]     |
[INFO] [stdout] 540 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:543:39
[INFO] [stdout]     |
[INFO] [stdout] 543 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:566:47
[INFO] [stdout]     |
[INFO] [stdout] 566 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:579:80
[INFO] [stdout]     |
[INFO] [stdout] 579 |             LLVMBuildStructGEP(self.builder, p, idx, CString::new("").unwrap().as_ptr()),
[INFO] [stdout]     |                                                      ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:580:39
[INFO] [stdout]     |
[INFO] [stdout] 580 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:592:39
[INFO] [stdout]     |
[INFO] [stdout] 592 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:675:39
[INFO] [stdout]     |
[INFO] [stdout] 675 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:704:43
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:716:39
[INFO] [stdout]     |
[INFO] [stdout] 716 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:728:60
[INFO] [stdout]     |
[INFO] [stdout] 728 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:774:60
[INFO] [stdout]     |
[INFO] [stdout] 774 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:814:60
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:887:79
[INFO] [stdout]     |
[INFO] [stdout] 887 |         let bb_then = LLVMAppendBasicBlock(fun, CString::new("then").unwrap().as_ptr());
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:888:79
[INFO] [stdout]     |
[INFO] [stdout] 888 |         let bb_else = LLVMAppendBasicBlock(fun, CString::new("else").unwrap().as_ptr());
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:889:81
[INFO] [stdout]     |
[INFO] [stdout] 889 |         let bb_merge = LLVMAppendBasicBlock(fun, CString::new("merge").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:916:42
[INFO] [stdout]     |
[INFO] [stdout] 916 |             CString::new("phi").unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/codegen.rs:954:20
[INFO] [stdout]     |
[INFO] [stdout] 954 |             panic!(format!("not found variable '{}'", name))
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 954 -             panic!(format!("not found variable '{}'", name))
[INFO] [stdout] 954 +             panic!("not found variable '{}'", name)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:983:39
[INFO] [stdout]     |
[INFO] [stdout] 983 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/codegen.rs:1033:25
[INFO] [stdout]      |
[INFO] [stdout] 1033 |             _ => panic!(format!("{:?}", self)),
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1033 -             _ => panic!(format!("{:?}", self)),
[INFO] [stdout] 1033 +             _ => panic!("{:?}", self),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/codegen.rs:1081:25
[INFO] [stdout]      |
[INFO] [stdout] 1081 |             _ => panic!(format!("{:?}", self)),
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1081 -             _ => panic!(format!("{:?}", self)),
[INFO] [stdout] 1081 +             _ => panic!("{:?}", self),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling rcaml v0.1.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: 130 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:40:51
[INFO] [stdout]    |
[INFO] [stdout] 40 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 40 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 40 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]   --> src/main.rs:41:43
[INFO] [stdout]    |
[INFO] [stdout] 41 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]    |
[INFO] [stdout] 41 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 41 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused attribute `macro_export`
[INFO] [stdout]    --> src/parser.rs:397:1
[INFO] [stdout]     |
[INFO] [stdout] 397 | #[macro_export]
[INFO] [stdout]     | ^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout] note: the built-in attribute `macro_export` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stdout]    --> src/parser.rs:398:1
[INFO] [stdout]     |
[INFO] [stdout] 398 | named!(pub module_item<NodeKind>,
[INFO] [stdout]     | ^^^^^
[INFO] [stdout]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary parentheses around function argument
[INFO] [stdout]   --> src/parser.rs:69:17
[INFO] [stdout]    |
[INFO] [stdout] 69 |                 (params
[INFO] [stdout]    |                 ^
[INFO] [stdout] ...
[INFO] [stdout] 72 |                     .collect())
[INFO] [stdout]    |                               ^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stdout] help: remove these parentheses
[INFO] [stdout]    |
[INFO] [stdout] 69 ~                 params
[INFO] [stdout] 70 |                     .into_iter()
[INFO] [stdout] 71 |                     .map(|param| (param.get_ident_name().unwrap(), Type::Var(0)))
[INFO] [stdout] 72 ~                     .collect()
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node::NodeKind::*`
[INFO] [stdout]    --> src/parser.rs:833:9
[INFO] [stdout]     |
[INFO] [stdout] 833 |     use node::NodeKind::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node::FuncDef`
[INFO] [stdout]    --> src/parser.rs:834:9
[INFO] [stdout]     |
[INFO] [stdout] 834 |     use node::FuncDef;
[INFO] [stdout]     |         ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node::BinOps::*`
[INFO] [stdout]    --> src/parser.rs:835:9
[INFO] [stdout]     |
[INFO] [stdout] 835 |     use node::BinOps::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `node::BinOps::*`
[INFO] [stdout]    --> src/parser.rs:836:9
[INFO] [stdout]     |
[INFO] [stdout] 836 |     use node::BinOps::*;
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]   --> src/typing.rs:45:129
[INFO] [stdout]    |
[INFO] [stdout] 45 |                 macro_rules! name { ($id:expr) => ( format!("\'{}", m.entry($id).or_insert_with(|| { *i += 1; *i }).clone()) ) };
[INFO] [stdout]    |                                                                                                                                 ^ help: remove this semicolon
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:233:17
[INFO] [stdout]     |
[INFO] [stdout] 233 |                 try!(unify(a, b, tyenv));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:243:17
[INFO] [stdout]     |
[INFO] [stdout] 243 |                 try!(unify(a, b, tyenv));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:376:47
[INFO] [stdout]     |
[INFO] [stdout] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 396 |         NodeKind::Tuple(ref es) => Ok(Type::Tuple(g_seq!(es))),
[INFO] [stdout]     |                                                   ---------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:398:13
[INFO] [stdout]     |
[INFO] [stdout] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:399:13
[INFO] [stdout]     |
[INFO] [stdout] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:398:25
[INFO] [stdout]     |
[INFO] [stdout] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:399:25
[INFO] [stdout]     |
[INFO] [stdout] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:403:13
[INFO] [stdout]     |
[INFO] [stdout] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:404:13
[INFO] [stdout]     |
[INFO] [stdout] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:403:25
[INFO] [stdout]     |
[INFO] [stdout] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:404:25
[INFO] [stdout]     |
[INFO] [stdout] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:410:13
[INFO] [stdout]     |
[INFO] [stdout] 410 |             try!(unify(&a, &b, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:408:21
[INFO] [stdout]     |
[INFO] [stdout] 408 |             let a = try!(g(lhs, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:409:21
[INFO] [stdout]     |
[INFO] [stdout] 409 |             let b = try!(g(rhs, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:420:13
[INFO] [stdout]     |
[INFO] [stdout] 420 |             try!(unify(&callee_ty, &functy, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:416:29
[INFO] [stdout]     |
[INFO] [stdout] 416 |             let callee_ty = try!(g(callee, env, tyenv, idgen));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:376:47
[INFO] [stdout]     |
[INFO] [stdout] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stdout]     |                                               ^^^
[INFO] [stdout] ...
[INFO] [stdout] 417 |             let functy = Type::Func(g_seq!(args), Box::new(ty.clone()));
[INFO] [stdout]     |                                     ------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:425:13
[INFO] [stdout]     |
[INFO] [stdout] 425 |             try!(unify(&t, ty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:424:21
[INFO] [stdout]     |
[INFO] [stdout] 424 |             let t = try!(g(expr, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:444:13
[INFO] [stdout]     |
[INFO] [stdout] 444 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:442:26
[INFO] [stdout]     |
[INFO] [stdout] 442 |                 Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stdout]     |                          ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:450:13
[INFO] [stdout]     |
[INFO] [stdout] 450 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:451:18
[INFO] [stdout]     |
[INFO] [stdout] 451 |                 &try!(g(expr, &env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:462:13
[INFO] [stdout]     |
[INFO] [stdout] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:462:25
[INFO] [stdout]     |
[INFO] [stdout] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:483:13
[INFO] [stdout]     |
[INFO] [stdout] 483 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:479:30
[INFO] [stdout]     |
[INFO] [stdout] 479 |                     Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stdout]     |                              ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:491:13
[INFO] [stdout]     |
[INFO] [stdout] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:494:13
[INFO] [stdout]     |
[INFO] [stdout] 494 |             try!(unify(&t, &e, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:491:25
[INFO] [stdout]     |
[INFO] [stdout] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:492:21
[INFO] [stdout]     |
[INFO] [stdout] 492 |             let t = try!(g(then_, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:493:21
[INFO] [stdout]     |
[INFO] [stdout] 493 |             let e = try!(g(else_, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:498:13
[INFO] [stdout]     |
[INFO] [stdout] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:498:25
[INFO] [stdout]     |
[INFO] [stdout] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:499:21
[INFO] [stdout]     |
[INFO] [stdout] 499 |             let t = try!(g(e2, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:504:13
[INFO] [stdout]     |
[INFO] [stdout] 504 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:509:13
[INFO] [stdout]     |
[INFO] [stdout] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:505:18
[INFO] [stdout]     |
[INFO] [stdout] 505 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:509:25
[INFO] [stdout]     |
[INFO] [stdout] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:514:13
[INFO] [stdout]     |
[INFO] [stdout] 514 |             try!(unify(
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:519:13
[INFO] [stdout]     |
[INFO] [stdout] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:513:21
[INFO] [stdout]     |
[INFO] [stdout] 513 |             let t = try!(g(e3, env, tyenv, idgen));
[INFO] [stdout]     |                     ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:515:18
[INFO] [stdout]     |
[INFO] [stdout] 515 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/typing.rs:519:25
[INFO] [stdout]     |
[INFO] [stdout] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stdout]     |                         ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:259:13
[INFO] [stdout]     |
[INFO] [stdout] 259 |             try!(self.gen_expr(&env, Some(main), &expr));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:256:17
[INFO] [stdout]     |
[INFO] [stdout] 256 |                 try!(self.gen_fun(&mut env, &fun));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:262:36
[INFO] [stdout]     |
[INFO] [stdout] 262 |         LLVMBuildRet(self.builder, try!(self.gen_int(0)));
[INFO] [stdout]     |                                    ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:354:23
[INFO] [stdout]     |
[INFO] [stdout] 354 |             let var = try!(self.declare_local_var(
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:365:23
[INFO] [stdout]     |
[INFO] [stdout] 365 |         let ret_val = try!(self.gen_expr(&env, Some(llvm_fun), &*cls.body));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:466:29
[INFO] [stdout]     |
[INFO] [stdout] 466 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:468:13
[INFO] [stdout]     |
[INFO] [stdout] 468 |             try!(self.declare_local_var(&mut newenv, cur_fun, name, LLVMTypeOf(llvm_expr_val),));
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:482:29
[INFO] [stdout]     |
[INFO] [stdout] 482 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stdout]     |                             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:484:33
[INFO] [stdout]     |
[INFO] [stdout] 484 |             let llvm_elem_val = try!(self.llvm_struct_elem_extract(llvm_expr_val, i as u32));
[INFO] [stdout]     |                                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:486:17
[INFO] [stdout]     |
[INFO] [stdout] 486 |                 try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:547:17
[INFO] [stdout]     |
[INFO] [stdout] 547 |         let x = try!(
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:606:13
[INFO] [stdout]     |
[INFO] [stdout] 606 |             try!(self.llvm_struct_alloc(actual_fv))
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:608:22
[INFO] [stdout]     |
[INFO] [stdout] 608 |         let newcls = try!(self.llvm_struct_alloc(vec![fun, actual_fv]));
[INFO] [stdout]     |                      ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:623:19
[INFO] [stdout]     |
[INFO] [stdout] 623 |         let fun = try!(self.lookup_var(env, &cls.entry)).retrieve();
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:627:24
[INFO] [stdout]     |
[INFO] [stdout] 627 |                 v.push(try!(self.lookup_var(env, name)).get(self.builder))
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:631:28
[INFO] [stdout]     |
[INFO] [stdout] 631 |         let (new_env, _) = try!(self.make_cls(env, name.clone(), fun, fv));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:632:17
[INFO] [stdout]     |
[INFO] [stdout] 632 |         let x = try!(self.gen_expr(&new_env, cur_fun, body));
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:649:17
[INFO] [stdout]     |
[INFO] [stdout] 649 |         let x = try!(self.lookup_var(env, name)).get(self.builder);
[INFO] [stdout]     |                 ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:650:19
[INFO] [stdout]     |
[INFO] [stdout] 650 |         let fun = try!(self.llvm_struct_elem_load(x, 0));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:651:18
[INFO] [stdout]     |
[INFO] [stdout] 651 |         let fv = try!(self.llvm_struct_elem_load(x, 1));
[INFO] [stdout]     |                  ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:655:28
[INFO] [stdout]     |
[INFO] [stdout] 655 |             let llvm_arg = try!(self.gen_expr(env, cur_fun, &arg));
[INFO] [stdout]     |                            ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:694:27
[INFO] [stdout]     |
[INFO] [stdout] 694 |             args_val.push(try!(self.gen_expr(env, cur_fun, &arg)))
[INFO] [stdout]     |                           ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:708:19
[INFO] [stdout]     |
[INFO] [stdout] 708 |         let fun = try!(self.lookup_var(env, name)).retrieve();
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:729:23
[INFO] [stdout]     |
[INFO] [stdout] 729 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:730:23
[INFO] [stdout]     |
[INFO] [stdout] 730 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:775:23
[INFO] [stdout]     |
[INFO] [stdout] 775 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:776:23
[INFO] [stdout]     |
[INFO] [stdout] 776 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:815:23
[INFO] [stdout]     |
[INFO] [stdout] 815 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:816:23
[INFO] [stdout]     |
[INFO] [stdout] 816 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stdout]     |                       ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/codegen.rs:883:10
[INFO] [stdout]     |
[INFO] [stdout] 883 |         };
[INFO] [stdout]     |          ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:884:24
[INFO] [stdout]     |
[INFO] [stdout] 884 |         let cond_val = try!(self.gen_expr(env, cur_fun, cond));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:895:24
[INFO] [stdout]     |
[INFO] [stdout] 895 |         let then_val = try!(self.gen_expr(env, cur_fun, then));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:904:24
[INFO] [stdout]     |
[INFO] [stdout] 904 |         let else_val = try!(self.gen_expr(env, cur_fun, els));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:963:19
[INFO] [stdout]     |
[INFO] [stdout] 963 |         let val = try!(self.lookup_var(env, name));
[INFO] [stdout]     |                   ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:976:24
[INFO] [stdout]     |
[INFO] [stdout] 976 |                 v.push(try!(e));
[INFO] [stdout]     |                        ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stdout]    --> src/codegen.rs:982:13
[INFO] [stdout]     |
[INFO] [stdout] 982 |             try!(self.llvm_struct_alloc(es)),
[INFO] [stdout]     |             ^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary trailing semicolon
[INFO] [stdout]    --> src/closure.rs:138:7
[INFO] [stdout]     |
[INFO] [stdout] 138 |     }};
[INFO] [stdout]     |       ^ help: remove this semicolon
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/parser.rs:751:1
[INFO] [stdout]     |
[INFO] [stdout] 751 | / lazy_static! {
[INFO] [stdout] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stdout] 753 | |         let mut extenv = HashMap::new();
[INFO] [stdout] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 771 | |     };
[INFO] [stdout] 772 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stdout]    --> src/parser.rs:751:1
[INFO] [stdout]     |
[INFO] [stdout] 751 | / lazy_static! {
[INFO] [stdout] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stdout] 753 | |         let mut extenv = HashMap::new();
[INFO] [stdout] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stdout] ...   |
[INFO] [stdout] 771 | |     };
[INFO] [stdout] 772 | | }
[INFO] [stdout]     | |_^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stdout]   --> src/typing.rs:41:22
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     .trim_right_matches(" * ")
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout] help: replace the use of the deprecated method
[INFO] [stdout]    |
[INFO] [stdout] 41 |                     .trim_end_matches(" * ")
[INFO] [stdout]    |                      ~~~~~~~~~~~~~~~~
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `remain`
[INFO] [stdout]    --> src/parser.rs:843:23
[INFO] [stdout]     |
[INFO] [stdout] 843 |         IResult::Done(remain, node) => {
[INFO] [stdout]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_remain`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `param_ty`
[INFO] [stdout]    --> src/codegen.rs:340:43
[INFO] [stdout]     |
[INFO] [stdout] 340 |             for (i, &(ref param_name, ref param_ty)) in cls.formal_fv.iter().enumerate() {
[INFO] [stdout]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:461:9
[INFO] [stdout]     |
[INFO] [stdout] 461 |         ty: &Type,
[INFO] [stdout]     |         ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `ty`
[INFO] [stdout]    --> src/codegen.rs:483:33
[INFO] [stdout]     |
[INFO] [stdout] 483 |         for (i, &(ref name, ref ty)) in xs.iter().enumerate() {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `cur_bb_has_no_terminator` is never used
[INFO] [stdout]   --> src/codegen.rs:85:11
[INFO] [stdout]    |
[INFO] [stdout] 85 | unsafe fn cur_bb_has_no_terminator(builder: LLVMBuilderRef) -> bool {
[INFO] [stdout]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:641:51
[INFO] [stdout]     |
[INFO] [stdout] 641 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 641 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 641 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:642:43
[INFO] [stdout]     |
[INFO] [stdout] 642 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 642 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 642 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:673:51
[INFO] [stdout]     |
[INFO] [stdout] 673 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 673 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 673 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:674:43
[INFO] [stdout]     |
[INFO] [stdout] 674 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 674 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 674 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:781:47
[INFO] [stdout]     |
[INFO] [stdout] 781 |         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 781 -         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 781 +         IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:782:39
[INFO] [stdout]     |
[INFO] [stdout] 782 |         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 782 -         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 782 +         IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:811:47
[INFO] [stdout]     |
[INFO] [stdout] 811 |         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 811 -         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 811 +         IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:812:39
[INFO] [stdout]     |
[INFO] [stdout] 812 |         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 812 -         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 812 +         IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:852:47
[INFO] [stdout]     |
[INFO] [stdout] 852 |         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 852 -         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stdout] 852 +         IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/parser.rs:853:39
[INFO] [stdout]     |
[INFO] [stdout] 853 |         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 853 -         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stdout] 853 +         IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]   --> src/codegen.rs:35:86
[INFO] [stdout]    |
[INFO] [stdout] 35 |             &ValKind::Load(v) => LLVMBuildLoad(builder, v, CString::new("").unwrap().as_ptr()),
[INFO] [stdout]    |                                                            ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]    |                                                            |
[INFO] [stdout]    |                                                            this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]    |
[INFO] [stdout]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]    = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout]    = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:121:48
[INFO] [stdout]     |
[INFO] [stdout] 121 |             CString::new("print_int").unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:145:50
[INFO] [stdout]     |
[INFO] [stdout] 145 |             CString::new("print_float").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:165:52
[INFO] [stdout]     |
[INFO] [stdout] 165 |             CString::new("print_newline").unwrap().as_ptr(),
[INFO] [stdout]     |             -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:189:51
[INFO] [stdout]     |
[INFO] [stdout] 189 |             CString::new("float_of_int").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:213:45
[INFO] [stdout]     |
[INFO] [stdout] 213 |             CString::new("malloc").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:246:79
[INFO] [stdout]     |
[INFO] [stdout] 246 |         let main = LLVMAddFunction(self.module, CString::new("main").unwrap().as_ptr(), main_ty);
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:247:82
[INFO] [stdout]     |
[INFO] [stdout] 247 |         let bb_entry = LLVMAppendBasicBlock(main, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                   ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                   |
[INFO] [stdout]     |                                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:291:84
[INFO] [stdout]     |
[INFO] [stdout] 291 |         let main = LLVMGetNamedFunction(self.module, CString::new("main").unwrap().as_ptr());
[INFO] [stdout]     |                                                      ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:317:50
[INFO] [stdout]     |
[INFO] [stdout] 317 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:321:86
[INFO] [stdout]     |
[INFO] [stdout] 321 |         let bb_entry = LLVMAppendBasicBlock(llvm_fun, CString::new("entry").unwrap().as_ptr());
[INFO] [stdout]     |                                                       ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                       |
[INFO] [stdout]     |                                                       this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:338:90
[INFO] [stdout]     |
[INFO] [stdout] 338 |             let p = LLVMBuildPointerCast(self.builder, p, pty, CString::new("").unwrap().as_ptr());
[INFO] [stdout]     |                                                                ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                                |
[INFO] [stdout]     |                                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:345:47
[INFO] [stdout]     |
[INFO] [stdout] 345 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/codegen.rs:430:25
[INFO] [stdout]     |
[INFO] [stdout] 430 |             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 430 -             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stdout] 430 +             _ => panic!("not implemented {:?}", closure),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:451:85
[INFO] [stdout]     |
[INFO] [stdout] 451 |         let var = LLVMBuildAlloca(builder, ty, CString::new(name.as_str()).unwrap().as_ptr());
[INFO] [stdout]     |                                                ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                |
[INFO] [stdout]     |                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:540:43
[INFO] [stdout]     |
[INFO] [stdout] 540 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:543:39
[INFO] [stdout]     |
[INFO] [stdout] 543 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:566:47
[INFO] [stdout]     |
[INFO] [stdout] 566 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                     |
[INFO] [stdout]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:579:80
[INFO] [stdout]     |
[INFO] [stdout] 579 |             LLVMBuildStructGEP(self.builder, p, idx, CString::new("").unwrap().as_ptr()),
[INFO] [stdout]     |                                                      ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                      |
[INFO] [stdout]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:580:39
[INFO] [stdout]     |
[INFO] [stdout] 580 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:592:39
[INFO] [stdout]     |
[INFO] [stdout] 592 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:675:39
[INFO] [stdout]     |
[INFO] [stdout] 675 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:704:43
[INFO] [stdout]     |
[INFO] [stdout] 704 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:716:39
[INFO] [stdout]     |
[INFO] [stdout] 716 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:728:60
[INFO] [stdout]     |
[INFO] [stdout] 728 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:774:60
[INFO] [stdout]     |
[INFO] [stdout] 774 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:814:60
[INFO] [stdout]     |
[INFO] [stdout] 814 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stdout]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                   |
[INFO] [stdout]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:887:79
[INFO] [stdout]     |
[INFO] [stdout] 887 |         let bb_then = LLVMAppendBasicBlock(fun, CString::new("then").unwrap().as_ptr());
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:888:79
[INFO] [stdout]     |
[INFO] [stdout] 888 |         let bb_else = LLVMAppendBasicBlock(fun, CString::new("else").unwrap().as_ptr());
[INFO] [stdout]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                 |
[INFO] [stdout]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:889:81
[INFO] [stdout]     |
[INFO] [stdout] 889 |         let bb_merge = LLVMAppendBasicBlock(fun, CString::new("merge").unwrap().as_ptr());
[INFO] [stdout]     |                                                  ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |                                                  |
[INFO] [stdout]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:916:42
[INFO] [stdout]     |
[INFO] [stdout] 916 |             CString::new("phi").unwrap().as_ptr(),
[INFO] [stdout]     |             ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]    --> src/codegen.rs:954:20
[INFO] [stdout]     |
[INFO] [stdout] 954 |             panic!(format!("not found variable '{}'", name))
[INFO] [stdout]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]     |
[INFO] [stdout] 954 -             panic!(format!("not found variable '{}'", name))
[INFO] [stdout] 954 +             panic!("not found variable '{}'", name)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: getting the inner pointer of a temporary `CString`
[INFO] [stdout]    --> src/codegen.rs:983:39
[INFO] [stdout]     |
[INFO] [stdout] 983 |             CString::new("").unwrap().as_ptr(),
[INFO] [stdout]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stdout]     |             |
[INFO] [stdout]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stdout]     |
[INFO] [stdout]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stdout]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/codegen.rs:1033:25
[INFO] [stdout]      |
[INFO] [stdout] 1033 |             _ => panic!(format!("{:?}", self)),
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1033 -             _ => panic!(format!("{:?}", self)),
[INFO] [stdout] 1033 +             _ => panic!("{:?}", self),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: panic message is not a string literal
[INFO] [stdout]     --> src/codegen.rs:1081:25
[INFO] [stdout]      |
[INFO] [stdout] 1081 |             _ => panic!(format!("{:?}", self)),
[INFO] [stdout]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]      |
[INFO] [stdout]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stdout]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stdout]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stdout] help: remove the `format!(..)` macro call
[INFO] [stdout]      |
[INFO] [stdout] 1081 -             _ => panic!(format!("{:?}", self)),
[INFO] [stdout] 1081 +             _ => panic!("{:?}", self),
[INFO] [stdout]      |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 141 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 2 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 2.41s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "beb1edc9702a259c465ec2801a6a432703003bb70e0f6eb0b9bd1aac5698e163", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "beb1edc9702a259c465ec2801a6a432703003bb70e0f6eb0b9bd1aac5698e163", kill_on_drop: false }`
[INFO] [stdout] beb1edc9702a259c465ec2801a6a432703003bb70e0f6eb0b9bd1aac5698e163
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/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:5ff2268d62e97bff2cde7d5815dd6ed5b47097566f13b8d0ca110b04b60e07ed" "/opt/rustwide/cargo-home/bin/cargo" "+1.69.0" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 164b7dc3416eaddc121d2a62f973140afde0e3fbe4c68b430893accd41b0fe32
[INFO] running `Command { std: "docker" "start" "-a" "164b7dc3416eaddc121d2a62f973140afde0e3fbe4c68b430893accd41b0fe32", kill_on_drop: false }`
[INFO] [stderr] warning: unused attribute `macro_export`
[INFO] [stderr]    --> src/parser.rs:397:1
[INFO] [stderr]     |
[INFO] [stderr] 397 | #[macro_export]
[INFO] [stderr]     | ^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr] note: the built-in attribute `macro_export` will be ignored, since it's applied to the macro invocation `named`
[INFO] [stderr]    --> src/parser.rs:398:1
[INFO] [stderr]     |
[INFO] [stderr] 398 | named!(pub module_item<NodeKind>,
[INFO] [stderr]     | ^^^^^
[INFO] [stderr]     = note: `#[warn(unused_attributes)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary parentheses around function argument
[INFO] [stderr]   --> src/parser.rs:69:17
[INFO] [stderr]    |
[INFO] [stderr] 69 |                 (params
[INFO] [stderr]    |                 ^
[INFO] [stderr] ...
[INFO] [stderr] 72 |                     .collect())
[INFO] [stderr]    |                               ^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(unused_parens)]` on by default
[INFO] [stderr] help: remove these parentheses
[INFO] [stderr]    |
[INFO] [stderr] 69 ~                 params
[INFO] [stderr] 70 |                     .into_iter()
[INFO] [stderr] 71 |                     .map(|param| (param.get_ident_name().unwrap(), Type::Var(0)))
[INFO] [stderr] 72 ~                     .collect()
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]   --> src/typing.rs:45:129
[INFO] [stderr]    |
[INFO] [stderr] 45 |                 macro_rules! name { ($id:expr) => ( format!("\'{}", m.entry($id).or_insert_with(|| { *i += 1; *i }).clone()) ) };
[INFO] [stderr]    |                                                                                                                                 ^ help: remove this semicolon
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(redundant_semicolons)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:233:17
[INFO] [stderr]     |
[INFO] [stderr] 233 |                 try!(unify(a, b, tyenv));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(deprecated)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:243:17
[INFO] [stderr]     |
[INFO] [stderr] 243 |                 try!(unify(a, b, tyenv));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:376:47
[INFO] [stderr]     |
[INFO] [stderr] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stderr]     |                                               ^^^
[INFO] [stderr] ...
[INFO] [stderr] 396 |         NodeKind::Tuple(ref es) => Ok(Type::Tuple(g_seq!(es))),
[INFO] [stderr]     |                                                   ---------- in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:398:13
[INFO] [stderr]     |
[INFO] [stderr] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:399:13
[INFO] [stderr]     |
[INFO] [stderr] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:398:25
[INFO] [stderr]     |
[INFO] [stderr] 398 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:399:25
[INFO] [stderr]     |
[INFO] [stderr] 399 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:403:13
[INFO] [stderr]     |
[INFO] [stderr] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:404:13
[INFO] [stderr]     |
[INFO] [stderr] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:403:25
[INFO] [stderr]     |
[INFO] [stderr] 403 |             try!(unify(&try!(g(lhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:404:25
[INFO] [stderr]     |
[INFO] [stderr] 404 |             try!(unify(&try!(g(rhs, env, tyenv, idgen)), &Type::Float, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:410:13
[INFO] [stderr]     |
[INFO] [stderr] 410 |             try!(unify(&a, &b, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:408:21
[INFO] [stderr]     |
[INFO] [stderr] 408 |             let a = try!(g(lhs, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:409:21
[INFO] [stderr]     |
[INFO] [stderr] 409 |             let b = try!(g(rhs, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:420:13
[INFO] [stderr]     |
[INFO] [stderr] 420 |             try!(unify(&callee_ty, &functy, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:416:29
[INFO] [stderr]     |
[INFO] [stderr] 416 |             let callee_ty = try!(g(callee, env, tyenv, idgen));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:376:47
[INFO] [stderr]     |
[INFO] [stderr] 376 |             for e in $es.iter() { argtys.push(try!(g(e, env, tyenv, idgen))); }
[INFO] [stderr]     |                                               ^^^
[INFO] [stderr] ...
[INFO] [stderr] 417 |             let functy = Type::Func(g_seq!(args), Box::new(ty.clone()));
[INFO] [stderr]     |                                     ------------ in this macro invocation
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `g_seq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:425:13
[INFO] [stderr]     |
[INFO] [stderr] 425 |             try!(unify(&t, ty, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:424:21
[INFO] [stderr]     |
[INFO] [stderr] 424 |             let t = try!(g(expr, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:444:13
[INFO] [stderr]     |
[INFO] [stderr] 444 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:442:26
[INFO] [stderr]     |
[INFO] [stderr] 442 |                 Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stderr]     |                          ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:450:13
[INFO] [stderr]     |
[INFO] [stderr] 450 |             try!(unify(
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:451:18
[INFO] [stderr]     |
[INFO] [stderr] 451 |                 &try!(g(expr, &env, tyenv, idgen)),
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:462:13
[INFO] [stderr]     |
[INFO] [stderr] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:462:25
[INFO] [stderr]     |
[INFO] [stderr] 462 |             try!(unify(&try!(g(expr, env, tyenv, idgen)), ty, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:483:13
[INFO] [stderr]     |
[INFO] [stderr] 483 |             try!(unify(&ty, &newty, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:479:30
[INFO] [stderr]     |
[INFO] [stderr] 479 |                     Box::new(try!(g(expr, &newenv_body, tyenv, idgen))),
[INFO] [stderr]     |                              ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:491:13
[INFO] [stderr]     |
[INFO] [stderr] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:494:13
[INFO] [stderr]     |
[INFO] [stderr] 494 |             try!(unify(&t, &e, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:491:25
[INFO] [stderr]     |
[INFO] [stderr] 491 |             try!(unify(&try!(g(cond, env, tyenv, idgen)), &Type::Bool, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:492:21
[INFO] [stderr]     |
[INFO] [stderr] 492 |             let t = try!(g(then_, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:493:21
[INFO] [stderr]     |
[INFO] [stderr] 493 |             let e = try!(g(else_, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:498:13
[INFO] [stderr]     |
[INFO] [stderr] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:498:25
[INFO] [stderr]     |
[INFO] [stderr] 498 |             try!(unify(&try!(g(e1, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:499:21
[INFO] [stderr]     |
[INFO] [stderr] 499 |             let t = try!(g(e2, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:504:13
[INFO] [stderr]     |
[INFO] [stderr] 504 |             try!(unify(
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:509:13
[INFO] [stderr]     |
[INFO] [stderr] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:505:18
[INFO] [stderr]     |
[INFO] [stderr] 505 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:509:25
[INFO] [stderr]     |
[INFO] [stderr] 509 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:514:13
[INFO] [stderr]     |
[INFO] [stderr] 514 |             try!(unify(
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:519:13
[INFO] [stderr]     |
[INFO] [stderr] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:513:21
[INFO] [stderr]     |
[INFO] [stderr] 513 |             let t = try!(g(e3, env, tyenv, idgen));
[INFO] [stderr]     |                     ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:515:18
[INFO] [stderr]     |
[INFO] [stderr] 515 |                 &try!(g(e1, env, tyenv, idgen)),
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/typing.rs:519:25
[INFO] [stderr]     |
[INFO] [stderr] 519 |             try!(unify(&try!(g(e2, env, tyenv, idgen)), &Type::Int, tyenv));
[INFO] [stderr]     |                         ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:259:13
[INFO] [stderr]     |
[INFO] [stderr] 259 |             try!(self.gen_expr(&env, Some(main), &expr));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:256:17
[INFO] [stderr]     |
[INFO] [stderr] 256 |                 try!(self.gen_fun(&mut env, &fun));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:262:36
[INFO] [stderr]     |
[INFO] [stderr] 262 |         LLVMBuildRet(self.builder, try!(self.gen_int(0)));
[INFO] [stderr]     |                                    ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:354:23
[INFO] [stderr]     |
[INFO] [stderr] 354 |             let var = try!(self.declare_local_var(
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:365:23
[INFO] [stderr]     |
[INFO] [stderr] 365 |         let ret_val = try!(self.gen_expr(&env, Some(llvm_fun), &*cls.body));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:466:29
[INFO] [stderr]     |
[INFO] [stderr] 466 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:468:13
[INFO] [stderr]     |
[INFO] [stderr] 468 |             try!(self.declare_local_var(&mut newenv, cur_fun, name, LLVMTypeOf(llvm_expr_val),));
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:482:29
[INFO] [stderr]     |
[INFO] [stderr] 482 |         let llvm_expr_val = try!(self.gen_expr(env, cur_fun, expr));
[INFO] [stderr]     |                             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:484:33
[INFO] [stderr]     |
[INFO] [stderr] 484 |             let llvm_elem_val = try!(self.llvm_struct_elem_extract(llvm_expr_val, i as u32));
[INFO] [stderr]     |                                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:486:17
[INFO] [stderr]     |
[INFO] [stderr] 486 |                 try!(
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:547:17
[INFO] [stderr]     |
[INFO] [stderr] 547 |         let x = try!(
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:606:13
[INFO] [stderr]     |
[INFO] [stderr] 606 |             try!(self.llvm_struct_alloc(actual_fv))
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:608:22
[INFO] [stderr]     |
[INFO] [stderr] 608 |         let newcls = try!(self.llvm_struct_alloc(vec![fun, actual_fv]));
[INFO] [stderr]     |                      ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:623:19
[INFO] [stderr]     |
[INFO] [stderr] 623 |         let fun = try!(self.lookup_var(env, &cls.entry)).retrieve();
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:627:24
[INFO] [stderr]     |
[INFO] [stderr] 627 |                 v.push(try!(self.lookup_var(env, name)).get(self.builder))
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:631:28
[INFO] [stderr]     |
[INFO] [stderr] 631 |         let (new_env, _) = try!(self.make_cls(env, name.clone(), fun, fv));
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:632:17
[INFO] [stderr]     |
[INFO] [stderr] 632 |         let x = try!(self.gen_expr(&new_env, cur_fun, body));
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:649:17
[INFO] [stderr]     |
[INFO] [stderr] 649 |         let x = try!(self.lookup_var(env, name)).get(self.builder);
[INFO] [stderr]     |                 ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:650:19
[INFO] [stderr]     |
[INFO] [stderr] 650 |         let fun = try!(self.llvm_struct_elem_load(x, 0));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:651:18
[INFO] [stderr]     |
[INFO] [stderr] 651 |         let fv = try!(self.llvm_struct_elem_load(x, 1));
[INFO] [stderr]     |                  ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:655:28
[INFO] [stderr]     |
[INFO] [stderr] 655 |             let llvm_arg = try!(self.gen_expr(env, cur_fun, &arg));
[INFO] [stderr]     |                            ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:694:27
[INFO] [stderr]     |
[INFO] [stderr] 694 |             args_val.push(try!(self.gen_expr(env, cur_fun, &arg)))
[INFO] [stderr]     |                           ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:708:19
[INFO] [stderr]     |
[INFO] [stderr] 708 |         let fun = try!(self.lookup_var(env, name)).retrieve();
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:729:23
[INFO] [stderr]     |
[INFO] [stderr] 729 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:730:23
[INFO] [stderr]     |
[INFO] [stderr] 730 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:775:23
[INFO] [stderr]     |
[INFO] [stderr] 775 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:776:23
[INFO] [stderr]     |
[INFO] [stderr] 776 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:815:23
[INFO] [stderr]     |
[INFO] [stderr] 815 |         let lhs_val = try!(self.gen_expr(env, cur_fun, lhs));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:816:23
[INFO] [stderr]     |
[INFO] [stderr] 816 |         let rhs_val = try!(self.gen_expr(env, cur_fun, rhs));
[INFO] [stderr]     |                       ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/codegen.rs:883:10
[INFO] [stderr]     |
[INFO] [stderr] 883 |         };
[INFO] [stderr]     |          ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:884:24
[INFO] [stderr]     |
[INFO] [stderr] 884 |         let cond_val = try!(self.gen_expr(env, cur_fun, cond));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:895:24
[INFO] [stderr]     |
[INFO] [stderr] 895 |         let then_val = try!(self.gen_expr(env, cur_fun, then));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:904:24
[INFO] [stderr]     |
[INFO] [stderr] 904 |         let else_val = try!(self.gen_expr(env, cur_fun, els));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:963:19
[INFO] [stderr]     |
[INFO] [stderr] 963 |         let val = try!(self.lookup_var(env, name));
[INFO] [stderr]     |                   ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:976:24
[INFO] [stderr]     |
[INFO] [stderr] 976 |                 v.push(try!(e));
[INFO] [stderr]     |                        ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated macro `try`: use the `?` operator instead
[INFO] [stderr]    --> src/codegen.rs:982:13
[INFO] [stderr]     |
[INFO] [stderr] 982 |             try!(self.llvm_struct_alloc(es)),
[INFO] [stderr]     |             ^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unnecessary trailing semicolon
[INFO] [stderr]    --> src/closure.rs:138:7
[INFO] [stderr]     |
[INFO] [stderr] 138 |     }};
[INFO] [stderr]     |       ^ help: remove this semicolon
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated constant `std::sync::ONCE_INIT`: the `new` function is now preferred
[INFO] [stderr]    --> src/parser.rs:751:1
[INFO] [stderr]     |
[INFO] [stderr] 751 | / lazy_static! {
[INFO] [stderr] 752 | |     pub static ref EXTENV: Mutex<HashMap<String, TypeScheme>> = {
[INFO] [stderr] 753 | |         let mut extenv = HashMap::new();
[INFO] [stderr] 754 | |         extenv.insert("print_int".to_string(),
[INFO] [stderr] ...   |
[INFO] [stderr] 771 | |     };
[INFO] [stderr] 772 | | }
[INFO] [stderr]     | |_^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this warning originates in the macro `__lazy_static_create` which comes from the expansion of the macro `lazy_static` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stderr] 
[INFO] [stderr] warning: use of deprecated method `core::str::<impl str>::trim_right_matches`: superseded by `trim_end_matches`
[INFO] [stderr]   --> src/typing.rs:41:22
[INFO] [stderr]    |
[INFO] [stderr] 41 |                     .trim_right_matches(" * ")
[INFO] [stderr]    |                      ^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr] help: replace the use of the deprecated method
[INFO] [stderr]    |
[INFO] [stderr] 41 |                     .trim_end_matches(" * ")
[INFO] [stderr]    |                      ~~~~~~~~~~~~~~~~
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `param_ty`
[INFO] [stderr]    --> src/codegen.rs:340:43
[INFO] [stderr]     |
[INFO] [stderr] 340 |             for (i, &(ref param_name, ref param_ty)) in cls.formal_fv.iter().enumerate() {
[INFO] [stderr]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_ty`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]    --> src/codegen.rs:461:9
[INFO] [stderr]     |
[INFO] [stderr] 461 |         ty: &Type,
[INFO] [stderr]     |         ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `ty`
[INFO] [stderr]    --> src/codegen.rs:483:33
[INFO] [stderr]     |
[INFO] [stderr] 483 |         for (i, &(ref name, ref ty)) in xs.iter().enumerate() {
[INFO] [stderr]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: function `cur_bb_has_no_terminator` is never used
[INFO] [stderr]   --> src/codegen.rs:85:11
[INFO] [stderr]    |
[INFO] [stderr] 85 | unsafe fn cur_bb_has_no_terminator(builder: LLVMBuilderRef) -> bool {
[INFO] [stderr]    |           ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `#[warn(dead_code)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:641:51
[INFO] [stderr]     |
[INFO] [stderr] 641 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]     = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 641 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr] 641 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:642:43
[INFO] [stderr]     |
[INFO] [stderr] 642 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 642 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr] 642 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:673:51
[INFO] [stderr]     |
[INFO] [stderr] 673 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 673 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr] 673 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:674:43
[INFO] [stderr]     |
[INFO] [stderr] 674 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr]     |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 674 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr] 674 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]   --> src/codegen.rs:35:86
[INFO] [stderr]    |
[INFO] [stderr] 35 |             &ValKind::Load(v) => LLVMBuildLoad(builder, v, CString::new("").unwrap().as_ptr()),
[INFO] [stderr]    |                                                            ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]    |                                                            |
[INFO] [stderr]    |                                                            this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]    |
[INFO] [stderr]    = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]    = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr]    = note: `#[warn(temporary_cstring_as_ptr)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:121:48
[INFO] [stderr]     |
[INFO] [stderr] 121 |             CString::new("print_int").unwrap().as_ptr(),
[INFO] [stderr]     |             ---------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:145:50
[INFO] [stderr]     |
[INFO] [stderr] 145 |             CString::new("print_float").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:165:52
[INFO] [stderr]     |
[INFO] [stderr] 165 |             CString::new("print_newline").unwrap().as_ptr(),
[INFO] [stderr]     |             -------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:189:51
[INFO] [stderr]     |
[INFO] [stderr] 189 |             CString::new("float_of_int").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:213:45
[INFO] [stderr]     |
[INFO] [stderr] 213 |             CString::new("malloc").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:246:79
[INFO] [stderr]     |
[INFO] [stderr] 246 |         let main = LLVMAddFunction(self.module, CString::new("main").unwrap().as_ptr(), main_ty);
[INFO] [stderr]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                 |
[INFO] [stderr]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:247:82
[INFO] [stderr]     |
[INFO] [stderr] 247 |         let bb_entry = LLVMAppendBasicBlock(main, CString::new("entry").unwrap().as_ptr());
[INFO] [stderr]     |                                                   ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                   |
[INFO] [stderr]     |                                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:291:84
[INFO] [stderr]     |
[INFO] [stderr] 291 |         let main = LLVMGetNamedFunction(self.module, CString::new("main").unwrap().as_ptr());
[INFO] [stderr]     |                                                      ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:317:50
[INFO] [stderr]     |
[INFO] [stderr] 317 |             CString::new(name.as_str()).unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:321:86
[INFO] [stderr]     |
[INFO] [stderr] 321 |         let bb_entry = LLVMAppendBasicBlock(llvm_fun, CString::new("entry").unwrap().as_ptr());
[INFO] [stderr]     |                                                       ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                       |
[INFO] [stderr]     |                                                       this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:338:90
[INFO] [stderr]     |
[INFO] [stderr] 338 |             let p = LLVMBuildPointerCast(self.builder, p, pty, CString::new("").unwrap().as_ptr());
[INFO] [stderr]     |                                                                ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                                |
[INFO] [stderr]     |                                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:345:47
[INFO] [stderr]     |
[INFO] [stderr] 345 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/codegen.rs:430:25
[INFO] [stderr]     |
[INFO] [stderr] 430 |             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stderr]     |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 430 -             _ => panic!(format!("not implemented {:?}", closure)),
[INFO] [stderr] 430 +             _ => panic!("not implemented {:?}", closure),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:451:85
[INFO] [stderr]     |
[INFO] [stderr] 451 |         let var = LLVMBuildAlloca(builder, ty, CString::new(name.as_str()).unwrap().as_ptr());
[INFO] [stderr]     |                                                ------------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                |
[INFO] [stderr]     |                                                this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:540:43
[INFO] [stderr]     |
[INFO] [stderr] 540 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:543:39
[INFO] [stderr]     |
[INFO] [stderr] 543 |             CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:566:47
[INFO] [stderr]     |
[INFO] [stderr] 566 |                     CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |                     ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                     |
[INFO] [stderr]     |                     this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:579:80
[INFO] [stderr]     |
[INFO] [stderr] 579 |             LLVMBuildStructGEP(self.builder, p, idx, CString::new("").unwrap().as_ptr()),
[INFO] [stderr]     |                                                      ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                      |
[INFO] [stderr]     |                                                      this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:580:39
[INFO] [stderr]     |
[INFO] [stderr] 580 |             CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:592:39
[INFO] [stderr]     |
[INFO] [stderr] 592 |             CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:675:39
[INFO] [stderr]     |
[INFO] [stderr] 675 |             CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:704:43
[INFO] [stderr]     |
[INFO] [stderr] 704 |                 CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |                 ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                 |
[INFO] [stderr]     |                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:716:39
[INFO] [stderr]     |
[INFO] [stderr] 716 |             CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:728:60
[INFO] [stderr]     |
[INFO] [stderr] 728 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stderr]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                   |
[INFO] [stderr]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:774:60
[INFO] [stderr]     |
[INFO] [stderr] 774 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stderr]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                   |
[INFO] [stderr]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:814:60
[INFO] [stderr]     |
[INFO] [stderr] 814 |         let inst_name = |s: &str| CString::new(s).unwrap().as_ptr();
[INFO] [stderr]     |                                   ------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                   |
[INFO] [stderr]     |                                   this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:887:79
[INFO] [stderr]     |
[INFO] [stderr] 887 |         let bb_then = LLVMAppendBasicBlock(fun, CString::new("then").unwrap().as_ptr());
[INFO] [stderr]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                 |
[INFO] [stderr]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:888:79
[INFO] [stderr]     |
[INFO] [stderr] 888 |         let bb_else = LLVMAppendBasicBlock(fun, CString::new("else").unwrap().as_ptr());
[INFO] [stderr]     |                                                 ----------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                 |
[INFO] [stderr]     |                                                 this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:889:81
[INFO] [stderr]     |
[INFO] [stderr] 889 |         let bb_merge = LLVMAppendBasicBlock(fun, CString::new("merge").unwrap().as_ptr());
[INFO] [stderr]     |                                                  ------------------------------ ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |                                                  |
[INFO] [stderr]     |                                                  this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:916:42
[INFO] [stderr]     |
[INFO] [stderr] 916 |             CString::new("phi").unwrap().as_ptr(),
[INFO] [stderr]     |             ---------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/codegen.rs:954:20
[INFO] [stderr]     |
[INFO] [stderr] 954 |             panic!(format!("not found variable '{}'", name))
[INFO] [stderr]     |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 954 -             panic!(format!("not found variable '{}'", name))
[INFO] [stderr] 954 +             panic!("not found variable '{}'", name)
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: getting the inner pointer of a temporary `CString`
[INFO] [stderr]    --> src/codegen.rs:983:39
[INFO] [stderr]     |
[INFO] [stderr] 983 |             CString::new("").unwrap().as_ptr(),
[INFO] [stderr]     |             ------------------------- ^^^^^^ this pointer will be invalid
[INFO] [stderr]     |             |
[INFO] [stderr]     |             this `CString` is deallocated at the end of the statement, bind it to a variable to extend its lifetime
[INFO] [stderr]     |
[INFO] [stderr]     = note: pointers do not have a lifetime; when calling `as_ptr` the `CString` will be deallocated at the end of the statement because nothing is referencing it as far as the type system is concerned
[INFO] [stderr]     = help: for more information, see https://doc.rust-lang.org/reference/destructors.html
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/codegen.rs:1033:25
[INFO] [stderr]      |
[INFO] [stderr] 1033 |             _ => panic!(format!("{:?}", self)),
[INFO] [stderr]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1033 -             _ => panic!(format!("{:?}", self)),
[INFO] [stderr] 1033 +             _ => panic!("{:?}", self),
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]     --> src/codegen.rs:1081:25
[INFO] [stderr]      |
[INFO] [stderr] 1081 |             _ => panic!(format!("{:?}", self)),
[INFO] [stderr]      |                         ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]      |
[INFO] [stderr]      = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]      = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]      = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]      |
[INFO] [stderr] 1081 -             _ => panic!(format!("{:?}", self)),
[INFO] [stderr] 1081 +             _ => panic!("{:?}", self),
[INFO] [stderr]      |
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `node::NodeKind::*`
[INFO] [stderr]    --> src/parser.rs:833:9
[INFO] [stderr]     |
[INFO] [stderr] 833 |     use node::NodeKind::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_imports)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `node::FuncDef`
[INFO] [stderr]    --> src/parser.rs:834:9
[INFO] [stderr]     |
[INFO] [stderr] 834 |     use node::FuncDef;
[INFO] [stderr]     |         ^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `node::BinOps::*`
[INFO] [stderr]    --> src/parser.rs:835:9
[INFO] [stderr]     |
[INFO] [stderr] 835 |     use node::BinOps::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused import: `node::BinOps::*`
[INFO] [stderr]    --> src/parser.rs:836:9
[INFO] [stderr]     |
[INFO] [stderr] 836 |     use node::BinOps::*;
[INFO] [stderr]     |         ^^^^^^^^^^^^^^^
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `remain`
[INFO] [stderr]    --> src/parser.rs:843:23
[INFO] [stderr]     |
[INFO] [stderr] 843 |         IResult::Done(remain, node) => {
[INFO] [stderr]     |                       ^^^^^^ help: if this is intentional, prefix it with an underscore: `_remain`
[INFO] [stderr]     |
[INFO] [stderr]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stderr] 
[INFO] [stderr] warning: unused variable: `param_ty`
[INFO] [stderr]    --> src/codegen.rs:340:43
[INFO] [stderr]     |
[INFO] [stderr] 340 |             for (i, &(ref param_name, ref param_ty)) in cls.formal_fv.iter().enumerate() {
[INFO] [stderr]     |                                           ^^^^^^^^ help: if this is intentional, prefix it with an underscore: `_param_ty`
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:781:47
[INFO] [stderr]     |
[INFO] [stderr] 781 |         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 781 -         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr] 781 +         IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:782:39
[INFO] [stderr]     |
[INFO] [stderr] 782 |         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 782 -         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr] 782 +         IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:811:47
[INFO] [stderr]     |
[INFO] [stderr] 811 |         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 811 -         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr] 811 +         IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:812:39
[INFO] [stderr]     |
[INFO] [stderr] 812 |         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 812 -         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr] 812 +         IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:852:47
[INFO] [stderr]     |
[INFO] [stderr] 852 |         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr]     |                                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 852 -         IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr] 852 +         IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]    --> src/parser.rs:853:39
[INFO] [stderr]     |
[INFO] [stderr] 853 |         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr]     |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]     |
[INFO] [stderr]     = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]     = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]     = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]     |
[INFO] [stderr] 853 -         IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr] 853 +         IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stderr]     |
[INFO] [stderr] 
[INFO] [stderr] warning: `rcaml` (lib) generated 130 warnings (1 duplicate) (run `cargo fix --lib -p rcaml` to apply 13 suggestions)
[INFO] [stderr] warning: `rcaml` (lib test) generated 141 warnings (129 duplicates) (run `cargo fix --lib -p rcaml --tests` to apply 12 suggestions)
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> src/main.rs:40:51
[INFO] [stderr]    |
[INFO] [stderr] 40 |             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr]    = note: `#[warn(non_fmt_panics)]` on by default
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]    |
[INFO] [stderr] 40 -             IResult::Incomplete(needed) => panic!(format!("imcomplete: {:?}", needed)),
[INFO] [stderr] 40 +             IResult::Incomplete(needed) => panic!("imcomplete: {:?}", needed),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: panic message is not a string literal
[INFO] [stderr]   --> src/main.rs:41:43
[INFO] [stderr]    |
[INFO] [stderr] 41 |             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr]    |                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: this usage of `panic!()` is deprecated; it will be a hard error in Rust 2021
[INFO] [stderr]    = note: for more information, see <https://doc.rust-lang.org/nightly/edition-guide/rust-2021/panic-macro-consistency.html>
[INFO] [stderr]    = note: the `panic!()` macro supports formatting, so there's no need for the `format!()` macro here
[INFO] [stderr] help: remove the `format!(..)` macro call
[INFO] [stderr]    |
[INFO] [stderr] 41 -             IResult::Error(err) => panic!(format!("error: {:?}", err)),
[INFO] [stderr] 41 +             IResult::Error(err) => panic!("error: {:?}", err),
[INFO] [stderr]    |
[INFO] [stderr] 
[INFO] [stderr] warning: `rcaml` (bin "rcaml" test) generated 2 warnings (run `cargo fix --bin "rcaml" --tests` to apply 2 suggestions)
[INFO] [stderr]     Finished test [unoptimized + debuginfo] target(s) in 0.03s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: nom v3.2.1
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/rcaml-d36dd0c9d677df28)
[INFO] [stdout] 
[INFO] [stdout] running 3 tests
[INFO] [stdout] test parser::test_parse_simple_expr ... ok
[INFO] [stdout] test parser::test_parse_module_item ... ok
[INFO] [stdout] test parser::test_type_infer ... FAILED
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout] 
[INFO] [stdout] ---- parser::test_type_infer stdout ----
[INFO] [stdout] thread 'parser::test_type_infer' panicked at 'assertion failed: `(left == right)`
[INFO] [stdout]   left: `"unit"`,
[INFO] [stdout]  right: `"((('1 -> '1) -> '2) -> '2)"`', src/parser.rs:856:5
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x55e750d70d8a - std::backtrace_rs::backtrace::libunwind::trace::ha9053a9a07ca49cb
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
[INFO] [stdout]    1:     0x55e750d70d8a - std::backtrace_rs::backtrace::trace_unsynchronized::h9c2852a457ad564e
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x55e750d70d8a - std::sys_common::backtrace::_print_fmt::h457936fbfaa0070f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:65:5
[INFO] [stdout]    3:     0x55e750d70d8a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h5779d7bf7f70cb0c
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x55e750d95c2e - core::fmt::write::h5a4baaff1bcd3eb5
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/fmt/mod.rs:1232:17
[INFO] [stdout]    5:     0x55e750d6e205 - std::io::Write::write_fmt::h478f79c628ef31d1
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/io/mod.rs:1684:15
[INFO] [stdout]    6:     0x55e750d70b55 - std::sys_common::backtrace::_print::h5fcdc36060f177e8
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    7:     0x55e750d70b55 - std::sys_common::backtrace::print::h54ca9458b876c8bf
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    8:     0x55e750d7291f - std::panicking::default_hook::{{closure}}::hbe471161c7664ed6
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:271:22
[INFO] [stdout]    9:     0x55e750d725df - std::panicking::default_hook::ha3500da57aa4ac4f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:287:9
[INFO] [stdout]   10:     0x55e750d2b517 - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hdf1b89dd137ece34
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:2001:9
[INFO] [stdout]   11:     0x55e750d2b517 - test::test_main::{{closure}}::h9081a79f20e75698
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:135:21
[INFO] [stdout]   12:     0x55e750d7304d - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::h6507bddc3eebb4a5
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:2001:9
[INFO] [stdout]   13:     0x55e750d7304d - std::panicking::rust_panic_with_hook::h50c09d000dc561d2
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:696:13
[INFO] [stdout]   14:     0x55e750d72dc9 - std::panicking::begin_panic_handler::{{closure}}::h9e2b2176e00e0d9c
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:583:13
[INFO] [stdout]   15:     0x55e750d711f6 - std::sys_common::backtrace::__rust_end_short_backtrace::h5739b8e512c09d02
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:150:18
[INFO] [stdout]   16:     0x55e750d72ad2 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:579:5
[INFO] [stdout]   17:     0x55e750c66b83 - core::panicking::panic_fmt::hf33a1475b4dc5c3e
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:64:14
[INFO] [stdout]   18:     0x55e750c66e5f - core::panicking::assert_failed_inner::haf9816227b20b6f2
[INFO] [stdout]   19:     0x55e750cf9f6e - core::panicking::assert_failed::h20e3b1c3e2273669
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panicking.rs:211:5
[INFO] [stdout]   20:     0x55e750cc85b7 - rcaml::parser::test_type_infer::h4d319b835a6f976a
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser.rs:856:5
[INFO] [stdout]   21:     0x55e750cc8437 - rcaml::parser::test_type_infer::{{closure}}::h9a7a8c8c40dc544f
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser.rs:832:26
[INFO] [stdout]   22:     0x55e750cdb115 - core::ops::function::FnOnce::call_once::h907250635cd860ba
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   23:     0x55e750d308ff - core::ops::function::FnOnce::call_once::h7d969581be7d0075
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x55e750d308ff - test::__rust_begin_short_backtrace::hca25a52684e56655
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:656:18
[INFO] [stdout]   25:     0x55e750d01f1c - test::run_test::{{closure}}::ha8ac744c4af1a4bb
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:647:30
[INFO] [stdout]   26:     0x55e750d01f1c - core::ops::function::FnOnce::call_once{{vtable.shim}}::h7b411a9ed45bdecf
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   27:     0x55e750d2f8c6 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hd05328869a8ed200
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   28:     0x55e750d2f8c6 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h0c601ce20bd5b2be
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   29:     0x55e750d2f8c6 - std::panicking::try::do_call::ha4be5c164fe30854
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:487:40
[INFO] [stdout]   30:     0x55e750d2f8c6 - std::panicking::try::h604546f3609af05f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:451:19
[INFO] [stdout]   31:     0x55e750d2f8c6 - std::panic::catch_unwind::h5bfa8afe44c9c2f9
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panic.rs:140:14
[INFO] [stdout]   32:     0x55e750d2f8c6 - test::run_test_in_process::hd50dee55dd63e6aa
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:679:27
[INFO] [stdout]   33:     0x55e750d2f8c6 - test::run_test::run_test_inner::{{closure}}::h4aa0f433aa85cea8
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:573:39
[INFO] [stdout]   34:     0x55e750cfc591 - test::run_test::run_test_inner::{{closure}}::had56431adf24b4d6
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/test/src/lib.rs:600:37
[INFO] [stdout]   35:     0x55e750cfc591 - std::sys_common::backtrace::__rust_begin_short_backtrace::ha8d9890e0c73bf13
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys_common/backtrace.rs:134:18
[INFO] [stdout]   36:     0x55e750d01fab - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h251832bcb4a95327
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/thread/mod.rs:560:17
[INFO] [stdout]   37:     0x55e750d01fab - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h8fdff598fa414831
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/panic/unwind_safe.rs:271:9
[INFO] [stdout]   38:     0x55e750d01fab - std::panicking::try::do_call::h455dd2f7764a950f
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:487:40
[INFO] [stdout]   39:     0x55e750d01fab - std::panicking::try::had6f23b7b73ae72a
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panicking.rs:451:19
[INFO] [stdout]   40:     0x55e750d01fab - std::panic::catch_unwind::ha6a5ca3915b4dad0
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/panic.rs:140:14
[INFO] [stdout]   41:     0x55e750d01fab - std::thread::Builder::spawn_unchecked_::{{closure}}::h883b72ef75da6231
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/thread/mod.rs:559:30
[INFO] [stdout]   42:     0x55e750d01fab - core::ops::function::FnOnce::call_once{{vtable.shim}}::hb7dff73dc8bd2ccb
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   43:     0x55e750d773c3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h39990b24eedef2ab
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   44:     0x55e750d773c3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h01a027258444143b
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/alloc/src/boxed.rs:1987:9
[INFO] [stdout]   45:     0x55e750d773c3 - std::sys::unix::thread::Thread::new::thread_start::ha4f1cdd9c25884ba
[INFO] [stdout]                                at /rustc/84c898d65adf2f39a5a98507f1fe0ce10a2b8dbc/library/std/src/sys/unix/thread.rs:108:17
[INFO] [stdout]   46:     0x7fcf3b94fb43 - <unknown>
[INFO] [stdout]   47:     0x7fcf3b9e0bb4 - __clone
[INFO] [stdout]   48:                0x0 - <unknown>
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] failures:
[INFO] [stdout]     parser::test_type_infer
[INFO] [stdout] 
[INFO] [stdout] test result: FAILED. 2 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.01s
[INFO] [stdout] 
[INFO] [stderr] error: test failed, to rerun pass `--lib`
[INFO] running `Command { std: "docker" "inspect" "164b7dc3416eaddc121d2a62f973140afde0e3fbe4c68b430893accd41b0fe32", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "164b7dc3416eaddc121d2a62f973140afde0e3fbe4c68b430893accd41b0fe32", kill_on_drop: false }`
[INFO] [stdout] 164b7dc3416eaddc121d2a62f973140afde0e3fbe4c68b430893accd41b0fe32
