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

ICE Request to format inverted span #5735

Closed
matthiaskrgr opened this issue Apr 4, 2023 · 1 comment · Fixed by #5879
Closed

ICE Request to format inverted span #5735

matthiaskrgr opened this issue Apr 4, 2023 · 1 comment · Fixed by #5879
Labels
a-macros bug Panic, non-idempotency, invalid code, etc.

Comments

@matthiaskrgr
Copy link
Member

fn find_errors(mut self) {
	let errors: Vec<> = vec!{
		#[debug_format = "A({})"]
		struct A {}
	};
}
RUST_BACKTRACE=full rustfmt treereduce.out --check
thread 'main' panicked at 'Request to format inverted span: /tmp/im/treereduce.out:3:3: 3:5', src/tools/rustfmt/src/missed_spans.rs:91:9
stack backtrace:
   0:     0x7fad40b65f8a - std::backtrace_rs::backtrace::libunwind::trace::hc36a5d781c5b5ccc
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fad40b65f8a - std::backtrace_rs::backtrace::trace_unsynchronized::hdf896053c14221b1
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fad40b65f8a - std::sys_common::backtrace::_print_fmt::h39cabfaabdc86ac1
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fad40b65f8a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h03d255761b970500
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fad40bca05f - core::fmt::write::h9be633e4e0b71092
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/core/src/fmt/mod.rs:1254:17
   5:     0x7fad40b58bc5 - std::io::Write::write_fmt::hf094eaeff4c6712a
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/io/mod.rs:1698:15
   6:     0x7fad40b65d55 - std::sys_common::backtrace::_print::hb3526973e1a9ef48
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fad40b65d55 - std::sys_common::backtrace::print::h8b0ebf35d627197b
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fad40b689fe - std::panicking::default_hook::{{closure}}::h800b864dad9a2ddb
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:269:22
   9:     0x7fad40b687a5 - std::panicking::default_hook::h47199288a8f9de13
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:288:9
  10:     0x7fad40b6906e - std::panicking::rust_panic_with_hook::hb6edee1e00f0405f
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:690:13
  11:     0x7fad40b68f69 - std::panicking::begin_panic_handler::{{closure}}::h8ad86fc31155b4e5
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:581:13
  12:     0x7fad40b663f6 - std::sys_common::backtrace::__rust_end_short_backtrace::h1382820b1dda7cef
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:150:18
  13:     0x7fad40b68cc2 - rust_begin_unwind
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:577:5
  14:     0x7fad40bc6373 - core::panicking::panic_fmt::hf50318b79d34c964
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/core/src/panicking.rs:67:14
  15:     0x55f00e44727d - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::format_missing_indent
  16:     0x55f00e45927b - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::push_rewrite
  17:     0x55f00e45a3e5 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_attrs
  18:     0x55f00e454e21 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_item
  19:     0x55f00e38ee83 - rustfmt_nightly[2b26fbdfc5662f3a]::macros::rewrite_macro_inner
  20:     0x55f00e38ccc3 - rustfmt_nightly[2b26fbdfc5662f3a]::macros::rewrite_macro
  21:     0x55f00e49264c - rustfmt_nightly[2b26fbdfc5662f3a]::expr::format_expr
  22:     0x55f00e4a311e - rustfmt_nightly[2b26fbdfc5662f3a]::expr::rewrite_assign_rhs_expr::<rustc_ast[afc3ec1cae29e349]::ast::Expr>
  23:     0x55f00e4a4761 - rustfmt_nightly[2b26fbdfc5662f3a]::expr::rewrite_assign_rhs_with::<alloc[4793a7dc0fb9f9dd]::string::String, rustc_ast[afc3ec1cae29e349]::ast::Expr>
  24:     0x55f00e3f7586 - <rustc_ast[afc3ec1cae29e349]::ast::Local as rustfmt_nightly[2b26fbdfc5662f3a]::rewrite::Rewrite>::rewrite
  25:     0x55f00e4265b1 - rustfmt_nightly[2b26fbdfc5662f3a]::stmt::format_stmt
  26:     0x55f00e45ac4d - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::walk_stmts
  27:     0x55f00e4516b8 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_block
  28:     0x55f00e454335 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_fn
  29:     0x55f00e455532 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_item
  30:     0x55f00e44a259 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_items_with_reordering
  31:     0x55f00e45a60f - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::walk_mod_items
  32:     0x55f00e45b207 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::format_separate_mod
  33:     0x55f00e2de0c5 - rustfmt_nightly[2b26fbdfc5662f3a]::formatting::format_project::<rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>
  34:     0x55f00e2dc990 - <scoped_tls[32dd083a3f62f99a]::ScopedKey<rustc_span[ea3aeb57fd08449]::SessionGlobals>>::with::<<rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::format_input_inner::{closure#0}, core[c98013cfbe010fb2]::result::Result<rustfmt_nightly[2b26fbdfc5662f3a]::FormatReport, rustfmt_nightly[2b26fbdfc5662f3a]::ErrorKind>>
  35:     0x55f00e2d9a3f - <scoped_tls[32dd083a3f62f99a]::ScopedKey<rustc_span[ea3aeb57fd08449]::SessionGlobals>>::set::<rustc_span[ea3aeb57fd08449]::create_session_if_not_set_then<core[c98013cfbe010fb2]::result::Result<rustfmt_nightly[2b26fbdfc5662f3a]::FormatReport, rustfmt_nightly[2b26fbdfc5662f3a]::ErrorKind>, <rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::format_input_inner::{closure#0}>::{closure#0}, core[c98013cfbe010fb2]::result::Result<rustfmt_nightly[2b26fbdfc5662f3a]::FormatReport, rustfmt_nightly[2b26fbdfc5662f3a]::ErrorKind>>
  36:     0x55f00e3026b0 - <rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::format
  37:     0x55f00e2f1b35 - rustfmt[e5cca7ecbdfbf507]::format_and_emit_report::<std[86a3120b066ce118]::io::stdio::Stdout>
  38:     0x55f00e300be9 - <rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::override_config::<rustfmt[e5cca7ecbdfbf507]::format::{closure#0}, ()>
  39:     0x55f00e2f0895 - rustfmt[e5cca7ecbdfbf507]::execute
  40:     0x55f00e2ee251 - rustfmt[e5cca7ecbdfbf507]::main
  41:     0x55f00e3014e3 - std[86a3120b066ce118]::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
  42:     0x55f00e2ffd29 - std[86a3120b066ce118]::rt::lang_start::<()>::{closure#0}
  43:     0x7fad40b4979e - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h8fb8db51461160a5
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/core/src/ops/function.rs:287:13
  44:     0x7fad40b4979e - std::panicking::try::do_call::h8cad0bb136701789
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:485:40
  45:     0x7fad40b4979e - std::panicking::try::h3a59b3d28fab2a12
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:449:19
  46:     0x7fad40b4979e - std::panic::catch_unwind::h257e63b47d64b708
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panic.rs:140:14
  47:     0x7fad40b4979e - std::rt::lang_start_internal::{{closure}}::h6cbe6465a0c54d37
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/rt.rs:148:48
  48:     0x7fad40b4979e - std::panicking::try::do_call::h065165cc1f86d7cb
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:485:40
  49:     0x7fad40b4979e - std::panicking::try::h36cd654271848729
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:449:19
  50:     0x7fad40b4979e - std::panic::catch_unwind::h6b02c76e9346c231
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panic.rs:140:14
  51:     0x7fad40b4979e - std::rt::lang_start_internal::h6fbc0eb973b8dfa5
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/rt.rs:148:20
  52:     0x55f00e2f28d5 - main
  53:     0x7fad40766790 - <unknown>
  54:     0x7fad4076684a - __libc_start_main
  55:     0x55f00e2d5c19 - <unknown>
  56:                0x0 - <unknown>
thread 'main' panicked at 'Request to format inverted span: /tmp/im/treereduce.out:3:3: 3:5', src/tools/rustfmt/src/missed_spans.rs:91:9
stack backtrace:
   0:     0x7fad40b65f8a - std::backtrace_rs::backtrace::libunwind::trace::hc36a5d781c5b5ccc
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5
   1:     0x7fad40b65f8a - std::backtrace_rs::backtrace::trace_unsynchronized::hdf896053c14221b1
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7fad40b65f8a - std::sys_common::backtrace::_print_fmt::h39cabfaabdc86ac1
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:65:5
   3:     0x7fad40b65f8a - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h03d255761b970500
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:44:22
   4:     0x7fad40bca05f - core::fmt::write::h9be633e4e0b71092
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/core/src/fmt/mod.rs:1254:17
   5:     0x7fad40b58bc5 - std::io::Write::write_fmt::hf094eaeff4c6712a
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/io/mod.rs:1698:15
   6:     0x7fad40b65d55 - std::sys_common::backtrace::_print::hb3526973e1a9ef48
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:47:5
   7:     0x7fad40b65d55 - std::sys_common::backtrace::print::h8b0ebf35d627197b
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:34:9
   8:     0x7fad40b689fe - std::panicking::default_hook::{{closure}}::h800b864dad9a2ddb
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:269:22
   9:     0x7fad40b687a5 - std::panicking::default_hook::h47199288a8f9de13
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:288:9
  10:     0x7fad40b6906e - std::panicking::rust_panic_with_hook::hb6edee1e00f0405f
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:690:13
  11:     0x7fad40b68f69 - std::panicking::begin_panic_handler::{{closure}}::h8ad86fc31155b4e5
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:581:13
  12:     0x7fad40b663f6 - std::sys_common::backtrace::__rust_end_short_backtrace::h1382820b1dda7cef
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/sys_common/backtrace.rs:150:18
  13:     0x7fad40b68cc2 - rust_begin_unwind
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:577:5
  14:     0x7fad40bc6373 - core::panicking::panic_fmt::hf50318b79d34c964
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/core/src/panicking.rs:67:14
  15:     0x55f00e44727d - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::format_missing_indent
  16:     0x55f00e45927b - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::push_rewrite
  17:     0x55f00e45a3e5 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_attrs
  18:     0x55f00e454e21 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_item
  19:     0x55f00e38ee83 - rustfmt_nightly[2b26fbdfc5662f3a]::macros::rewrite_macro_inner
  20:     0x55f00e38ccc3 - rustfmt_nightly[2b26fbdfc5662f3a]::macros::rewrite_macro
  21:     0x55f00e49264c - rustfmt_nightly[2b26fbdfc5662f3a]::expr::format_expr
  22:     0x55f00e4a32e0 - rustfmt_nightly[2b26fbdfc5662f3a]::expr::rewrite_assign_rhs_expr::<rustc_ast[afc3ec1cae29e349]::ast::Expr>
  23:     0x55f00e4a4761 - rustfmt_nightly[2b26fbdfc5662f3a]::expr::rewrite_assign_rhs_with::<alloc[4793a7dc0fb9f9dd]::string::String, rustc_ast[afc3ec1cae29e349]::ast::Expr>
  24:     0x55f00e3f7586 - <rustc_ast[afc3ec1cae29e349]::ast::Local as rustfmt_nightly[2b26fbdfc5662f3a]::rewrite::Rewrite>::rewrite
  25:     0x55f00e4265b1 - rustfmt_nightly[2b26fbdfc5662f3a]::stmt::format_stmt
  26:     0x55f00e45ac4d - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::walk_stmts
  27:     0x55f00e4516b8 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_block
  28:     0x55f00e454335 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_fn
  29:     0x55f00e455532 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_item
  30:     0x55f00e44a259 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::visit_items_with_reordering
  31:     0x55f00e45a60f - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::walk_mod_items
  32:     0x55f00e45b207 - <rustfmt_nightly[2b26fbdfc5662f3a]::visitor::FmtVisitor>::format_separate_mod
  33:     0x55f00e2de0c5 - rustfmt_nightly[2b26fbdfc5662f3a]::formatting::format_project::<rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>
  34:     0x55f00e2dc990 - <scoped_tls[32dd083a3f62f99a]::ScopedKey<rustc_span[ea3aeb57fd08449]::SessionGlobals>>::with::<<rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::format_input_inner::{closure#0}, core[c98013cfbe010fb2]::result::Result<rustfmt_nightly[2b26fbdfc5662f3a]::FormatReport, rustfmt_nightly[2b26fbdfc5662f3a]::ErrorKind>>
  35:     0x55f00e2d9a3f - <scoped_tls[32dd083a3f62f99a]::ScopedKey<rustc_span[ea3aeb57fd08449]::SessionGlobals>>::set::<rustc_span[ea3aeb57fd08449]::create_session_if_not_set_then<core[c98013cfbe010fb2]::result::Result<rustfmt_nightly[2b26fbdfc5662f3a]::FormatReport, rustfmt_nightly[2b26fbdfc5662f3a]::ErrorKind>, <rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::format_input_inner::{closure#0}>::{closure#0}, core[c98013cfbe010fb2]::result::Result<rustfmt_nightly[2b26fbdfc5662f3a]::FormatReport, rustfmt_nightly[2b26fbdfc5662f3a]::ErrorKind>>
  36:     0x55f00e3026b0 - <rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::format
  37:     0x55f00e2f1b35 - rustfmt[e5cca7ecbdfbf507]::format_and_emit_report::<std[86a3120b066ce118]::io::stdio::Stdout>
  38:     0x55f00e300be9 - <rustfmt_nightly[2b26fbdfc5662f3a]::Session<std[86a3120b066ce118]::io::stdio::Stdout>>::override_config::<rustfmt[e5cca7ecbdfbf507]::format::{closure#0}, ()>
  39:     0x55f00e2f0895 - rustfmt[e5cca7ecbdfbf507]::execute
  40:     0x55f00e2ee251 - rustfmt[e5cca7ecbdfbf507]::main
  41:     0x55f00e3014e3 - std[86a3120b066ce118]::sys_common::backtrace::__rust_begin_short_backtrace::<fn(), ()>
  42:     0x55f00e2ffd29 - std[86a3120b066ce118]::rt::lang_start::<()>::{closure#0}
  43:     0x7fad40b4979e - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h8fb8db51461160a5
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/core/src/ops/function.rs:287:13
  44:     0x7fad40b4979e - std::panicking::try::do_call::h8cad0bb136701789
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:485:40
  45:     0x7fad40b4979e - std::panicking::try::h3a59b3d28fab2a12
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:449:19
  46:     0x7fad40b4979e - std::panic::catch_unwind::h257e63b47d64b708
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panic.rs:140:14
  47:     0x7fad40b4979e - std::rt::lang_start_internal::{{closure}}::h6cbe6465a0c54d37
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/rt.rs:148:48
  48:     0x7fad40b4979e - std::panicking::try::do_call::h065165cc1f86d7cb
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:485:40
  49:     0x7fad40b4979e - std::panicking::try::h36cd654271848729
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panicking.rs:449:19
  50:     0x7fad40b4979e - std::panic::catch_unwind::h6b02c76e9346c231
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/panic.rs:140:14
  51:     0x7fad40b4979e - std::rt::lang_start_internal::h6fbc0eb973b8dfa5
                               at /rustc/3a8a131e9509c478ece1c58fe0ea2d49463d2300/library/std/src/rt.rs:148:20
  52:     0x55f00e2f28d5 - main
  53:     0x7fad40766790 - <unknown>
  54:     0x7fad4076684a - __libc_start_main
  55:     0x55f00e2d5c19 - <unknown>
  56:                0x0 - <unknown>
Diff in /tmp/im/treereduce.out at line 1:
 fn find_errors(mut self) {
-	let errors: Vec<> = vec!{
+    let errors: Vec = vec!{
 		#[debug_format = "A({})"]
 		struct A {}
 	};
@ytmimi ytmimi added bug Panic, non-idempotency, invalid code, etc. a-macros labels Apr 4, 2023
@langston-barrett
Copy link

This file yields a similar error:

fn main() {
    Box = (vec!{
    
    #[allow]
    static FOO: i32 = 42;
    
     static BAR: String = ::from;

    
     static BAZ: usize = 0;
     static QUUX: usize = 0;
});
}

tdanniels added a commit to tdanniels/rustfmt that referenced this issue Aug 5, 2023
... when it contains only items.

Fixes 5735

Attemtping to format invocations of macros which are considered "forced
bracket macros" (currently only `vec!`), but are invoked with braces
instead of brackets, and contain only items in their token trees,
currently trigger an ICE in rustfmt. This is because the function that
handles formatting macro invocations containing only items,
`rewrite_macro_with_items`, assumes that the 'new' delimiter style of
the macro being formatted is the same as the delimiter style in the
source text when attempting to locate the span after the macro's opening
delimiter. This leads to the construction of an invalid span, triggering
the ICE.

The fix here is to pass the old delimiter style to
`rewrite_macro_with_items` as well, so that it can successfully locate
the span.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a-macros bug Panic, non-idempotency, invalid code, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants