Commit: f04c372
Release: 2026-05-04 (v0.3.2887)
New Features
#22238,#22239,#22253(first contributions) addmismatched-array-pat-lenandunused-must-usediagnostics.#22186diagnose trait errors 🎉.#22144,#22168,#22145,#22156,#22197,#22193,#22202addtype-must-be-known,generic-default-refers-to-self,invalid-lhs-of-assignment,pattern-arg-in-extern-fn,non-exhaustive-record-exprandunion-expr-must-have-exactly-one-fielddiagnostics.#21987add initial support forgenblocks.#22178allow renaming of elided lifetimes.#22132,#22210add.newpostfix completion based on expected type.#22179addunwrap_blockassist.
Performance Improvements
#22078(first contribution) store parse errors into a side table.#22192keep nonce when cloningRootDatabase.#22187don't internAdtDef.#22189,#22131,#22133drop someArcs.
Fixes
#22098(first contribution) avoid importing prelude paths whenimports.preferPreludeis disabled.#22134,#22195port pattern inference fromrustc.#22141bring type inference closer torustc.#22135suppress inference variables in monomorphization.#22214visit all expressions.#22169parseimplrestrictions after visibility.#22170parsereturn #[attr] expr.#22124don't pick animpl Traitblock ingenerate_function.#22166fix placement of async closure capture hints.#22183propagate ABI to functions declared in extern blocks.#22201improve parser recovery in(a, , b).#22058improveprettify_macro_expansion.#22229add parentheses inconvert_match_to_let_else.#22142don't offer completions for already importedTrait as _.#22154don't completewhereafter qualified paths.#22222emitelseclause in value postfix completions.#22240improve indentation in trait item completion.#22244handle cycles inexpand_glob_import.#22150offeris_some_andandis_none_orinapply_demorgan_iterator.#22151handle negation inapply_demorgan_iterator.#22247handle match arms inunwrap_branch.#22217add semicolon after expression inunwrap_branch.#22184offerunwrap_branchon non-block match arms.#22180offerreplace_arith_opon compound assignments.#22199offerconvert_to_guarded_returnonifexpression withelse ifclause.#22079handleif matches!()inreplace_if_let_with_match.#22215fix a stack overflow when displaying projections.#22265fix panic onimpl ?Sizedinintroduce_named_type_parameter.#22207fix some issues inlower_coroutine_body_with_moved_arguments.#22122be more resilient to deleted directories inAnalysis::from_single_file.
Internal Improvements
#22129lower non-destructuring assignments intoPat::Exprinstead ofPat::Path.#22146clean up string references in postfix completions.#22190ignore a test that might be hanging.#22232refactor thehir-tygenerics data structures.#22194refactorInternedCoroutineClosureId.#22221fix incorrect offset with multiple indels.#22121migrateextract_functionassist toSyntaxEditorand remove old version ofgenerate_impl.#22125,#22020,#22159migratereplace_qualified_name_with_use,inline_callandgenerate_functionassists toSyntaxEditor.#22137migrateconvert_into_to_fromassist toSyntaxEditorand replace some usages ofmod_path_to_ast.#22241migrateinsert_useandinsert_use_as_aliastoSyntaxEditor.#22245migrateAssocItemList::add_itemtoSyntaxEditor.#22243replaceast::makewithSyntaxFactoryinto_generic_args.#22246removeWhereClause::add_predicate.#22242remove some unused methods inedit_in_place.
See also the changelog post.