Changelog #299

Commit: 049767e
Release: 2025-10-27 (v0.3.2658)

New Features

Fixes

  • #20583 (first contribution) add rust-analyzer.semanticHighlighting.comments.enable option.

  • #20697, #20745 (first contribution) fix negative literals in const generics.

  • #19867 (first contribution) allow &raw [mut | const] for union fields in safe code.

  • #20432 (first contribution) improve identifier pattern handling in assists.

  • #20891 (first contribution) add negation semantic token type.

  • #20425 (first contribution) add parser heuristic to warn on unterminated strings.

  • #20520 add option to hide reborrows in adjustment inlay hints.

  • #20721 implement fallback properly.

  • #20755 add #[doc = include_str!(…)] completion.

  • #20423 make import sorting order follow the 2024 edition style.

  • #20801 small fixes for import insertion.

  • #20866 run cargo metadata on sysroot right from its path.

  • #20554 improve handling of the env! macro.

  • #20587 deduplicate methods in completion by function ID and not by name.

  • #20803 replace --show-output task defaults with --nocapture.

  • #20459 track diagnostic generations per package.

  • #20689 make flycheck clearing dependency-aware.

  • #20635 don’t trigger two flychecks when saving files that are part of targets.

  • #20402 add more workarounds for incorrect startup diagnostics.

  • #20787 fix spurious incorrect_generics_len on generic enum variants used through type aliases.

  • #20770 don’t trigger trait-impl-incorrect-safety on unresolved traits.

  • #20642 make #[target_feature] safe on WASM.

  • #20504 avoid infinite recursion while lowering associated type bounds from supertraits.

  • #20720 prevent rustup from automatically installing toolchains.

  • #20528 masquerade as nightly cargo when invoking flycheck with -Zscript.

  • #20612 fix "Expand macro recursively" on nested macro calls.

  • #20517 only compute unstable paths on nightly toolchains for IDE features.

  • #20639 resolve paths to snapshot test libraries absolutely.

  • #20547 don’t highlight unrelated unsafe operation on unsafe blocks.

  • #20579 don’t pass --target to rustc twice while fetching target data layout.

  • #20475 don’t duplicate lang items with overridden sysroot crates.

  • #20518 fix else completion in let _ = if x {} $0.

  • #20390 add if-else completions in let statements and argument lists.

  • #20620, #20657 add else keyword completion after let statements.

  • #20653 don’t output an empty generic parameters list in generate_function.

  • #20708 fix panic in destructure_struct_binding.

  • #20702 fix else completion before else keyword.

  • #20700 fix extract_variable on if-let.

  • #20709 fix panic in destructure_struct_binding.

  • #20710 fix shorthand fields in unused_variables.

  • #20661 tighten up expected type completions in if.

  • #20507 handle expected return type in completions.

  • #20725 fix lifetime elision handling for Fn-style trait bounds.

  • #20624 fix lifetime_bounds.

  • #20723 fix bind_unused_param with binding modes and underscore prefixes.

  • #20722 fix pull_assignment_up on chained ifs.

  • #20679 fix type completion with nested patterns.

  • #20592 handle closures inside match in add_braces.

  • #20543 don’t suggest invalid transformation in replace_if_let_with_match.

  • #20742 don’t turn unused variables into raw identifier.

  • #20598 support let chains in convert_to_guarded_return.

  • #20731 handle tuple and slice rest patterns in expand_rest_pattern.

  • #20729 add const generic parameter keyword completion.

  • #20793 add missing parentheses on ambiguity in missing_unsafe.

  • #20513 complete let in let-chains.

  • #20812 complete self parameters in associated trait functions.

  • #20805 improve parse errors for static and const.

  • #20824 fix completion type analysis in empty closures.

  • #20817 support add_explicit_type on parameters in let statements.

  • #20816 handle closure return type adjustments in add_return_type.

  • #20526 support let-chains for .let completions.

  • #20788 allow more string literal conversions from raw strings.

  • #20838 don’t make convert_to_guarded_return applicable on let-else.

  • #20758 support else blocks with ! return type in convert_to_guarded_return.

  • #20772 support match inside if in pull_assignment_up.

  • #20673 support break with value in completions.

  • #20858 include trailing underscores when hiding inlay hints.

  • #20872 add missing rest pattern in convert_named_struct_to_tuple_struct.

  • #20880 fix invalid rest pattern in convert_tuple_struct_to_named_struct.

  • #20455 fix indent in convert_match_to_let_else.

  • #20509 fix indent in move_guard_to_arm_body.

  • #20613 fix indent in unresolved_field diagnostic fixes.

  • #20845 fix indent in add_braces.

  • #20850 fix indent in add_missing_match_arms.

  • #20670 improve incomplete statement heuristic.

  • #20831 add shorthand record field completions.

  • #20571 add type keyword completions.

  • #20886 improve handling of missing names in MethodCallExpr.

  • #20905 fix array inhabitedness check.

  • #20889 improve field completion parentheses heuristic.

  • #20658 complete else in more expressions.

  • #20611 add parentheses for precedence in replace_arith_op.

  • #20912 complete let before expression in if.

  • #20764 handle if-let in convert_to_guarded_return.

  • #20712 handle shorthand field patterns in destructure_tuple_binding.

  • #20589 place new module outside impl block in extract_module.

  • #20913 support let-chains in replace_is_method_with_if_let_method.

  • #20626 improve whitespace in make::struct_field_list.

  • #20534 improve semicolon handling in toggle_macro_delimiter.

  • #20442 only import the item in "Unqualify method call" when needed.

  • #20686 only offer generate_default_from_enum_variant when the variant name is completely selected.

  • #20771 offer invert_if on else.

  • #20844 offer add_braces on assignments.

  • #20599 offer apply_demorgan on !.

  • #20456 support guards in replace_match_with_if_let.

  • #20714 allow trailing comma in remove_dbg!.

  • #20511 don’t offer convert_integer_literal on selections.

  • #20512 don’t offer replace_arith_op on selections.

  • #20736 don’t offer invert_if on if-let chains.

  • #20682 don’t offer change_visibility for variant fields.

  • #20688 reduce replace_is_method_with_if_let_method applicability range.

  • #20759 fix casts and use typed syntax tree API in convert_to_guarded_return.

  • #20876 fix signature_help LSP conversion creating invalid UTF-16 offsets.

Internal Improvements

  • #20379 (first contribution) consistently use --- for horizontal rules.

  • #20483 (first contribution) optimize VS Code extension icon.

  • #20794 (first contribution) deduplicate sort and dedup calls.

  • #20667 add regression test for The One and Only Issue.

  • #20376 merge Trait and TraitAlias handling.

  • #20399 enable warning logs by default.

  • #20706 avoid allocating in stdx::replace.

  • #20730, #20748, #20860 migrate expand_record_rest_pattern, replace_arith_op and generate_single_field_struct_from assists to SyntaxEditor.

  • #20796 bump salsa.

  • #20852 do not enable force-always-assert by default.

  • #20631 remove support for #[register_attr].

  • #20804 pass --target to xtask install.

  • #20683 expose iterators over the types in InferenceResult.

  • #20669 add a testing guide.

  • #20633 clarify introduction in the README and manual.

  • #20638 add FAQ entry about Cargo build lock and cache conflicts.

  • #20560 add progress bars to more places in analysis-stats.

  • #20652 improve rust-analyzer diagnostics.

  • #20774 build x86_64-apple-darwin binaries on macos-14.