From d4f6efd1c0b59dc3747bed2fe9836a5464f587da Mon Sep 17 00:00:00 2001 From: Edward Langley Date: Sat, 11 Apr 2026 00:38:30 -0700 Subject: [PATCH] fix(upgrade): errors from Rust 2024 edition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - gen is a reserved keyword (→ renamed module to generator) - ref in patterns with implicit borrowing (→ removed ref) - & pattern with implicit borrowing (→ added & to outer pattern) --- Cargo.toml | 2 +- src/import/wizard.rs | 4 ++-- src/main.rs | 2 +- src/persistence/mod.rs | 12 ++++++------ src/view/types.rs | 2 +- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 7662d14..9c25042 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "improvise" version = "0.1.0-rc1" -edition = "2021" +edition = "2024" description = "Terminal pivot-table modeling in the spirit of Lotus Improv" license = "Apache-2.0" repository = "https://github.com/fiddlerwoaroof/improvise" diff --git a/src/import/wizard.rs b/src/import/wizard.rs index 388041c..73b2dee 100644 --- a/src/import/wizard.rs +++ b/src/import/wizard.rs @@ -140,7 +140,7 @@ impl ImportPipeline { } // Create derived date-component categories - for (_, _, _, ref derived_name) in &date_extractions { + for (_, _, _, derived_name) in &date_extractions { model.add_category(derived_name)?; } @@ -176,7 +176,7 @@ impl ImportPipeline { coords.push((cat_proposal.field.clone(), v.clone())); // Extract date components from this field's value - for (field, fmt, comp, ref derived_name) in &date_extractions { + for (field, fmt, comp, derived_name) in &date_extractions { if *field == cat_proposal.field { if let Some(derived_val) = extract_date_component(&v, fmt, *comp) { if let Some(cat) = model.category_mut(derived_name) { diff --git a/src/main.rs b/src/main.rs index 50d4ec0..54a98c6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -371,7 +371,7 @@ fn run_headless_script(script_path: &PathBuf, file: &Option) -> Result< // ── Helpers ────────────────────────────────────────────────────────────────── fn get_initial_model(file_path: &Option) -> Result { - if let Some(ref path) = file_path { + if let Some(path) = file_path { if path.exists() { let mut m = persistence::load(path) .with_context(|| format!("Failed to load {}", path.display()))?; diff --git a/src/persistence/mod.rs b/src/persistence/mod.rs index c590703..d12c8ea 100644 --- a/src/persistence/mod.rs +++ b/src/persistence/mod.rs @@ -2118,7 +2118,7 @@ mod parser_edge_cases { // files. The generator and parser share a single source of truth: the grammar. #[cfg(test)] -mod gen { +mod generator { use pest_meta::ast::{Expr, RuleType}; use pest_meta::parser; use proptest::prelude::*; @@ -2253,15 +2253,15 @@ mod gen { // Use random bytes as entropy for choices in the grammar walk prop::collection::vec(any::(), 64..=256).prop_map(|choices| { let rules = load_grammar(); - let mut gen = Gen::new(&rules, choices); - gen.generate("file") + let mut g = Gen::new(&rules, choices); + g.generate("file") }) } } #[cfg(test)] mod grammar_prop_tests { - use super::{format_md, gen, parse_md}; + use super::{format_md, generator, parse_md}; use proptest::prelude::*; proptest! { @@ -2269,7 +2269,7 @@ mod grammar_prop_tests { /// parse(generate()) — every generated file parses without error. #[test] - fn generated_file_parses(file in gen::improv_file()) { + fn generated_file_parses(file in generator::improv_file()) { let result = parse_md(&file); prop_assert!(result.is_ok(), "Generated file failed to parse:\n{}\nError: {}", @@ -2278,7 +2278,7 @@ mod grammar_prop_tests { /// parse(print(parse(generate()))) — round-trip through format is stable. #[test] - fn generated_file_roundtrips(file in gen::improv_file()) { + fn generated_file_roundtrips(file in generator::improv_file()) { let result1 = parse_md(&file); // Skip inputs that don't parse (the grammar walk may produce // degenerate inputs like empty model names) diff --git a/src/view/types.rs b/src/view/types.rs index 095b4f0..4021ffe 100644 --- a/src/view/types.rs +++ b/src/view/types.rs @@ -121,7 +121,7 @@ impl View { pub fn categories_on(&self, axis: Axis) -> Vec<&str> { self.category_axes .iter() - .filter(|(_, &a)| a == axis) + .filter(|&(_, &a)| a == axis) .map(|(n, _)| n.as_str()) .collect() }