Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync rustfmt subtree 2024-01-20 #1

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

ytmimi
Copy link
Owner

@ytmimi ytmimi commented Jan 20, 2024

r? @ghost

[1.7.0] 2023-10-22

Fixed

  • Sometimes when format_code_in_doc_comments=true was set some line comments were converted to block comments #5533
  • rustfmt will no longer remove the braces in match arms when the block has a labeled #5676
    fn main() {
        match true {
            true => 'a: {
                break 'a
            }
            _ => (),
        }
    }
  • Calling methods on float literals ending in . will now be wrapped in parenthesis. e.g. 0. .to_string() will be formatted as (0.).to_string() #5791
  • Prevent ICE when formatting empty macro_rules! branch #5730
    macro_rules! statement {
        () => {;};
    }
  • Prevent ICE when formatting vec!{} #5735
  • Prevent internal trailing whitespace error when formatting an empty macro_rules! defintion e.g. macro_rules! foo {} #5882
  • Formatting doc comment lines that start with . or ) won't be treated as ordered markdown lists because . or ) must be preceded by a number to start an ordered markdown list #5835
  • Add parenthesis around closures when they're used as method receives, don't have a block body, and end with . #4808
    fn main() {
        || (10.).method();
        (|| ..).method();
        (|| 1..).method();
    }
  • Prevent removing for<T> when using the #![feature(non_lifetime_binders)] #5721
    #![feature(non_lifetime_binders)]
    #![allow(incomplete_features)]
    
    trait Other<U: ?Sized> {}
    
    trait Trait<U>
    where
        for<T> U: Other<T> {}
  • Fix various issues with comments in imports #5852 #4708 #3984
  • When setting version = Two newlines between where clause bounds will be removed #5655
    fn foo<T>(_: T)
    where
        T: std::fmt::Debug,
        T: std::fmt::Display,
    {
    }
  • Improve formatting of let-else statements that have leading attributes When setting version = Two #5901
  • Prevent comment duplication in expressions wrapped in parenthesis. #5871
  • Adjust the span derivation used when rewriting const generics. The incorrect span derivation lead to invalid code after reformatting. #5935

Changed

  • rustfmt no longer removes explicit Rust ABIs. e.g extern "Rust" fn im_a_rust_fn() {} #5701
  • Setting trailing_semicolon = false will only remove trailing ; on the last expression in a block #5797
  • Update the format of cargo help fmt to be more consistent with other standard commands #5908

Added

  • Users can now set skip_macro_invocations in rustfmt.toml #5816
  • Adds initial support for formatting let-chains. let-chains are still a nightly feature and their formatting is subject to change #5910. Formatting was implemented following the rules outlined in rust-lang/rust#110568

Misc

  • Support the experimental dyn* syntax, enabled by #![feature(dyn_star)] #5542
  • Replace unicode_categories dependency with unicode-properties #5864

@ytmimi
Copy link
Owner Author

ytmimi commented Jan 20, 2024

This is an example of what an automated subtree-pull might look like. I'm currently working on a script we can run in the rustfmt repo that will help us automate the sync process

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant