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