[INFO] fetching crate siffra 0.2.2...
[INFO] testing siffra-0.2.2 against beta-2025-10-28 for beta-1.92-2
[INFO] extracting crate siffra 0.2.2 into /workspace/builds/worker-0-tc2/source
[INFO] started tweaking crates.io crate siffra 0.2.2
[INFO] finished tweaking crates.io crate siffra 0.2.2
[INFO] tweaked toml for crates.io crate siffra 0.2.2 written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of crates.io crate siffra 0.2.2 on toolchain beta-2025-10-28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]      Locking 29 packages to latest compatible versions
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+beta-2025-10-28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 78c1e0f6d4ebd927149a3ba68b24d759e238827ad137c780353b54084c0e5bf8
[INFO] running `Command { std: "docker" "start" "-a" "78c1e0f6d4ebd927149a3ba68b24d759e238827ad137c780353b54084c0e5bf8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "78c1e0f6d4ebd927149a3ba68b24d759e238827ad137c780353b54084c0e5bf8", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "78c1e0f6d4ebd927149a3ba68b24d759e238827ad137c780353b54084c0e5bf8", kill_on_drop: false }`
[INFO] [stdout] 78c1e0f6d4ebd927149a3ba68b24d759e238827ad137c780353b54084c0e5bf8
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2025-10-28" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] c24b6b0fb26412b5c81219117a807a96db22103f9f0d40722eca1618b04af7d9
[INFO] running `Command { std: "docker" "start" "-a" "c24b6b0fb26412b5c81219117a807a96db22103f9f0d40722eca1618b04af7d9", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.103
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]    Compiling unicode-ident v1.0.22
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling memchr v2.7.6
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling syn v1.0.109
[INFO] [stderr]    Compiling ucd-trie v0.1.7
[INFO] [stderr]    Compiling json v0.12.4
[INFO] [stderr]    Compiling itertools v0.10.5
[INFO] [stderr]    Compiling periodic-table-on-an-enum v0.3.2
[INFO] [stderr]    Compiling pest v2.8.3
[INFO] [stderr]    Compiling astro-float-num v0.3.6
[INFO] [stderr]    Compiling pest_meta v2.8.3
[INFO] [stderr]    Compiling syn v2.0.108
[INFO] [stderr]    Compiling pest_generator v2.8.3
[INFO] [stderr]    Compiling pest_derive v2.8.3
[INFO] [stderr]    Compiling astro-float-macro v0.4.5
[INFO] [stderr]    Compiling astro-float v0.9.5
[INFO] [stderr]    Compiling siffra v0.2.2 (/opt/rustwide/workdir)
[INFO] [stdout] error: proc-macro derive panicked
[INFO] [stdout]   --> src/grammar/mod.rs:13:10
[INFO] [stdout]    |
[INFO] [stdout] 13 | #[derive(Parser)]
[INFO] [stdout]    |          ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = help: message: grammar error
[INFO] [stdout]            
[INFO] [stdout]              --> 93:64
[INFO] [stdout]               |
[INFO] [stdout]            93 |     ungrouped_function = ${#name = ident ~ " " ~ !convert_op ~ #input = atom}
[INFO] [stdout]               |                                                                ^-----------^
[INFO] [stdout]               |
[INFO] [stdout]               = tags on silent rules will not appear in the output
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `crate::grammar::Rule`
[INFO] [stdout]   --> src/evaluation/mod.rs:11:34
[INFO] [stdout]    |
[INFO] [stdout] 11 | use crate::grammar::{parse_line, Rule, SiffraParser, Span};
[INFO] [stdout]    |                                  ^^^^ no `Rule` in `grammar`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `Rule`
[INFO] [stdout]   --> src/grammar/mod.rs:20:13
[INFO] [stdout]    |
[INFO] [stdout] 20 |         use Rule::*;
[INFO] [stdout]    |             ^^^^ use of undeclared type `Rule`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no function or associated item named `parse` found for struct `SiffraParser` in the current scope
[INFO] [stdout]   --> src/evaluation/mod.rs:18:31
[INFO] [stdout]    |
[INFO] [stdout] 18 |     let pairs = SiffraParser::parse(Rule::line, line).map_err(|e| match e.location {
[INFO] [stdout]    |                               ^^^^^ function or associated item not found in `SiffraParser`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/grammar/mod.rs:15:1
[INFO] [stdout]    |
[INFO] [stdout] 15 | pub struct SiffraParser;
[INFO] [stdout]    | ----------------------- function or associated item `parse` not found for this struct
[INFO] [stdout]    |
[INFO] [stdout]    = help: items from traits can only be used if the trait is implemented and in scope
[INFO] [stdout]    = note: the following trait defines an item `parse`, perhaps you need to implement it:
[INFO] [stdout]            candidate #1: `Parser`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:115:20
[INFO] [stdout]     |
[INFO] [stdout] 115 |             .find(|pair| pair.as_rule() == Rule::unit_mul_group)
[INFO] [stdout]     |                    ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 115 |             .find(|pair: /* Type */| pair.as_rule() == Rule::unit_mul_group)
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:118:48
[INFO] [stdout]     |
[INFO] [stdout] 118 |         } else if let Some(unit) = pairs.find(|pair| pair.as_rule() == Rule::ungrouped_unit_atom) {
[INFO] [stdout]     |                                                ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 118 |         } else if let Some(unit) = pairs.find(|pair: /* Type */| pair.as_rule() == Rule::ungrouped_unit_atom) {
[INFO] [stdout]     |                                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:119:16
[INFO] [stdout]     |
[INFO] [stdout] 119 |             if unit
[INFO] [stdout]     |                ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grammar/mod.rs:49:41
[INFO] [stdout]    |
[INFO] [stdout] 49 |             pair.into_inner().for_each(|pair| {
[INFO] [stdout]    |                                         ^^^^
[INFO] [stdout] 50 |                 let unit = pair.clone().into_inner().find_first_tagged("unit").unwrap();
[INFO] [stdout]    |                            ---- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 49 |             pair.into_inner().for_each(|pair: /* Type */| {
[INFO] [stdout]    |                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]   --> src/grammar/mod.rs:55:33
[INFO] [stdout]    |
[INFO] [stdout] 55 |                     .map_or(1, |pair| pair.as_str().parse().unwrap());
[INFO] [stdout]    |                                 ^^^^  ---- type must be known at this point
[INFO] [stdout]    |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]    |
[INFO] [stdout] 55 |                     .map_or(1, |pair: /* Type */| pair.as_str().parse().unwrap());
[INFO] [stdout]    |                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0599]: no method named `map_primary` found for struct `PRATT_PARSER` in the current scope
[INFO] [stdout]    --> src/grammar/mod.rs:170:10
[INFO] [stdout]     |
[INFO] [stdout]  17 | / lazy_static::lazy_static! {
[INFO] [stdout]  18 | |     static ref PRATT_PARSER: PrattParser<Rule> = {
[INFO] [stdout]  19 | |         use pest::pratt_parser::{Assoc::*, Op};
[INFO] [stdout]  20 | |         use Rule::*;
[INFO] [stdout] ...   |
[INFO] [stdout]  33 | |     };
[INFO] [stdout]  34 | | }
[INFO] [stdout]     | |_- method `map_primary` not found for this struct
[INFO] [stdout] ...
[INFO] [stdout] 169 | /     PRATT_PARSER
[INFO] [stdout] 170 | |         .map_primary(|primary| match primary.as_rule() {
[INFO] [stdout]     | |         -^^^^^^^^^^^ method not found in `PRATT_PARSER`
[INFO] [stdout]     | |_________|
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:170:23
[INFO] [stdout]     |
[INFO] [stdout] 170 |         .map_primary(|primary| match primary.as_rule() {
[INFO] [stdout]     |                       ^^^^^^^        ------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 170 |         .map_primary(|primary: /* Type */| match primary.as_rule() {
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:181:28
[INFO] [stdout]     |
[INFO] [stdout] 181 |                     .find(|pair| pair.as_rule() == Rule::number)
[INFO] [stdout]     |                            ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 181 |                     .find(|pair: /* Type */| pair.as_rule() == Rule::number)
[INFO] [stdout]     |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:189:28
[INFO] [stdout]     |
[INFO] [stdout] 189 |                     .find(|pair| pair.as_rule() == Rule::units_expr)
[INFO] [stdout]     |                            ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 189 |                     .find(|pair: /* Type */| pair.as_rule() == Rule::units_expr)
[INFO] [stdout]     |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:223:28
[INFO] [stdout]     |
[INFO] [stdout] 223 |                     .find(|pair| pair.as_rule() == Rule::function_input)
[INFO] [stdout]     |                            ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 223 |                     .find(|pair: /* Type */| pair.as_rule() == Rule::function_input)
[INFO] [stdout]     |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:258:26
[INFO] [stdout]     |
[INFO] [stdout] 258 |         .map_infix(|lhs, op_pairs, rhs| {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 259 |             let op = match op_pairs.as_rule() {
[INFO] [stdout]     |                            -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 258 |         .map_infix(|lhs, op_pairs: /* Type */, rhs| {
[INFO] [stdout]     |                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:274:28
[INFO] [stdout]     |
[INFO] [stdout] 274 |         .map_postfix(|lhs, op_pairs| {
[INFO] [stdout]     |                            ^^^^^^^^
[INFO] [stdout] 275 |             let op_span = op_pairs.as_span();
[INFO] [stdout]     |                           -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 274 |         .map_postfix(|lhs, op_pairs: /* Type */| {
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:282:32
[INFO] [stdout]     |
[INFO] [stdout] 282 |                         .find(|pair| pair.as_rule() == Rule::units_expr)
[INFO] [stdout]     |                                ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 282 |                         .find(|pair: /* Type */| pair.as_rule() == Rule::units_expr)
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:293:22
[INFO] [stdout]     |
[INFO] [stdout] 293 |         .map_prefix(|op_pairs, rhs| {
[INFO] [stdout]     |                      ^^^^^^^^
[INFO] [stdout] 294 |             let op = match op_pairs.as_rule() {
[INFO] [stdout]     |                            -------- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 293 |         .map_prefix(|op_pairs: /* Type */, rhs| {
[INFO] [stdout]     |                              ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:310:16
[INFO] [stdout]     |
[INFO] [stdout] 310 |         .find(|pair| pair.as_rule() == Rule::variable_constraint)
[INFO] [stdout]     |                ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 310 |         .find(|pair: /* Type */| pair.as_rule() == Rule::variable_constraint)
[INFO] [stdout]     |                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:312:25
[INFO] [stdout]     |
[INFO] [stdout] 312 |         let mut inner = pair.into_inner();
[INFO] [stdout]     |                         ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:314:20
[INFO] [stdout]     |
[INFO] [stdout] 314 |             .find(|pair| pair.as_rule() == Rule::variable)
[INFO] [stdout]     |                    ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 314 |             .find(|pair: /* Type */| pair.as_rule() == Rule::variable)
[INFO] [stdout]     |                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:319:24
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 .find(|pair| pair.as_rule() == Rule::expr)
[INFO] [stdout]     |                        ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 319 |                 .find(|pair: /* Type */| pair.as_rule() == Rule::expr)
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:326:37
[INFO] [stdout]     |
[INFO] [stdout] 326 |     if let Some(pair) = pairs.find(|pair| pair.as_rule() == Rule::expr) {
[INFO] [stdout]     |                                     ^^^^  ---- type must be known at this point
[INFO] [stdout]     |
[INFO] [stdout] help: consider giving this closure parameter an explicit type
[INFO] [stdout]     |
[INFO] [stdout] 326 |     if let Some(pair) = pairs.find(|pair: /* Type */| pair.as_rule() == Rule::expr) {
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0282]: type annotations needed
[INFO] [stdout]    --> src/grammar/mod.rs:327:31
[INFO] [stdout]     |
[INFO] [stdout] 327 |         let expr = parse_expr(pair.into_inner());
[INFO] [stdout]     |                               ^^^^ cannot infer type
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0282, E0432, E0599.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0282`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `siffra` (lib) due to 24 previous errors
[INFO] running `Command { std: "docker" "inspect" "c24b6b0fb26412b5c81219117a807a96db22103f9f0d40722eca1618b04af7d9", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c24b6b0fb26412b5c81219117a807a96db22103f9f0d40722eca1618b04af7d9", kill_on_drop: false }`
[INFO] [stdout] c24b6b0fb26412b5c81219117a807a96db22103f9f0d40722eca1618b04af7d9
