[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 master#1871252fc8bb672d40787e67404e6eaae7059369 for pr-125151
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fmaekawatoshiki%2Frcaml" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/maekawatoshiki/rcaml on toolchain 1871252fc8bb672d40787e67404e6eaae7059369
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "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-7-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" "+1871252fc8bb672d40787e67404e6eaae7059369" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded textwrap v0.8.0
[INFO] [stderr]   Downloaded llvm-sys v39.0.6
[INFO] [stderr]   Downloaded clap v2.26.2
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] ee08fca1b792a6a33cb4fc3934925ae629cf6b7240c4d5151bf5ced368c50ff7
[INFO] running `Command { std: "docker" "start" "-a" "ee08fca1b792a6a33cb4fc3934925ae629cf6b7240c4d5151bf5ced368c50ff7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "ee08fca1b792a6a33cb4fc3934925ae629cf6b7240c4d5151bf5ced368c50ff7", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "ee08fca1b792a6a33cb4fc3934925ae629cf6b7240c4d5151bf5ced368c50ff7", kill_on_drop: false }`
[INFO] [stdout] ee08fca1b792a6a33cb4fc3934925ae629cf6b7240c4d5151bf5ced368c50ff7
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a8f47329630cbec36a33def21af51b2950e27e68326522b99ecf27f0b244639b
[INFO] running `Command { std: "docker" "start" "-a" "a8f47329630cbec36a33def21af51b2950e27e68326522b99ecf27f0b244639b", 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 utf8-ranges v0.1.3
[INFO] [stderr]    Compiling regex-syntax v0.3.9
[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 bitflags v0.9.1
[INFO] [stderr]    Compiling vec_map v0.8.0
[INFO] [stderr]    Compiling unreachable v0.1.1
[INFO] [stderr]    Compiling kernel32-sys v0.2.2
[INFO] [stderr]    Compiling ansi_term v0.9.0
[INFO] [stderr]    Compiling bitflags v0.7.0
[INFO] [stderr]    Compiling num-traits v0.1.40
[INFO] [stderr]    Compiling strsim v0.6.0
[INFO] [stderr]    Compiling thread-id v2.0.0
[INFO] [stderr]    Compiling memchr v0.1.11
[INFO] [stderr]    Compiling term_size v0.3.0
[INFO] [stderr]    Compiling thread_local v0.2.7
[INFO] [stderr]    Compiling aho-corasick v0.5.3
[INFO] [stderr]    Compiling textwrap v0.8.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 clap v2.26.2
[INFO] [stderr]    Compiling nom v3.2.1
[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` profile [unoptimized + debuginfo] target(s) in 7.36s
[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" "a8f47329630cbec36a33def21af51b2950e27e68326522b99ecf27f0b244639b", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8f47329630cbec36a33def21af51b2950e27e68326522b99ecf27f0b244639b", kill_on_drop: false }`
[INFO] [stdout] a8f47329630cbec36a33def21af51b2950e27e68326522b99ecf27f0b244639b
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 27ab0cb96d3f586fd2d801d90b88d02ce1435813cfc9c8f666dff0deef94de14
[INFO] running `Command { std: "docker" "start" "-a" "27ab0cb96d3f586fd2d801d90b88d02ce1435813cfc9c8f666dff0deef94de14", 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` profile [unoptimized + debuginfo] target(s) in 3.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] running `Command { std: "docker" "inspect" "27ab0cb96d3f586fd2d801d90b88d02ce1435813cfc9c8f666dff0deef94de14", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "27ab0cb96d3f586fd2d801d90b88d02ce1435813cfc9c8f666dff0deef94de14", kill_on_drop: false }`
[INFO] [stdout] 27ab0cb96d3f586fd2d801d90b88d02ce1435813cfc9c8f666dff0deef94de14
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:59a85a07ab18ca8720692f8e61effa1c651d9e2ca591e072c2b212bb91a6b8b5" "/opt/rustwide/cargo-home/bin/cargo" "+1871252fc8bb672d40787e67404e6eaae7059369" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 0876284f74ef699a79345ce138085862deb698294d4fc849a04d65a7fdb157e0
[INFO] running `Command { std: "docker" "start" "-a" "0876284f74ef699a79345ce138085862deb698294d4fc849a04d65a7fdb157e0", 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 10 suggestions)
[INFO] [stderr] warning: `rcaml` (lib test) generated 141 warnings (129 duplicates) (run `cargo fix --lib -p rcaml --tests` to apply 10 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` profile [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-e553776374a50066)
[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 src/parser.rs:856:5:
[INFO] [stdout] assertion `left == right` failed
[INFO] [stdout]   left: "unit"
[INFO] [stdout]  right: "((('1 -> '1) -> '2) -> '2)"
[INFO] [stdout] stack backtrace:
[INFO] [stdout]    0:     0x5638257245d5 - std::backtrace_rs::backtrace::libunwind::trace::h59d96bdb08384354
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/libunwind.rs:105:5
[INFO] [stdout]    1:     0x5638257245d5 - std::backtrace_rs::backtrace::trace_unsynchronized::h9cf5becacfc93fba
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
[INFO] [stdout]    2:     0x5638257245d5 - std::sys_common::backtrace::_print_fmt::h10b76d10405dbd48
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:68:5
[INFO] [stdout]    3:     0x5638257245d5 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h6ed9e62a156d84e4
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:44:22
[INFO] [stdout]    4:     0x56382574c36b - core::fmt::rt::Argument::fmt::h645c680983f03c9f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/rt.rs:165:63
[INFO] [stdout]    5:     0x56382574c36b - core::fmt::write::h8bcd80919a02be29
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/fmt/mod.rs:1169:21
[INFO] [stdout]    6:     0x563825721e0f - std::io::Write::write_fmt::h8d0c47c662cad79c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/io/mod.rs:1835:15
[INFO] [stdout]    7:     0x5638257243ae - std::sys_common::backtrace::_print::h6306f131a28d62b0
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:47:5
[INFO] [stdout]    8:     0x5638257243ae - std::sys_common::backtrace::print::h7079288e0a26dfcc
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:34:9
[INFO] [stdout]    9:     0x563825725dd9 - std::panicking::default_hook::{{closure}}::hb063ecec81a736ba
[INFO] [stdout]   10:     0x563825725a9e - std::panicking::default_hook::hd56ee406bf547b5c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:295:9
[INFO] [stdout]   11:     0x5638256ddcaa - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::he5eacdef44c8728f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   12:     0x5638256ddcaa - test::test_main::{{closure}}::h0ec9aed229e79095
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:137:21
[INFO] [stdout]   13:     0x5638257263db - <alloc::boxed::Box<F,A> as core::ops::function::Fn<Args>>::call::hcbd0d80e1ad4e4f9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2036:9
[INFO] [stdout]   14:     0x5638257263db - std::panicking::rust_panic_with_hook::h624aa3ca42ebb8f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:799:13
[INFO] [stdout]   15:     0x563825726154 - std::panicking::begin_panic_handler::{{closure}}::hbc4e76194a5e287c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:664:13
[INFO] [stdout]   16:     0x563825724a99 - std::sys_common::backtrace::__rust_end_short_backtrace::h847fedc9d1ff7b6d
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:171:18
[INFO] [stdout]   17:     0x563825725e87 - rust_begin_unwind
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:652:5
[INFO] [stdout]   18:     0x563825614843 - core::panicking::panic_fmt::hec11a924b87ce965
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:72:14
[INFO] [stdout]   19:     0x563825614c2e - core::panicking::assert_failed_inner::h01c8f7f0c1caba58
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:408:17
[INFO] [stdout]   20:     0x5638256a9562 - core::panicking::assert_failed::h1ffb21ef4a51945f
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panicking.rs:363:5
[INFO] [stdout]   21:     0x56382567a9f7 - rcaml::parser::test_type_infer::hb82c6e594ee20f93
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser.rs:856:5
[INFO] [stdout]   22:     0x56382567a807 - rcaml::parser::test_type_infer::{{closure}}::h314dddc56c0f2d82
[INFO] [stdout]                                at /opt/rustwide/workdir/src/parser.rs:832:25
[INFO] [stdout]   23:     0x56382569bda6 - core::ops::function::FnOnce::call_once::hd7c98f3709398c28
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   24:     0x5638256e268b - core::ops::function::FnOnce::call_once::h2e43a8f6f3d94b99
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   25:     0x5638256e268b - test::__rust_begin_short_backtrace::h214c9f2d2d3fee90
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:625:18
[INFO] [stdout]   26:     0x5638256e1d91 - test::run_test_in_process::{{closure}}::h510b7ba7990692a5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:60
[INFO] [stdout]   27:     0x5638256e1d91 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::h4157186197a93871
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   28:     0x5638256e1d91 - std::panicking::try::do_call::h1bf2463bccd4b28c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   29:     0x5638256e1d91 - std::panicking::try::hd6d4808c9fab4fa5
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   30:     0x5638256e1d91 - std::panic::catch_unwind::hd5641d97d123f9f2
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   31:     0x5638256e1d91 - test::run_test_in_process::hc273b71c8b878a4c
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:648:27
[INFO] [stdout]   32:     0x5638256e1d91 - test::run_test::{{closure}}::h6838df834eb8467e
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:569:43
[INFO] [stdout]   33:     0x5638256aa754 - test::run_test::{{closure}}::h608b98ecff5665fb
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/test/src/lib.rs:599:41
[INFO] [stdout]   34:     0x5638256aa754 - std::sys_common::backtrace::__rust_begin_short_backtrace::hdc4182b97d1042e9
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys_common/backtrace.rs:155:18
[INFO] [stdout]   35:     0x5638256af182 - std::thread::Builder::spawn_unchecked_::{{closure}}::{{closure}}::h571773fd21d674c8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:542:17
[INFO] [stdout]   36:     0x5638256af182 - <core::panic::unwind_safe::AssertUnwindSafe<F> as core::ops::function::FnOnce<()>>::call_once::hdcd384cf2fa70ba3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/panic/unwind_safe.rs:272:9
[INFO] [stdout]   37:     0x5638256af182 - std::panicking::try::do_call::h4f1a44bd81423be1
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:559:40
[INFO] [stdout]   38:     0x5638256af182 - std::panicking::try::h5e02afcb81dcd361
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panicking.rs:523:19
[INFO] [stdout]   39:     0x5638256af182 - std::panic::catch_unwind::h022f75775bfd8c45
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/panic.rs:149:14
[INFO] [stdout]   40:     0x5638256af182 - std::thread::Builder::spawn_unchecked_::{{closure}}::hf5a62e9e4e6df1f8
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/thread/mod.rs:541:30
[INFO] [stdout]   41:     0x5638256af182 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h6d56360aeb9509a7
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/core/src/ops/function.rs:250:5
[INFO] [stdout]   42:     0x56382572a6db - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h7a343dc551c06baa
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   43:     0x56382572a6db - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h30b8111cbaa644f3
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/alloc/src/boxed.rs:2022:9
[INFO] [stdout]   44:     0x56382572a6db - std::sys::pal::unix::thread::Thread::new::thread_start::h7404e134e61e7a11
[INFO] [stdout]                                at /rustc/1871252fc8bb672d40787e67404e6eaae7059369/library/std/src/sys/pal/unix/thread.rs:108:17
[INFO] [stdout]   45:     0x7fb5c4c1aac3 - <unknown>
[INFO] [stdout]   46:     0x7fb5c4caba04 - __clone
[INFO] [stdout]   47:                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" "0876284f74ef699a79345ce138085862deb698294d4fc849a04d65a7fdb157e0", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0876284f74ef699a79345ce138085862deb698294d4fc849a04d65a7fdb157e0", kill_on_drop: false }`
[INFO] [stdout] 0876284f74ef699a79345ce138085862deb698294d4fc849a04d65a7fdb157e0
