• M
    Rollup merge of #93461 - dtolnay:fmtyield, r=davidtwco · c1e2948c
    Matthias Krüger 提交于
    Accommodate yield points in the format_args expansion
    
    Fixes #93274.
    
    For the case `println!("{} {:?}", "", async {}.await)` in the issue, the expansion before:
    
    ```rust
    ::std::io::_print(
        ::core::fmt::Arguments::new_v1(
            &["", " ", "\n"],
            &[
                ::core::fmt::ArgumentV1::new(&"", ::core::fmt::Display::fmt),
                ::core::fmt::ArgumentV1::new(&async {}.await, ::core::fmt::Debug::fmt),
            ],
        ),
    );
    ```
    
    After:
    
    ```rust
    ::std::io::_print(
        ::core::fmt::Arguments::new_v1(
            &["", " ", "\n"],
            &match (&"", &async {}.await) {
                _args => [
                    ::core::fmt::ArgumentV1::new(_args.0, ::core::fmt::Display::fmt),
                    ::core::fmt::ArgumentV1::new(_args.1, ::core::fmt::Debug::fmt),
                ],
            },
        ),
    );
    ```
    c1e2948c
format.rs 50.4 KB