fix(upgrade): errors from Rust 2024 edition
- 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)
This commit is contained in:
@ -1,7 +1,7 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "improvise"
|
name = "improvise"
|
||||||
version = "0.1.0-rc1"
|
version = "0.1.0-rc1"
|
||||||
edition = "2021"
|
edition = "2024"
|
||||||
description = "Terminal pivot-table modeling in the spirit of Lotus Improv"
|
description = "Terminal pivot-table modeling in the spirit of Lotus Improv"
|
||||||
license = "Apache-2.0"
|
license = "Apache-2.0"
|
||||||
repository = "https://github.com/fiddlerwoaroof/improvise"
|
repository = "https://github.com/fiddlerwoaroof/improvise"
|
||||||
|
|||||||
@ -140,7 +140,7 @@ impl ImportPipeline {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Create derived date-component categories
|
// Create derived date-component categories
|
||||||
for (_, _, _, ref derived_name) in &date_extractions {
|
for (_, _, _, derived_name) in &date_extractions {
|
||||||
model.add_category(derived_name)?;
|
model.add_category(derived_name)?;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -176,7 +176,7 @@ impl ImportPipeline {
|
|||||||
coords.push((cat_proposal.field.clone(), v.clone()));
|
coords.push((cat_proposal.field.clone(), v.clone()));
|
||||||
|
|
||||||
// Extract date components from this field's value
|
// 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 *field == cat_proposal.field {
|
||||||
if let Some(derived_val) = extract_date_component(&v, fmt, *comp) {
|
if let Some(derived_val) = extract_date_component(&v, fmt, *comp) {
|
||||||
if let Some(cat) = model.category_mut(derived_name) {
|
if let Some(cat) = model.category_mut(derived_name) {
|
||||||
|
|||||||
@ -371,7 +371,7 @@ fn run_headless_script(script_path: &PathBuf, file: &Option<PathBuf>) -> Result<
|
|||||||
// ── Helpers ──────────────────────────────────────────────────────────────────
|
// ── Helpers ──────────────────────────────────────────────────────────────────
|
||||||
|
|
||||||
fn get_initial_model(file_path: &Option<PathBuf>) -> Result<Model> {
|
fn get_initial_model(file_path: &Option<PathBuf>) -> Result<Model> {
|
||||||
if let Some(ref path) = file_path {
|
if let Some(path) = file_path {
|
||||||
if path.exists() {
|
if path.exists() {
|
||||||
let mut m = persistence::load(path)
|
let mut m = persistence::load(path)
|
||||||
.with_context(|| format!("Failed to load {}", path.display()))?;
|
.with_context(|| format!("Failed to load {}", path.display()))?;
|
||||||
|
|||||||
@ -2118,7 +2118,7 @@ mod parser_edge_cases {
|
|||||||
// files. The generator and parser share a single source of truth: the grammar.
|
// files. The generator and parser share a single source of truth: the grammar.
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod gen {
|
mod generator {
|
||||||
use pest_meta::ast::{Expr, RuleType};
|
use pest_meta::ast::{Expr, RuleType};
|
||||||
use pest_meta::parser;
|
use pest_meta::parser;
|
||||||
use proptest::prelude::*;
|
use proptest::prelude::*;
|
||||||
@ -2253,15 +2253,15 @@ mod gen {
|
|||||||
// Use random bytes as entropy for choices in the grammar walk
|
// Use random bytes as entropy for choices in the grammar walk
|
||||||
prop::collection::vec(any::<u8>(), 64..=256).prop_map(|choices| {
|
prop::collection::vec(any::<u8>(), 64..=256).prop_map(|choices| {
|
||||||
let rules = load_grammar();
|
let rules = load_grammar();
|
||||||
let mut gen = Gen::new(&rules, choices);
|
let mut g = Gen::new(&rules, choices);
|
||||||
gen.generate("file")
|
g.generate("file")
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod grammar_prop_tests {
|
mod grammar_prop_tests {
|
||||||
use super::{format_md, gen, parse_md};
|
use super::{format_md, generator, parse_md};
|
||||||
use proptest::prelude::*;
|
use proptest::prelude::*;
|
||||||
|
|
||||||
proptest! {
|
proptest! {
|
||||||
@ -2269,7 +2269,7 @@ mod grammar_prop_tests {
|
|||||||
|
|
||||||
/// parse(generate()) — every generated file parses without error.
|
/// parse(generate()) — every generated file parses without error.
|
||||||
#[test]
|
#[test]
|
||||||
fn generated_file_parses(file in gen::improv_file()) {
|
fn generated_file_parses(file in generator::improv_file()) {
|
||||||
let result = parse_md(&file);
|
let result = parse_md(&file);
|
||||||
prop_assert!(result.is_ok(),
|
prop_assert!(result.is_ok(),
|
||||||
"Generated file failed to parse:\n{}\nError: {}",
|
"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.
|
/// parse(print(parse(generate()))) — round-trip through format is stable.
|
||||||
#[test]
|
#[test]
|
||||||
fn generated_file_roundtrips(file in gen::improv_file()) {
|
fn generated_file_roundtrips(file in generator::improv_file()) {
|
||||||
let result1 = parse_md(&file);
|
let result1 = parse_md(&file);
|
||||||
// Skip inputs that don't parse (the grammar walk may produce
|
// Skip inputs that don't parse (the grammar walk may produce
|
||||||
// degenerate inputs like empty model names)
|
// degenerate inputs like empty model names)
|
||||||
|
|||||||
@ -121,7 +121,7 @@ impl View {
|
|||||||
pub fn categories_on(&self, axis: Axis) -> Vec<&str> {
|
pub fn categories_on(&self, axis: Axis) -> Vec<&str> {
|
||||||
self.category_axes
|
self.category_axes
|
||||||
.iter()
|
.iter()
|
||||||
.filter(|(_, &a)| a == axis)
|
.filter(|&(_, &a)| a == axis)
|
||||||
.map(|(n, _)| n.as_str())
|
.map(|(n, _)| n.as_str())
|
||||||
.collect()
|
.collect()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user