Skip to content

ICE: attempt to subtract with overflow, compiler/rustc_errors/src/lib.rs:348:47 #89280

Closed
@jyn514

Description

@jyn514

Code

Rebase bdb5a5ffe17 over ac8dd1b, then run x test src/tools/clippy. I think this is the write_literal_2 test.

cc @rust-lang/clippy, but I think this is an issue with rustc_errors, not clippy itself.

Meta

rustc --version --verbose:

note: Clippy version: clippy 0.1.57 (ac8dd1b2f24 2021-09-26)

Error output

thread 'rustc' panicked at 'attempt to subtract with overflow', compiler/rustc_errors/src/lib.rs:348:47
Backtrace

thread 'rustc' panicked at 'attempt to subtract with overflow', compiler/rustc_errors/src/lib.rs:348:47
stack backtrace:
   0: rust_begin_unwind
             at /home/joshua/rustc3/library/std/src/panicking.rs:517:5
   1: core::panicking::panic_fmt
             at /home/joshua/rustc3/library/core/src/panicking.rs:100:14
   2: core::panicking::panic
             at /home/joshua/rustc3/library/core/src/panicking.rs:50:5
   3: rustc_errors::CodeSuggestion::splice_lines::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_errors/src/lib.rs:348:47
   4: core::ops::function::impls::<impl core::ops::function::FnMut<A> for &mut F>::call_mut
             at /home/joshua/rustc3/library/core/src/ops/function.rs:269:13
   5: core::iter::traits::iterator::Iterator::find_map::check::{{closure}}
             at /home/joshua/rustc3/library/core/src/iter/traits/iterator.rs:2397:32
   6: core::iter::adapters::cloned::clone_try_fold::{{closure}}
             at /home/joshua/rustc3/library/core/src/iter/adapters/cloned.rs:28:21
   7: core::iter::adapters::filter::filter_try_fold::{{closure}}
             at /home/joshua/rustc3/library/core/src/iter/adapters/filter.rs:44:44
   8: core::iter::traits::iterator::Iterator::try_fold
             at /home/joshua/rustc3/library/core/src/iter/traits/iterator.rs:1983:21
   9: <core::iter::adapters::filter::Filter<I,P> as core::iter::traits::iterator::Iterator>::try_fold
             at /home/joshua/rustc3/library/core/src/iter/adapters/filter.rs:93:9
  10: <core::iter::adapters::cloned::Cloned<I> as core::iter::traits::iterator::Iterator>::try_fold
             at /home/joshua/rustc3/library/core/src/iter/adapters/cloned.rs:53:9
  11: core::iter::traits::iterator::Iterator::find_map
             at /home/joshua/rustc3/library/core/src/iter/traits/iterator.rs:2403:9
  12: <core::iter::adapters::filter_map::FilterMap<I,F> as core::iter::traits::iterator::Iterator>::next
             at /home/joshua/rustc3/library/core/src/iter/adapters/filter_map.rs:61:9
  13: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter_nested::SpecFromIterNested<T,I>>::from_iter
             at /home/joshua/rustc3/library/alloc/src/vec/spec_from_iter_nested.rs:23:32
  14: <alloc::vec::Vec<T> as alloc::vec::spec_from_iter::SpecFromIter<T,I>>::from_iter
             at /home/joshua/rustc3/library/alloc/src/vec/spec_from_iter.rs:33:9
  15: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /home/joshua/rustc3/library/alloc/src/vec/mod.rs:2487:9
  16: core::iter::traits::iterator::Iterator::collect
             at /home/joshua/rustc3/library/core/src/iter/traits/iterator.rs:1733:9
  17: rustc_errors::CodeSuggestion::splice_lines
             at /home/joshua/rustc3/compiler/rustc_errors/src/lib.rs:241:9
  18: rustc_errors::emitter::EmitterWriter::emit_suggestion_default
             at /home/joshua/rustc3/compiler/rustc_errors/src/emitter.rs:1572:27
  19: rustc_errors::emitter::EmitterWriter::emit_messages_default
             at /home/joshua/rustc3/compiler/rustc_errors/src/emitter.rs:1856:29
  20: <rustc_errors::emitter::EmitterWriter as rustc_errors::emitter::Emitter>::emit_diagnostic
             at /home/joshua/rustc3/compiler/rustc_errors/src/emitter.rs:511:9
  21: rustc_errors::json::Diagnostic::from_errors_diagnostic
             at /home/joshua/rustc3/compiler/rustc_errors/src/json.rs:374:9
  22: <rustc_errors::json::JsonEmitter as rustc_errors::emitter::Emitter>::emit_diagnostic
             at /home/joshua/rustc3/compiler/rustc_errors/src/json.rs:112:20
  23: rustc_errors::HandlerInner::emit_diagnostic
             at /home/joshua/rustc3/compiler/rustc_errors/src/lib.rs:988:13
  24: rustc_errors::Handler::emit_diagnostic
             at /home/joshua/rustc3/compiler/rustc_errors/src/lib.rs:909:9
  25: rustc_errors::diagnostic_builder::DiagnosticBuilder::emit
             at /home/joshua/rustc3/compiler/rustc_errors/src/diagnostic_builder.rs:103:9
  26: clippy_utils::diagnostics::span_lint_and_then::{{closure}}
             at ./clippy_utils/src/diagnostics.rs:154:9
  27: core::ops::function::FnOnce::call_once{{vtable.shim}}
             at /home/joshua/rustc3/library/core/src/ops/function.rs:227:5
  28: <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once
             at /home/joshua/rustc3/library/alloc/src/boxed.rs:1638:9
  29: rustc_middle::lint::struct_lint_level::struct_lint_level_impl
             at /home/joshua/rustc3/compiler/rustc_middle/src/lint.rs:384:9
  30: rustc_middle::lint::struct_lint_level
             at /home/joshua/rustc3/compiler/rustc_middle/src/lint.rs:386:5
  31: rustc_lint::levels::LintLevelsBuilder::struct_lint
             at /home/joshua/rustc3/compiler/rustc_lint/src/levels.rs:552:9
  32: <rustc_lint::context::EarlyContext as rustc_lint::context::LintContext>::lookup
             at /home/joshua/rustc3/compiler/rustc_lint/src/context.rs:866:9
  33: rustc_lint::context::LintContext::struct_span_lint
             at /home/joshua/rustc3/compiler/rustc_lint/src/context.rs:795:9
  34: clippy_utils::diagnostics::span_lint_and_then
             at ./clippy_utils/src/diagnostics.rs:150:5
  35: clippy_lints::write::Write::check_tts
             at ./clippy_lints/src/write.rs:586:17
  36: <clippy_lints::write::Write as rustc_lint::passes::EarlyLintPass>::check_mac
             at ./clippy_lints/src/write.rs:321:44
  37: <rustc_lint::early::EarlyLintPassObjects as rustc_lint::passes::EarlyLintPass>::check_mac
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:312:17
  38: <rustc_lint::early::EarlyContextAndPass<T> as rustc_ast::visit::Visitor>::visit_mac_call
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:292:9
  39: rustc_ast::visit::walk_stmt
             at /home/joshua/rustc3/compiler/rustc_ast/src/visit.rs:697:13
  40: rustc_ast::visit::walk_block
             at /home/joshua/rustc3/compiler/rustc_ast/src/visit.rs:686:5
  41: <rustc_lint::early::EarlyContextAndPass<T> as rustc_ast::visit::Visitor>::visit_block
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:208:9
  42: rustc_ast::visit::walk_fn
             at /home/joshua/rustc3/compiler/rustc_ast/src/visit.rs:637:13
  43: <rustc_lint::early::EarlyContextAndPass<T> as rustc_ast::visit::Visitor>::visit_fn
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:152:9
  44: rustc_ast::visit::walk_item
             at /home/joshua/rustc3/compiler/rustc_ast/src/visit.rs:291:13
  45: <rustc_lint::early::EarlyContextAndPass<T> as rustc_ast::visit::Visitor>::visit_item::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:90:13
  46: rustc_lint::early::EarlyContextAndPass<T>::with_lint_attrs
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:63:9
  47: <rustc_lint::early::EarlyContextAndPass<T> as rustc_ast::visit::Visitor>::visit_item
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:88:9
  48: rustc_ast::visit::walk_crate
             at /home/joshua/rustc3/compiler/rustc_ast/src/visit.rs:235:5
  49: rustc_lint::early::early_lint_crate::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:347:9
  50: rustc_lint::early::EarlyContextAndPass<T>::with_lint_attrs
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:63:9
  51: rustc_lint::early::early_lint_crate
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:342:5
  52: rustc_lint::early::check_ast_crate
             at /home/joshua/rustc3/compiler/rustc_lint/src/early.rs:372:24
  53: rustc_interface::passes::pre_expansion_lint::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/passes.rs:246:9
  54: rustc_data_structures::profiling::TimingGuard::run
             at /home/joshua/rustc3/compiler/rustc_data_structures/src/profiling.rs:590:9
  55: rustc_interface::passes::pre_expansion_lint
             at /home/joshua/rustc3/compiler/rustc_interface/src/passes.rs:245:5
  56: rustc_interface::passes::configure_and_expand
             at /home/joshua/rustc3/compiler/rustc_interface/src/passes.rs:269:5
  57: rustc_interface::queries::Queries::expansion::{{closure}}::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/queries.rs:184:17
  58: rustc_interface::passes::boxed_resolver::BoxedResolver::access
             at /home/joshua/rustc3/compiler/rustc_interface/src/passes.rs:142:13
  59: rustc_interface::queries::Queries::expansion::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/queries.rs:183:25
  60: rustc_interface::queries::Query<T>::compute
             at /home/joshua/rustc3/compiler/rustc_interface/src/queries.rs:38:28
  61: rustc_interface::queries::Queries::expansion
             at /home/joshua/rustc3/compiler/rustc_interface/src/queries.rs:172:9
  62: rustc_driver::run_compiler::{{closure}}::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_driver/src/lib.rs:364:13
  63: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
             at /home/joshua/rustc3/compiler/rustc_interface/src/queries.rs:390:19
  64: rustc_driver::run_compiler::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_driver/src/lib.rs:312:22
  65: rustc_interface::interface::create_compiler_and_run::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/interface.rs:209:13
  66: rustc_span::with_source_map
             at /home/joshua/rustc3/compiler/rustc_span/src/lib.rs:976:5
  67: rustc_interface::interface::create_compiler_and_run
             at /home/joshua/rustc3/compiler/rustc_interface/src/interface.rs:203:5
  68: rustc_interface::interface::run_compiler::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/interface.rs:225:12
  69: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::{{closure}}::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/util.rs:145:13
  70: scoped_tls::ScopedKey<T>::set
             at /home/joshua/.local/lib/cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137:9
  71: rustc_span::create_session_globals_then
             at /home/joshua/rustc3/compiler/rustc_span/src/lib.rs:109:5
  72: rustc_interface::util::setup_callbacks_and_run_in_thread_pool_with_globals::{{closure}}
             at /home/joshua/rustc3/compiler/rustc_interface/src/util.rs:143:9
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust-clippy/issues/new

note: Clippy version: clippy 0.1.57 (ac8dd1b2f24 2021-09-26)

query stack during panic:
end of query stack
{"message":"aborting due to 5 previous errors","code":null,"level":"error","spans":[],"children":[],"rendered":"error: aborting due to 5 previous errors\n\n"}

------------------------------------------

thread 'compile_test' panicked at 'Some tests failed', /home/joshua/.local/lib/cargo/registry/src/github.com-1ecc6299db9ec823/compiletest_rs-0.7.0/src/lib.rs:105:22
stack backtrace:
   0: std::panicking::begin_panic
             at /home/joshua/rustc3/library/std/src/panicking.rs:543:12
   1: compiletest_rs::run_tests
             at /home/joshua/.local/lib/cargo/registry/src/github.com-1ecc6299db9ec823/compiletest_rs-0.7.0/src/lib.rs:105:22
   2: core::ops::function::FnOnce::call_once
   3: core::ops::function::FnOnce::call_once
             at /home/joshua/rustc3/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.


failures:
    compile_test

test result: FAILED. 0 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 8.95s

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-diagnosticsArea: Messages for errors, warnings, and lintsC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions