[INFO] fetching crate pomelo 0.1.4...
[INFO] checking pomelo-0.1.4 against beta-2020-07-24 for pr-75494-beta
[INFO] extracting crate pomelo 0.1.4 into /workspace/builds/worker-7/source
[INFO] validating manifest of crates.io crate pomelo 0.1.4 on toolchain beta-2020-07-24
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "read-manifest" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] started tweaking crates.io crate pomelo 0.1.4
[INFO] finished tweaking crates.io crate pomelo 0.1.4
[INFO] tweaked toml for crates.io crate pomelo 0.1.4 written to /workspace/builds/worker-7/source/Cargo.toml
[INFO] crate crates.io crate pomelo 0.1.4 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: "/workspace/cargo-home/bin/cargo" "+beta-2020-07-24" "fetch" "--locked" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] 2c1334639cf0c621219ddf5e06d359acbb9ab417a623ec19f802e1cb20847abe
[INFO] running `Command { std: "docker" "start" "-a" "2c1334639cf0c621219ddf5e06d359acbb9ab417a623ec19f802e1cb20847abe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "2c1334639cf0c621219ddf5e06d359acbb9ab417a623ec19f802e1cb20847abe", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "2c1334639cf0c621219ddf5e06d359acbb9ab417a623ec19f802e1cb20847abe", kill_on_drop: false }`
[INFO] [stdout] 2c1334639cf0c621219ddf5e06d359acbb9ab417a623ec19f802e1cb20847abe
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7/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" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "rustops/crates-build-env@sha256:a636fd89d022f18117e1dc8fb37a0a009933cdbbe082814857f0e2024962d47c" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-07-24" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap.
[INFO] [stdout] d33351853187283fa0ea05d9e73dec0462462b9f2d9bc9cd2aa98716c5d720cd
[INFO] running `Command { std: "docker" "start" "-a" "d33351853187283fa0ea05d9e73dec0462462b9f2d9bc9cd2aa98716c5d720cd", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.9
[INFO] [stderr]    Compiling unicode-xid v0.2.0
[INFO] [stderr]    Compiling syn v1.0.16
[INFO] [stderr]    Compiling memchr v2.3.3
[INFO] [stderr]    Compiling ryu v1.0.3
[INFO] [stderr]    Compiling serde v1.0.104
[INFO] [stderr]    Compiling anyhow v1.0.27
[INFO] [stderr]     Checking regex-syntax v0.6.17
[INFO] [stderr]    Compiling compiletest_rs v0.4.1
[INFO] [stderr]     Checking thread_local v1.0.1
[INFO] [stderr]     Checking getopts v0.2.21
[INFO] [stderr]     Checking log v0.4.8
[INFO] [stderr]     Checking dirs-sys v0.3.4
[INFO] [stderr]     Checking filetime v0.2.8
[INFO] [stderr]     Checking dirs v2.0.2
[INFO] [stderr]     Checking term v0.6.1
[INFO] [stderr]     Checking tester v0.7.0
[INFO] [stderr]     Checking aho-corasick v0.7.10
[INFO] [stderr]    Compiling quote v1.0.3
[INFO] [stderr]     Checking pm-lexer v0.1.4
[INFO] [stderr]     Checking regex v1.3.5
[INFO] [stderr]    Compiling serde_derive v1.0.104
[INFO] [stderr]    Compiling pomelo-impl v0.1.4
[INFO] [stderr]     Checking pomelo v0.1.4 (/opt/rustwide/workdir)
[INFO] [stderr]     Checking serde_json v1.0.48
[INFO] [stderr]     Checking rustfix v0.5.0
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:83:26
[INFO] [stdout]    |
[INFO] [stdout] 83 |     start ::= jobject(J) { J }
[INFO] [stdout]    |                          ^^^^^ help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:85:26
[INFO] [stdout]    |
[INFO] [stdout] 85 |     jobject ::= jdict(D) { D }
[INFO] [stdout]    |                          ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:86:27
[INFO] [stdout]    |
[INFO] [stdout] 86 |     jobject ::= jarray(A) { A }
[INFO] [stdout]    |                           ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:87:28
[INFO] [stdout]    |
[INFO] [stdout] 87 |     jobject ::= JNumber(N) { JObject::JNumber(N) }
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:88:28
[INFO] [stdout]    |
[INFO] [stdout] 88 |     jobject ::= JString(S) { JObject::JString(S) }
[INFO] [stdout]    |                            ^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:89:26
[INFO] [stdout]    |
[INFO] [stdout] 89 |     jobject ::= JBool(B) { JObject::JBool(B) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:90:23
[INFO] [stdout]    |
[INFO] [stdout] 90 |     jobject ::= JNull { JObject::JNull }
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:92:44
[INFO] [stdout]    |
[INFO] [stdout] 92 |     jdict ::= LBrace jitem_list?(D) RBrace { JObject::JDict(D.unwrap_or_else(HashMap::new)) }
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:94:51
[INFO] [stdout]    |
[INFO] [stdout] 94 |     jarray ::= LBracket jobject_list?(A) RBracket { JObject::JArray(A.unwrap_or_else(Vec::new)) }
[INFO] [stdout]    |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/json.rs:96:33
[INFO] [stdout]    |
[INFO] [stdout] 96 |     jobject_list ::= jobject(J) { vec![J] }
[INFO] [stdout]    |                                 ^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]    --> examples/json.rs:101:43
[INFO] [stdout]     |
[INFO] [stdout] 101 |     jitem ::= JString(K) Colon jobject(V) { (K, V) }
[INFO] [stdout]     |                                           ^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:40:73
[INFO] [stdout]    |
[INFO] [stdout] 40 |     f_decl ::= Fn Ident(name) LParen arg_list?(args) RParen block(code) { Function::new(name, args.unwrap_or_else(Vec::new), code) }
[INFO] [stdout]    |                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:42:27
[INFO] [stdout]    |
[INFO] [stdout] 42 |     arg_list ::= Ident(n) { vec![n] }
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:45:44
[INFO] [stdout]    |
[INFO] [stdout] 45 |     block ::= LBrace stmt_list?(ss) RBrace { ss.unwrap_or(Vec::new()) }
[INFO] [stdout]    |                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:47:59
[INFO] [stdout]    |
[INFO] [stdout] 47 |     v_decl ::= Var Ident(name) Assign expr(ini) Semicolon { Variable::new(name, ini) }
[INFO] [stdout]    |                                                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:49:27
[INFO] [stdout]    |
[INFO] [stdout] 49 |     stmt_list ::= stmt(s) { vec![s] }
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:52:24
[INFO] [stdout]    |
[INFO] [stdout] 52 |     stmt ::= block(ss) { Stmt::Block(ss) }
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:53:32
[INFO] [stdout]    |
[INFO] [stdout] 53 |     stmt ::= expr(e) Semicolon {Stmt::Expr(e) }
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:54:55
[INFO] [stdout]    |
[INFO] [stdout] 54 |     stmt ::= If LParen expr(e) RParen stmt(s1) [Else] { Stmt::If(e, Box::new((s1, None))) }
[INFO] [stdout]    |                                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:55:62
[INFO] [stdout]    |
[INFO] [stdout] 55 |     stmt ::= If LParen expr(e) RParen stmt(s1) Else stmt(s2) {Stmt::If(e, Box::new((s1, Some(s2))))  }
[INFO] [stdout]    |                                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:56:50
[INFO] [stdout]    |
[INFO] [stdout] 56 |     stmt ::= While LParen expr(e) RParen stmt(s) { Stmt::While(e, Box::new(s)) }
[INFO] [stdout]    |                                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:57:39
[INFO] [stdout]    |
[INFO] [stdout] 57 |     stmt ::= Return expr(e) Semicolon { Stmt::Return(Some(e)) }
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:58:31
[INFO] [stdout]    |
[INFO] [stdout] 58 |     stmt ::= Return Semicolon { Stmt::Return(None) }
[INFO] [stdout]    |                               ^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:59:30
[INFO] [stdout]    |
[INFO] [stdout] 59 |     stmt ::= Break Semicolon { Stmt::Break }
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:60:33
[INFO] [stdout]    |
[INFO] [stdout] 60 |     stmt ::= Continue Semicolon {Stmt::Continue }
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:62:24
[INFO] [stdout]    |
[INFO] [stdout] 62 |     expr ::= Number(n) { Expr::Number(n) }
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:63:24
[INFO] [stdout]    |
[INFO] [stdout] 63 |     expr ::= String(s) { Expr::String(s) }
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:64:23
[INFO] [stdout]    |
[INFO] [stdout] 64 |     expr ::= Ident(n) { Expr::Variable(n) }
[INFO] [stdout]    |                       ^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:65:52
[INFO] [stdout]    |
[INFO] [stdout] 65 |     expr ::= Ident(n) LParen expr_list?(es) RParen { Expr::Call(n, es.unwrap_or(Vec::new())) }
[INFO] [stdout]    |                                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:66:36
[INFO] [stdout]    |
[INFO] [stdout] 66 |     expr ::= LParen expr(e) RParen { e }
[INFO] [stdout]    |                                    ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:68:35
[INFO] [stdout]    |
[INFO] [stdout] 68 |     expr ::= expr(a) Plus expr(b) { Expr::BinaryOp(BinOp::Plus, Box::new((a, b))) }
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:69:36
[INFO] [stdout]    |
[INFO] [stdout] 69 |     expr ::= expr(a) Minus expr(b) { Expr::BinaryOp(BinOp::Minus, Box::new((a, b))) }
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:70:35
[INFO] [stdout]    |
[INFO] [stdout] 70 |     expr ::= expr(a) Mult expr(b) { Expr::BinaryOp(BinOp::Mult, Box::new((a, b))) }
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:71:34
[INFO] [stdout]    |
[INFO] [stdout] 71 |     expr ::= expr(a) Div expr(b) { Expr::BinaryOp(BinOp::Div, Box::new((a, b))) }
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:72:34
[INFO] [stdout]    |
[INFO] [stdout] 72 |     expr ::= Minus expr(a) [Not] { Expr::UnaryOp(UnaOp::Neg, Box::new(a)) }
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:74:36
[INFO] [stdout]    |
[INFO] [stdout] 74 |     expr ::= expr(a) Equal expr(b) { Expr::BinaryOp(BinOp::Equal, Box::new((a, b))) }
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:75:39
[INFO] [stdout]    |
[INFO] [stdout] 75 |     expr ::= expr(a) NotEqual expr(b) { Expr::BinaryOp(BinOp::NotEqual, Box::new((a, b))) }
[INFO] [stdout]    |                                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:77:34
[INFO] [stdout]    |
[INFO] [stdout] 77 |     expr ::= expr(a) And expr(b) { Expr::BinaryOp(BinOp::And, Box::new((a, b))) }
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:78:33
[INFO] [stdout]    |
[INFO] [stdout] 78 |     expr ::= expr(a) Or expr(b) { Expr::BinaryOp(BinOp::Or, Box::new((a, b))) }
[INFO] [stdout]    |                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:79:26
[INFO] [stdout]    |
[INFO] [stdout] 79 |     expr ::= Not expr(a) { Expr::UnaryOp(UnaOp::Not, Box::new(a)) }
[INFO] [stdout]    |                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:81:35
[INFO] [stdout]    |
[INFO] [stdout] 81 |     expr ::= expr(a) Less expr(b) { Expr::BinaryOp(BinOp::Less, Box::new((a, b))) }
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:82:38
[INFO] [stdout]    |
[INFO] [stdout] 82 |     expr ::= expr(a) Greater expr(b) { Expr::BinaryOp(BinOp::Greater, Box::new((a, b))) }
[INFO] [stdout]    |                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:83:37
[INFO] [stdout]    |
[INFO] [stdout] 83 |     expr ::= expr(a) LessEq expr(b) { Expr::BinaryOp(BinOp::LessEq, Box::new((a, b))) }
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:84:40
[INFO] [stdout]    |
[INFO] [stdout] 84 |     expr ::= expr(a) GreaterEq expr(b) { Expr::BinaryOp(BinOp::GreaterEq, Box::new((a, b))) }
[INFO] [stdout]    |                                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:86:37
[INFO] [stdout]    |
[INFO] [stdout] 86 |     expr ::= expr(a) Assign expr(b) { Expr::BinaryOp(BinOp::Assign, Box::new((a, b))) }
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> examples/interpreter/parser.rs:88:27
[INFO] [stdout]    |
[INFO] [stdout] 88 |     expr_list ::= expr(e) { vec![e] }
[INFO] [stdout]    |                           ^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 11 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:65:23
[INFO] [stdout]    |
[INFO] [stdout] 65 |     input ::= tree(A) { A }
[INFO] [stdout]    |                       ^^^^^ help: remove these braces
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_braces)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:67:25
[INFO] [stdout]    |
[INFO] [stdout] 67 |     tree ::= Integer(I) { TestTree::Integer(I) }
[INFO] [stdout]    |                         ^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:68:36
[INFO] [stdout]    |
[INFO] [stdout] 68 |     tree ::= LParen tree(A) RParen { A }
[INFO] [stdout]    |                                    ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:69:35
[INFO] [stdout]    |
[INFO] [stdout] 69 |     tree ::= tree(A) Plus tree(B) { TestTree::Binary('+', Box::new(A), Box::new(B)) }
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:70:36
[INFO] [stdout]    |
[INFO] [stdout] 70 |     tree ::= tree(A) Minus tree(B) { TestTree::Binary('-', Box::new(A), Box::new(B)) }
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:71:35
[INFO] [stdout]    |
[INFO] [stdout] 71 |     tree ::= tree(A) Mult tree(B) { TestTree::Binary('*', Box::new(A), Box::new(B)) }
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:72:34
[INFO] [stdout]    |
[INFO] [stdout] 72 |     tree ::= tree(A) Pow tree(B) { TestTree::Binary('^', Box::new(A), Box::new(B)) }
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:73:36
[INFO] [stdout]    |
[INFO] [stdout] 73 |     tree ::= Minus tree(A) [Unary] { TestTree::Unary('<', Box::new(A)) }
[INFO] [stdout]    |                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/tree.rs:74:35
[INFO] [stdout]    |
[INFO] [stdout] 74 |     tree ::= Plus tree(A) [Unary] { TestTree::Unary('>', Box::new(A)) }
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/token.rs:17:27
[INFO] [stdout]    |
[INFO] [stdout] 17 |     input ::= Terminal(T) { T }
[INFO] [stdout]    |                           ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/token_class.rs:11:23
[INFO] [stdout]    |
[INFO] [stdout] 11 |     input ::= list(L) { L }
[INFO] [stdout]    |                       ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/token_class.rs:12:14
[INFO] [stdout]    |
[INFO] [stdout] 12 |     list ::= { Vec::new() }
[INFO] [stdout]    |              ^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/token_class.rs:16:29
[INFO] [stdout]    |
[INFO] [stdout] 16 |     list ::= list(L) Letter { L }
[INFO] [stdout]    |                             ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]  --> tests/pass/token_alt.rs:8:23
[INFO] [stdout]   |
[INFO] [stdout] 8 |     input ::= list(L) { L }
[INFO] [stdout]   |                       ^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]  --> tests/pass/token_alt.rs:9:14
[INFO] [stdout]   |
[INFO] [stdout] 9 |     list ::= { Vec::new() }
[INFO] [stdout]   |              ^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]  --> tests/pass/optional.rs:7:51
[INFO] [stdout]   |
[INFO] [stdout] 7 |     input ::= One Two?(X) Three Two?(Y) Four end? { X.unwrap_or(1) + Y.unwrap_or(1) }
[INFO] [stdout]   |                                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary braces around block return value
[INFO] [stdout]   --> tests/pass/extra_token.rs:17:23
[INFO] [stdout]    |
[INFO] [stdout] 17 |     lines ::= line(L) { vec![L] }
[INFO] [stdout]    |                       ^^^^^^^^^^^ help: remove these braces
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 35 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 17 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished dev [unoptimized + debuginfo] target(s) in 51.74s
[INFO] running `Command { std: "docker" "inspect" "d33351853187283fa0ea05d9e73dec0462462b9f2d9bc9cd2aa98716c5d720cd", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "d33351853187283fa0ea05d9e73dec0462462b9f2d9bc9cd2aa98716c5d720cd", kill_on_drop: false }`
[INFO] [stdout] d33351853187283fa0ea05d9e73dec0462462b9f2d9bc9cd2aa98716c5d720cd
