Skip to content

Commit 9190c8a

Browse files
committed
Merge remote-tracking branch 'origin/main' into acl/linking_prelims
2 parents 66a2b13 + 5108297 commit 9190c8a

File tree

220 files changed

+5465
-2695
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

220 files changed

+5465
-2695
lines changed

.git-blame-ignore-revs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Commits to ignore in blame output
2+
#
3+
# To configure git to use this file, run:
4+
# > git config blame.ignoreRevsFile .git-blame-ignore-revs
5+
6+
# Bump to rust edition 2024, and a bunch of automated lint fixes
7+
# https://github.com/CQCL/hugr/pull/2195
8+
16903a65294aede245a4c8bb2a07a4692a619769

.github/workflows/ci-rs.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ env:
1919
CI: true # insta snapshots behave differently on ci
2020
SCCACHE_GHA_ENABLED: "true"
2121
RUSTC_WRAPPER: "sccache"
22-
HUGR_TEST_SCHEMA: "1"
2322
# different strings for install action and feature name
2423
# adapted from https://github.com/TheDan64/inkwell/blob/master/.github/workflows/test.yml
2524
LLVM_VERSION: "14.0"

Cargo.toml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ default-members = ["hugr", "hugr-core", "hugr-passes", "hugr-cli", "hugr-model"]
1616

1717
[workspace.package]
1818
rust-version = "1.85"
19-
edition = "2021"
19+
edition = "2024"
2020
homepage = "https://github.com/CQCL/hugr"
2121
repository = "https://github.com/CQCL/hugr"
2222
license = "Apache-2.0"
@@ -31,11 +31,16 @@ unexpected_cfgs = { level = "warn", check-cfg = [
3131
] }
3232

3333
missing_docs = "warn"
34+
3435
[workspace.lints.clippy]
3536
# Unstable check, may cause false positives.
3637
# https://github.com/rust-lang/rust-clippy/issues/5112
3738
debug_assert_with_mut_call = "warn"
3839

40+
# TODO: Reduce the size of error types.
41+
result_large_err = "allow"
42+
large_enum_variant = "allow"
43+
3944
[workspace.dependencies]
4045
insta = { version = "1.42.2" }
4146
bitvec = "1.0.1"

hugr-cli/src/extensions.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ impl ExtArgs {
2828
pub fn run_dump(&self, registry: &ExtensionRegistry) {
2929
let base_dir = &self.outdir;
3030

31-
for ext in registry.iter() {
31+
for ext in registry {
3232
let mut path = base_dir.clone();
3333
for part in ext.name().split('.') {
3434
path.push(part);

hugr-cli/src/hugr_io.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
//! Input/output arguments for the HUGR CLI.
22
33
use clio::Input;
4-
use hugr::envelope::{read_envelope, EnvelopeError};
4+
use hugr::envelope::{EnvelopeError, read_envelope};
55
use hugr::extension::ExtensionRegistry;
66
use hugr::package::Package;
77
use hugr::{Extension, Hugr};
@@ -43,7 +43,7 @@ impl HugrInputArgs {
4343
/// Read a hugr envelope from the input and return the package encoded
4444
/// within.
4545
///
46-
/// If [HugrInputArgs::hugr_json] is `true`, [HugrInputArgs::get_hugr] should be called instead as
46+
/// If [`HugrInputArgs::hugr_json`] is `true`, [`HugrInputArgs::get_hugr`] should be called instead as
4747
/// reading the input as a package will fail.
4848
pub fn get_package(&mut self) -> Result<Package, CliError> {
4949
let extensions = self.load_extensions()?;
@@ -58,9 +58,9 @@ impl HugrInputArgs {
5858
/// Read a hugr JSON file from the input.
5959
///
6060
/// This is a legacy option for reading old HUGR JSON files when the
61-
/// [HugrInputArgs::hugr_json] flag is used.
61+
/// [`HugrInputArgs::hugr_json`] flag is used.
6262
///
63-
/// For most cases, [HugrInputArgs::get_package] should be called instead.
63+
/// For most cases, [`HugrInputArgs::get_package`] should be called instead.
6464
pub fn get_hugr(&mut self) -> Result<Hugr, CliError> {
6565
let extensions = self.load_extensions()?;
6666
let mut buffer = BufReader::new(&mut self.input);
@@ -79,8 +79,8 @@ impl HugrInputArgs {
7979

8080
/// Return a register with the selected extensions.
8181
///
82-
/// This includes the standard extensions if [HugrInputArgs::no_std] is `false`,
83-
/// and the extensions loaded from the paths in [HugrInputArgs::extensions].
82+
/// This includes the standard extensions if [`HugrInputArgs::no_std`] is `false`,
83+
/// and the extensions loaded from the paths in [`HugrInputArgs::extensions`].
8484
pub fn load_extensions(&self) -> Result<ExtensionRegistry, CliError> {
8585
let mut reg = if self.no_std {
8686
hugr::extension::PRELUDE_REGISTRY.to_owned()

hugr-cli/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@
5656
//! [INPUT] Input file. Defaults to `-` for stdin.
5757
//! ```
5858
59-
use clap::{crate_version, Parser};
59+
use clap::{Parser, crate_version};
6060
use clap_verbosity_flag::log::Level;
6161
use clap_verbosity_flag::{InfoLevel, Verbosity};
6262
use hugr::envelope::EnvelopeError;
@@ -119,6 +119,7 @@ pub struct OtherArgs {
119119

120120
impl OtherArgs {
121121
/// Test whether a `level` message should be output.
122+
#[must_use]
122123
pub fn verbosity(&self, level: Level) -> bool {
123124
self.verbose.log_level_filter() >= level
124125
}

hugr-cli/src/main.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
use clap::Parser as _;
44

5-
use hugr_cli::{mermaid, validate, CliArgs};
5+
use hugr_cli::{CliArgs, mermaid, validate};
66

77
use clap_verbosity_flag::log::Level;
88

@@ -22,7 +22,7 @@ fn main() {
2222
eprintln!("Unknown command");
2323
std::process::exit(1);
2424
}
25-
};
25+
}
2626
}
2727

2828
/// Run the `validate` subcommand.
@@ -31,7 +31,7 @@ fn run_validate(mut args: validate::ValArgs) {
3131

3232
if let Err(e) = result {
3333
if args.verbosity(Level::Error) {
34-
eprintln!("{}", e);
34+
eprintln!("{e}");
3535
}
3636
std::process::exit(1);
3737
}
@@ -43,7 +43,7 @@ fn run_mermaid(mut args: mermaid::MermaidArgs) {
4343

4444
if let Err(e) = result {
4545
if args.other_args.verbosity(Level::Error) {
46-
eprintln!("{}", e);
46+
eprintln!("{e}");
4747
}
4848
std::process::exit(1);
4949
}

hugr-cli/src/mermaid.rs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,11 @@ use std::io::Write;
44
use clap::Parser;
55
use clap_verbosity_flag::log::Level;
66
use clio::Output;
7-
use hugr::package::PackageValidationError;
87
use hugr::HugrView;
8+
use hugr::package::PackageValidationError;
99

10-
use crate::hugr_io::HugrInputArgs;
1110
use crate::OtherArgs;
11+
use crate::hugr_io::HugrInputArgs;
1212

1313
/// Dump the standard extensions.
1414
#[derive(Parser, Debug)]
@@ -39,9 +39,10 @@ pub struct MermaidArgs {
3939
impl MermaidArgs {
4040
/// Write the mermaid diagram to the output.
4141
pub fn run_print(&mut self) -> Result<(), crate::CliError> {
42-
match self.input_args.hugr_json {
43-
true => self.run_print_hugr(),
44-
false => self.run_print_envelope(),
42+
if self.input_args.hugr_json {
43+
self.run_print_hugr()
44+
} else {
45+
self.run_print_envelope()
4546
}
4647
}
4748

@@ -73,6 +74,7 @@ impl MermaidArgs {
7374
}
7475

7576
/// Test whether a `level` message should be output.
77+
#[must_use]
7678
pub fn verbosity(&self, level: Level) -> bool {
7779
self.other_args.verbosity(level)
7880
}

hugr-cli/src/validate.rs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,26 @@ pub const VALID_PRINT: &str = "HUGR valid!";
3030
impl ValArgs {
3131
/// Run the HUGR cli and validate against an extension registry.
3232
pub fn run(&mut self) -> Result<Vec<Hugr>, CliError> {
33-
let result = match self.input_args.hugr_json {
34-
true => {
35-
let hugr = self.input_args.get_hugr()?;
36-
hugr.validate()
37-
.map_err(PackageValidationError::Validation)?;
38-
vec![hugr]
39-
}
40-
false => {
41-
let package = self.input_args.get_package()?;
42-
package.validate()?;
43-
package.modules
44-
}
33+
let result = if self.input_args.hugr_json {
34+
let hugr = self.input_args.get_hugr()?;
35+
hugr.validate()
36+
.map_err(PackageValidationError::Validation)?;
37+
vec![hugr]
38+
} else {
39+
let package = self.input_args.get_package()?;
40+
package.validate()?;
41+
package.modules
4542
};
4643

4744
if self.verbosity(Level::Info) {
48-
eprintln!("{}", VALID_PRINT);
45+
eprintln!("{VALID_PRINT}");
4946
}
5047

5148
Ok(result)
5249
}
5350

5451
/// Test whether a `level` message should be output.
52+
#[must_use]
5553
pub fn verbosity(&self, level: Level) -> bool {
5654
self.other_args.verbosity(level)
5755
}

hugr-cli/tests/gen_extensions.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn test_extension_dump(mut cmd: Command) {
3636
"collections/list.json",
3737
];
3838
// check all paths exist
39-
for path in expected_paths.iter() {
39+
for path in &expected_paths {
4040
let full_path = temp_dir.join(path);
4141
assert!(full_path.exists());
4242
}

0 commit comments

Comments
 (0)