2023-12-13
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.
for await and the battle of buffered streamsThis week's crate is io-adapters, a crate that lets you convert between different writeable APIs (io vs. fmt).
Thanks to Alex Saveau for the self-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.
kafka/protocol_aware and nodes/servicesrelaysderive feature doesn't change API surfaceall-jobs-succeeded CI job depends on all other jobsIf you are a Rust project owner and are looking for contributors, please submit tasks here.
391 pull requests were merged in the last week
add ADT variant infomation to StableMIR and finish implementing TyKind::internal()
add comment about keeping flags in sync between bootstrap.py and bootstrap.rs
add instance evaluation and methods to read an allocation in StableMIR
compile-time evaluation: detect writes through immutable pointers
coverage: be more strict about what counts as a "visible macro"
coverage: simplify the heuristic for ignoring async fn return spans
coverage: use SpanMarker to improve coverage spans for if ! expressions
don't warn an empty pattern unreachable if we're not sure the data is valid
enforce must_use on associated types and RPITITs that have a must-use trait in bounds
fix: correct the arg for 'suggest to use associated function syntax' diagnostic
make sure panic_nounwind_fmt can still be fully inlined (e.g. for panic_immediate_abort)
pretty print Fn<(..., ...)> trait refs with parentheses (almost) always
provide context when ? can't be called because of Result<_, E>
rearrange default_configuration and CheckCfg::fill_well_known
tell MirUsedCollector that the pointer alignment checks calls its panic symbol
uplift the (new solver) canonicalizer into rustc_next_trait_solver
miri: move some x86 intrinsics code to helper functions in shims::x86
cargo: spec: Extend PackageIdSpec with source kind + git ref for unambiguous specs
cargo: limit exported-private-dependencies lints to libraries
rustdoc: Don't generate the "Fields" heading if there is no field displayed
rustfmt: add StyleEdition enum and StyleEditionDefault trait
clippy: needless_borrows_for_generic_args: Handle when field operand impl Drop
clippy: add a function to check whether binary oprands are nontrivial
rust-analyzer: check if lhs is also a binexpr and use its rhs in flip binexpr assist
rust-analyzer: fallback to method resolution on unresolved field access with matching method name
rust-analyzer: add trait_impl_reduntant_assoc_item diagnostic
rust-analyzer: prioritize import suggestions based on the expected type
rust-analyzer: fix WideChar offsets calculation in line-index
rust-analyzer: don't emit "missing items" diagnostic for negative impls
rust-analyzer: don't print proc-macro panic backtraces in the logs
rust-analyzer: fix concat_bytes! expansion emitting an identifier
rust-analyzer: fix completion failing in format_args! with invalid template
rust-analyzer: fix diagnostics panicking when resolving to different files due to macros
rust-analyzer: fix view mir, hir and eval function not working when cursor is inside macros
rust-analyzer: insert fn call parens only if the parens inserted around field name
rust-analyzer: resolve Self type references in delegate method assist
rust-analyzer: smaller spans for unresolved field and method diagnostics
rust-analyzer: query for nearest parent block around the hint to resolve
rust-analyzer: replace doc_comments_and_attrs with collect_attrs
rust-analyzer: show placeholder while run command gets runnables from server
rustc-perf: add support for benchmarking Cranelift codegen backend
Rusty Events between 2023-12-13 - 2024-01-10 🦀
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
Sadly, the week went by without a nominated quote.
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