Skip to content

Conversation

@RaoulLuque
Copy link
Member

This PR fixes some clippy lints about lifetime annotations which occur when running clippy like it is run in CI using the nightly toolchain.

More precisely, when running:

cargo clippy --all-features --lib --bins --examples --tests -- -D warnings

or alternatively just clippy when #845 is merged, one gets multiple warnings (Errors because of -D warnings) of the following sort:

error: lifetime flowing from input to output with different syntax can be confusing
   --> src/adj.rs:314:25
    |
314 |     pub fn edge_indices(&self) -> EdgeIndices<E, Ix> {
    |                         ^^^^^     ------------------ the lifetime gets resolved as '_
    |                         |
    |                         this lifetime flows to the output
    |
    = note: -D mismatched-lifetime-syntaxes implied by -D warnings
    = help: to override -D warnings add #[allow(mismatched_lifetime_syntaxes)]
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
314 |     pub fn edge_indices(&self) -> EdgeIndices<'_, E, Ix> {
    |                                               +++

This PR fixes these lints by exactly adding an anonymous lifetime to the return types and thus making the lifetime flow more explicit. Furthermore, a tiny change in the order of std and no-std generic parameters in matrix_graph.rs is made to make RustRover lints happy.

) -> EdgesConnecting<'_, E, Ty, Ix> {
EdgesConnecting {
target_node: b,
edges: self.edges_directed(a, Direction::Outgoing),
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This Direction:: is removed, as it is redundant since Outgoing is in scope.

@RaoulLuque RaoulLuque added A-crate Area: Petgraph crate functionality C-refactor Category: PR/issue with specific code/suggestions for refactoring labels Jul 26, 2025
@starovoid starovoid added this pull request to the merge queue Jul 27, 2025
Merged via the queue into petgraph:master with commit fcb1ff3 Jul 27, 2025
11 checks passed
@github-actions github-actions bot mentioned this pull request Jul 26, 2025
RaoulLuque added a commit to RaoulLuque/petgraph that referenced this pull request Sep 21, 2025
This PR fixes some clippy lints about lifetime annotations which occur
when running clippy like it is run in CI using the nightly toolchain.

More precisely, when running:
```bash
cargo clippy --all-features --lib --bins --examples --tests -- -D warnings
```
or alternatively `just clippy` when petgraph#845 is merged, one gets multiple
warnings (Errors because of `-D warnings`) of the following sort:
```bash
error: lifetime flowing from input to output with different syntax can be confusing
   --> src/adj.rs:314:25
    |
314 |     pub fn edge_indices(&self) -> EdgeIndices<E, Ix> {
    |                         ^^^^^     ------------------ the lifetime gets resolved as '_
    |                         |
    |                         this lifetime flows to the output
    |
    = note: -D mismatched-lifetime-syntaxes implied by -D warnings
    = help: to override -D warnings add #[allow(mismatched_lifetime_syntaxes)]
help: one option is to remove the lifetime for references and use the anonymous lifetime for paths
    |
314 |     pub fn edge_indices(&self) -> EdgeIndices<'_, E, Ix> {
    |                                               +++
```

This PR fixes these lints by exactly adding an anonymous lifetime to the
return types and thus making the lifetime flow more explicit.
Furthermore, a tiny change in the order of `std` and `no-std` generic
parameters in `matrix_graph.rs` is made to make RustRover lints happy.
@RaoulLuque RaoulLuque deleted the fix_clippy_lints branch September 22, 2025 07:18
github-merge-queue bot pushed a commit that referenced this pull request Sep 30, 2025
## 🤖 New release

* `petgraph`: 0.8.2 -> 0.8.3 (✓ API compatible changes)

<details><summary><i><b>Changelog</b></i></summary><p>

<blockquote>

##
[0.8.3](https://github.com/petgraph/petgraph/compare/petgraph@v0.8.2...petgraph@v0.8.3)
- 2025-09-28

### Bug Fixes

- Infinite `subgraph_isomorphisms_iter` for empty isomorphisms
([#780](#780))
- Algos don't work on `UndirectedAdaptor`
([#870](#870))
([#871](#871))
- use a queue for SPFA
([#893](#893))
- `StableGraph::reverse` breaks free lists
([#890](#890))

### Documentation

- Fix examples link in README and unify typesetting of one word
([#823](#823))
- Add link to multigraph definition to isomorphism algos
([#824](#824))
- Fix auxiliary space (and time) complexity of bron-kerbosch
([#825](#825))
- Fix Typo in Operator Module Documentation
([#831](#831))
- Sync the crate feature flags in the README and docs
([#832](#832))
- Remove all \[Generic\] tags from algo docstrings
([#835](#835))
- Fix typos in comments
([#836](#836))
- Revamp CONTRIBUTING.md
([#833](#833))
- Update `GraphMap` link in README
([#857](#857))
- Add doc comment for `Dot::with_attr_getters`
([#850](#850))
- Specify iteration order for neighbors and edges and their variants
([#790](#790))
- Collection of Doc fixes
([#856](#856))

### New Features

- Add `into_nodes_edges_iters` to `StableGraph`
([#841](#841))
- Add methods to reserve & shrink `StableGraph` capacity
([#846](#846))
- Add Dinic's Maximum Flow Algorithm
([#739](#739))
- make Csr::from_sorted_edges generic over edge type and properly
increase edge_count in Csr::from_sorted_edges
([#861](#861))
- Add `map_owned` and `filter_map_owned` for `Graph` and `StableGraph`
([#863](#863))
- Add dijkstra::with_dynamic_goal
([#855](#855))
- Fix self-loop bug in all_simple_paths and enable multiple targets
([#865](#865))
- mark petgraph::dot::Dot::graph_fmt as public
([#866](#866))
- Add bidirectional Dijkstra algorithm
([#782](#782))

### Performance

- Make A* tie break on lower h-values
([#882](#882))

### Refactor

- add examples for scc algorithms and reorganize into dedicated module
([#830](#830))
- Remove unnecessary trait bounds from impls/methods
([#828](#828))
- replace uses of 'crate::util::zip' with 'core::iter::zip'
([#849](#849))
- Fix clippy (and other) lints
([#851](#851))
- Cleanup repo ([#854](#854))
- replace crate::util::enumerate with Iterator::enumerate
([#881](#881))

### Testing

- Add dependency list for 'quickcheck' feature
([#822](#822))
- Fix feature cfg capitalization in doctest
([#852](#852))
</blockquote>


</p></details>

---
This PR was generated with
[release-plz](https://github.com/release-plz/release-plz/).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Egor Starovoitov <52821033+starovoid@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-crate Area: Petgraph crate functionality C-refactor Category: PR/issue with specific code/suggestions for refactoring

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants