rustfmt v1.4.38 Release Notes

Release Date: 2021-10-20 // over 2 years ago
  • ๐Ÿ”„ Changed

    ๐Ÿ›  Fixed

    • ๐Ÿ’… Resolved issue where specious whitespace would be inserted when a block style comment was terminated within string literal processing #4312
    • ๐Ÿ“œ Nested out-of-line mods are again parsed and formatted #4874
    • ๐Ÿ’ป Accepts 2021 for edition value from rustfmt command line PR #4847
    • ๐Ÿ’ป Unstable command line options are no longer displayed in --help text on stable PR #4798
    • Stopped panicking on patterns in match arms which start with non-ascii characters #4868
    • 0๏ธโƒฃ Stopped stripping defaults on const params #4816
    • ๐Ÿ›  Fixed issue with dropped content with GAT aliases with self bounds in impls #4911
    • Stopped removing generic args on associated type constraints #4943
    • Stopped dropping visibility on certain trait and impl items #4960
    • ๐Ÿ›  Fixed dropping of qualified paths in struct patterns #4908 and #5005
    • ๐Ÿ›  Fixed bug in line width calculation that was causing specious formatting of certain patterns #4031
      • Note that this bug fix may cause observable formatting changes in cases where code had been formatted with prior versions of rustfmt that contained the bug
    • ๐Ÿ›  Fixed bug where rustfmt would drop parameter attributes if they were too long in certain cases #4579
    • Resolved idempotency issue with extern body elements #4963
    • ๐Ÿ’… rustfmt will now handle doc-style comments on function parameters, since they could appear with certain macro usage patterns even though it's generally invalid syntax #4936
    • Fixed bug in match_block_trailing_comma where commas were not added to the blocks of bodies whose arm had a guard that did not fit on the same line as the pattern #4998
    • ๐Ÿ›  Fixed bug in cases where derive attributes started with a block style comment #4984
    • Fixed issue where the struct rest could be lost when struct_field_align_threshold was enabled #4926
    • ๐Ÿ– Handles cases where certain control flow type expressions have comments between patterns/keywords and the pattern ident contains the keyword #5009
    • ๐Ÿ’… Handles tuple structs that have explicit visibilities and start with a block style comment #5011
    • ๐Ÿ’… Handles leading line-style comments in certain types of macro calls #4615

    โž• Added

    Note this hit the rustup distributions prior to the v1.4.38 release as part of an out-of-cycle updates, but is listed in this version because the feature was not in the other v1.4.37 releases. See also the use_small_heuristics section on the configuration site for more information https://rust-lang.github.io/rustfmt/?version=v1.4.38&search=#use_small_heuristics

    • ๐Ÿ†• New One variant added to imports_granularity configuration option which can be used to reformat all imports into a single use statement #4669
    • rustfmt will now skip files that are annotated with @generated at the top of the file #3958 if format_generated_files option is set to false (by default @generated files are formatted)
    • New configuration option hex_literal_case that allows user to control the casing utilized for hex literals PR #4903

    ๐Ÿ‘€ See the section on the configuration site for more information https://rust-lang.github.io/rustfmt/?version=v1.4.38&search=#hex_literal_case

    • ๐Ÿ‘ cargo fmt now directly supports the --check flag, which means it's now possible to run cargo fmt --check instead of the more verbose cargo fmt -- --check #3888

    Install/Download Options

    • rustup (nightly) - pending
    • ๐Ÿš€ GitHub Release Binaries - Release v1.4.38
    • ๐Ÿ— Build from source - Tag v1.4.38, see instructions for how to [install rustfmt from source][install-from-source]