Skip to content

Commit 6d98503

Browse files
authored
chore!: Cleanup deprecated definitions (#2594)
In preparation for the breaking release, - Removes a couple deprecated methods/aliases. (I didn't modify things that are too breaking, like removing `HugrView::mermaid_string_with_config`. - Adds `since` fields to `#[deprecated]` annotations missing it. - Replaces `#[allow(deprecated)]`s with `#[expect(deprecated)]` where possible, so we remember to remove them later. BREAKING CHANGE: Removed deprecated `From` implementation for `ExtensionCollectionError` BREAKING CHANGE: Removed deprecated `NonLocalEdgesError` alias
1 parent afe8f3d commit 6d98503

File tree

12 files changed

+30
-36
lines changed

12 files changed

+30
-36
lines changed

hugr-core/src/envelope.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,6 @@
3434
//! - Bit 7,6: Constant "01" to make some headers ascii-printable.
3535
//!
3636
37-
#![allow(deprecated)]
38-
// TODO: Due to a bug in `derive_more`
39-
// (https://github.com/JelteF/derive_more/issues/419) we need to deactivate
40-
// deprecation warnings here. We can reactivate them once the bug is fixed by
41-
// https://github.com/JelteF/derive_more/pull/454.
42-
4337
mod header;
4438
mod package_json;
4539
pub mod serde_with;
@@ -362,7 +356,6 @@ fn read_impl(
362356
registry: &ExtensionRegistry,
363357
) -> Result<Package, EnvelopeError> {
364358
let package = match header.format {
365-
#[allow(deprecated)]
366359
EnvelopeFormat::PackageJson => Ok(package_json::from_json_reader(payload, registry)?),
367360
EnvelopeFormat::Model | EnvelopeFormat::ModelWithExtensions => {
368361
decode_model(payload, registry, header.format)
@@ -467,7 +460,6 @@ fn write_impl<'h>(
467460
config: EnvelopeConfig,
468461
) -> Result<(), EnvelopeError> {
469462
match config.format {
470-
#[allow(deprecated)]
471463
EnvelopeFormat::PackageJson => package_json::to_json_writer(hugrs, extensions, writer)?,
472464
EnvelopeFormat::Model
473465
| EnvelopeFormat::ModelWithExtensions

hugr-core/src/envelope/serde_with.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ macro_rules! impl_serde_as_string_envelope {
198198
//
199199
// TODO: Remove this fallback in 0.21.0
200200
let deserializer = serde::de::value::MapAccessDeserializer::new(map);
201-
#[allow(deprecated)]
201+
#[expect(deprecated)]
202202
let mut hugr =
203203
$crate::hugr::serialize::serde_deserialize_hugr(deserializer)
204204
.map_err(serde::de::Error::custom)?;
@@ -394,7 +394,7 @@ macro_rules! impl_serde_as_binary_envelope {
394394
//
395395
// TODO: Remove this fallback in a breaking change
396396
let deserializer = serde::de::value::MapAccessDeserializer::new(map);
397-
#[allow(deprecated)]
397+
#[expect(deprecated)]
398398
let mut hugr =
399399
$crate::hugr::serialize::serde_deserialize_hugr(deserializer)
400400
.map_err(serde::de::Error::custom)?;

hugr-core/src/extension/resolution.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,7 @@ impl<N: HugrNode> ExtensionResolutionError<N> {
186186
}
187187

188188
/// Errors that can occur when collecting extension requirements.
189-
// TODO: [Deprecated] Remove `From` implementation from here
190-
#[derive(Debug, Display, Clone, Error, From, PartialEq)]
189+
#[derive(Debug, Display, Clone, Error, PartialEq)]
191190
#[non_exhaustive]
192191
pub enum ExtensionCollectionError<N: HugrNode = Node> {
193192
/// An operation requires an extension that is not in the given registry.
@@ -220,7 +219,6 @@ pub enum ExtensionCollectionError<N: HugrNode = Node> {
220219
"Type {typ} contains custom types which have lost the reference to their defining extensions. Dropped extensions: {}",
221220
missing_extensions.join(", ")
222221
)]
223-
#[from(ignore)]
224222
DroppedTypeExtensions {
225223
/// The type that is missing extensions.
226224
typ: String,

hugr-core/src/hugr/patch.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ pub trait PatchVerification {
4040
/// The nodes invalidated by the rewrite. Deprecated: implement
4141
/// [Self::invalidated_nodes] instead. The default returns the empty
4242
/// iterator; this should be fine as there are no external calls.
43-
#[deprecated(note = "Use/implement invalidated_nodes instead")]
43+
#[deprecated(note = "Use/implement invalidated_nodes instead", since = "0.20.2")]
4444
fn invalidation_set(&self) -> impl Iterator<Item = Self::Node> {
4545
std::iter::empty()
4646
}

hugr-core/src/hugr/views.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use std::borrow::Cow;
1515
use std::collections::HashMap;
1616

1717
pub use self::petgraph::PetgraphWrapper;
18-
#[allow(deprecated)]
18+
#[expect(deprecated)]
1919
use self::render::{MermaidFormatter, RenderConfig};
2020
pub use nodes_iter::NodesIter;
2121
pub use rerooted::Rerooted;
@@ -399,8 +399,8 @@ pub trait HugrView: HugrInternals {
399399
///
400400
/// For a more detailed representation, use the [`HugrView::dot_string`]
401401
/// format instead.
402-
#[deprecated(note = "Use `mermaid_format` instead")]
403-
#[allow(deprecated)]
402+
#[deprecated(note = "Use `mermaid_format` instead", since = "0.20.2")]
403+
#[expect(deprecated)]
404404
fn mermaid_string_with_config(&self, config: RenderConfig<Self::Node>) -> String;
405405

406406
/// Return the mermaid representation of the underlying hierarchical graph
@@ -419,14 +419,14 @@ pub trait HugrView: HugrInternals {
419419
/// encouraged to provide an implementation of this method overriding the default
420420
/// and no longer rely on [HugrView::mermaid_string_with_config].
421421
fn mermaid_string_with_formatter(&self, formatter: MermaidFormatter<Self>) -> String {
422-
#[allow(deprecated)]
422+
#[expect(deprecated)]
423423
let config = match RenderConfig::try_from(formatter) {
424424
Ok(config) => config,
425425
Err(e) => {
426426
panic!("Unsupported format option: {e}");
427427
}
428428
};
429-
#[allow(deprecated)]
429+
#[expect(deprecated)]
430430
self.mermaid_string_with_config(config)
431431
}
432432

@@ -677,7 +677,7 @@ impl HugrView for Hugr {
677677
self.graph.all_neighbours(node.into_portgraph()).map_into()
678678
}
679679

680-
#[allow(deprecated)]
680+
#[expect(deprecated)]
681681
fn mermaid_string_with_config(&self, config: RenderConfig) -> String {
682682
self.mermaid_string_with_formatter(MermaidFormatter::from_render_config(config, self))
683683
}

hugr-core/src/hugr/views/render.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ use crate::{Hugr, HugrView, Node};
1717
/// Additional options are available in the [`MermaidFormatter`] struct.
1818
#[derive(Copy, Clone, Debug, PartialEq, Eq, Hash)]
1919
#[non_exhaustive]
20-
#[deprecated(note = "Use `MermaidFormatter` instead")]
20+
#[deprecated(note = "Use `MermaidFormatter` instead", since = "0.20.2")]
2121
pub struct RenderConfig<N = Node> {
2222
/// Show the node index in the graph nodes.
2323
pub node_indices: bool,
@@ -46,7 +46,7 @@ pub struct MermaidFormatter<'h, H: HugrInternals + ?Sized = Hugr> {
4646

4747
impl<'h, H: HugrInternals + ?Sized> MermaidFormatter<'h, H> {
4848
/// Create a new [`MermaidFormatter`] from a [`RenderConfig`].
49-
#[allow(deprecated)]
49+
#[expect(deprecated)]
5050
pub fn from_render_config(config: RenderConfig<H::Node>, hugr: &'h H) -> Self {
5151
let node_labels = if config.node_indices {
5252
NodeLabel::Numeric
@@ -155,7 +155,7 @@ pub enum UnsupportedRenderConfig {
155155
CustomNodeLabels,
156156
}
157157

158-
#[allow(deprecated)]
158+
#[expect(deprecated)]
159159
impl<'h, H: HugrInternals + ?Sized> TryFrom<MermaidFormatter<'h, H>> for RenderConfig<H::Node> {
160160
type Error = UnsupportedRenderConfig;
161161

@@ -235,7 +235,7 @@ pub enum NodeLabel<N: HugrNode = Node> {
235235
Custom(HashMap<N, String>),
236236
}
237237

238-
#[allow(deprecated)]
238+
#[expect(deprecated)]
239239
impl<N> Default for RenderConfig<N> {
240240
fn default() -> Self {
241241
Self {
@@ -413,7 +413,7 @@ mod tests {
413413
let h = simple_dfg_hugr();
414414
let config: MermaidFormatter =
415415
MermaidFormatter::new(&h).with_node_labels(NodeLabel::Custom(HashMap::new()));
416-
#[allow(deprecated)]
416+
#[expect(deprecated)]
417417
{
418418
assert!(RenderConfig::try_from(config).is_err());
419419
}

hugr-core/src/hugr/views/rerooted.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ impl<H: HugrView> HugrView for Rerooted<H> {
100100
fn first_child(&self, node: Self::Node) -> Option<Self::Node>;
101101
fn neighbours(&self, node: Self::Node, dir: crate::Direction) -> impl Iterator<Item = Self::Node> + Clone;
102102
fn all_neighbours(&self, node: Self::Node) -> impl Iterator<Item = Self::Node> + Clone;
103-
#[allow(deprecated)]
103+
#[expect(deprecated)]
104104
fn mermaid_string_with_config(&self, config: crate::hugr::views::render::RenderConfig<Self::Node>) -> String;
105105
fn dot_string(&self) -> String;
106106
fn static_source(&self, node: Self::Node) -> Option<Self::Node>;

hugr-llvm/src/extension/collections/stack_array.rs

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,10 @@ use crate::{
3333

3434
/// A helper trait for customising the lowering of [hugr_core::std_extensions::collections::array]
3535
/// types, [hugr_core::ops::constant::CustomConst]s, and ops.
36-
#[deprecated(note = "Use `hugr_llvm::extension::collections::array` instead")]
36+
#[deprecated(
37+
note = "Use `hugr_llvm::extension::collections::array` instead",
38+
since = "0.20.0"
39+
)]
3740
pub trait ArrayCodegen: Clone {
3841
/// Return the llvm type of [hugr_core::std_extensions::collections::array::ARRAY_TYPENAME].
3942
fn array_type<'c>(
@@ -92,13 +95,19 @@ pub trait ArrayCodegen: Clone {
9295

9396
/// A trivial implementation of [ArrayCodegen] which passes all methods
9497
/// through to their default implementations.
95-
#[deprecated(note = "Use `hugr_llvm::extension::collections::array` instead")]
98+
#[deprecated(
99+
note = "Use `hugr_llvm::extension::collections::array` instead",
100+
since = "0.20.0"
101+
)]
96102
#[derive(Default, Clone)]
97103
pub struct DefaultArrayCodegen;
98104

99105
impl ArrayCodegen for DefaultArrayCodegen {}
100106

101-
#[deprecated(note = "Use `hugr_llvm::extension::collections::array` instead")]
107+
#[deprecated(
108+
note = "Use `hugr_llvm::extension::collections::array` instead",
109+
since = "0.20.0"
110+
)]
102111
#[derive(Clone, Debug, Default)]
103112
pub struct ArrayCodegenExtension<CCG>(CCG);
104113

hugr-passes/src/dead_code.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,6 @@ impl<H: HugrView> DeadCodeElimPass<H> {
158158
if let Some(res) = cache.get(&n) {
159159
return *res;
160160
}
161-
#[allow(deprecated)]
162161
let res = match self.preserve_callback.as_ref()(h, n) {
163162
PreserveNode::MustKeep => true,
164163
PreserveNode::CanRemoveIgnoringChildren => false,

hugr-passes/src/non_local.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,6 @@ pub fn nonlocal_edges<H: HugrView>(hugr: &H) -> impl Iterator<Item = (H::Node, I
4747
})
4848
}
4949

50-
/// Legacy alias of [FindNonLocalEdgesError]
51-
#[deprecated(note = "Use FindNonLocalEdgesError")]
52-
pub type NonLocalEdgesError<N> = FindNonLocalEdgesError<N>;
53-
5450
/// An error from [ensure_no_nonlocal_edges]
5551
#[derive(Clone, derive_more::Error, derive_more::Display, Debug, PartialEq, Eq)]
5652
#[non_exhaustive]

0 commit comments

Comments
 (0)