2023-06-28
Hello and welcome to another issue of This Week in Rust! Rust is a programming language empowering everyone to build reliable and efficient software. This is a weekly summary of its progress and community. Want something mentioned? Tag us at @ThisWeekInRust on Twitter or @ThisWeekinRust on mastodon.social, or send us a pull request. Want to get involved? We love contributions.
This Week in Rust is openly developed on GitHub and archives can be viewed at this-week-in-rust.org. If you find any errors in this week's issue, please submit a PR.
This week's crate is Parsel, an easy to use parser generator.
Thanks to jacg for the suggestion!
Please submit your suggestions and votes for next week!
Always wanted to contribute to open-source projects but did not know where to start? Every week we highlight some tasks from the Rust community for you to pick and get started!
Some of these tasks may also have mentors available, visit the task page for more information.
lease commandsIf you are a Rust project owner and are looking for contributors, please submit tasks here.
400 pull requests were merged in the last week
syntactically accept become expressions (explicit tail calls experiment)
hir: Add Become expression kind (explicit tail calls experiment)
better error for non const PartialEq call generated by match
don't substitute a GAT that has mismatched generics in OpaqueTypeCollector
expose compiler-builtins-weak-intrinsics feature for -Zbuild-std
fix return type notation associated type suggestion when -Zlower-impl-trait-in-trait-to-assoc-ty
fix return type notation errors with -Zlower-impl-trait-in-trait-to-assoc-ty
liberate bound vars properly when suggesting missing async-fn-in-trait
sort the errors from arguments checking so that suggestions are handled properly
suggest correct signature on missing fn returning RPITIT/AFIT
use ErrorGuaranteed instead of booleans in rustc_builtin_macros
fix: generalize types before generating built-in Normalize clauses
cargo: add .toml file extension restriction for -Zconfig-include
rustdoc: handle assoc const equalities in cross-crate impl-Trait-in-arg-pos
rustdoc: render the body of associated types before the where-clause
rustfmt: implement let-else formatting (finally!)
clippy: format_push_string: look through match and if expressions
clippy: get_unwrap: include a borrow in the suggestion if argument is not an integer literal
clippy: items_after_test_module: Ignore in-proc-macros items
clippy: ptr_arg: Don't lint when return type uses Cow's lifetime
clippy: type_repetition_in_bounds: respect MSRV for combining bounds
clippy: avoid linting extra_unused_type_parameters on procedural macros
clippy: check if if conditions always evaluate to true in never_loop
rust-analyzer: skip mutable diagnostics on synthetic bindings
rust-analyzer: support manual impl of fn traits in mir interpreter
Rusty Events between 2023-06-28 - 2023-07-26 🦀
If you are running a Rust event please add it to the calendar to get it mentioned here. Please remember to add a link to the event too. Email the Rust Community Team for access.
Please see the latest Who's Hiring thread on r/rust
It's a compiler not a Jedi, don't expect it to read minds.
Thanks to Nishant for the self-suggestion!
Please submit quotes and vote for next week!
This Week in Rust is edited by: nellshamrell, llogiq, cdmistman, ericseppanen, extrawurst, andrewpollack, U007D, kolharsam, joelmarcey, mariannegoldin, bennyvasquez.
Email list hosting is sponsored by The Rust Foundation