Skip to content

Reach unreachable code on use super::self as x; #3645

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

Closed
czipperz opened this issue Jun 23, 2019 · 0 comments · Fixed by #3646
Closed

Reach unreachable code on use super::self as x; #3645

czipperz opened this issue Jun 23, 2019 · 0 comments · Fixed by #3646
Labels
bug Panic, non-idempotency, invalid code, etc.

Comments

@czipperz
Copy link

Minimum example:

mod x {
    use super::self as x;
}

However, this does not crash

mod x {
    use super::self::z as x;
}

Backtrace:

RUST_BACKTRACE=1 cargo fmt --all
thread 'main' panicked at 'internal error: entered unreachable code', src/tools/rustfmt/src/imports.rs:453:22
stack backtrace:
   0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace
             at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39
   1: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:71
   2: std::panicking::default_hook::{{closure}}
             at src/libstd/sys_common/backtrace.rs:59
             at src/libstd/panicking.rs:197
   3: std::panicking::default_hook
             at src/libstd/panicking.rs:211
   4: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:474
   5: std::panicking::begin_panic
   6: rustfmt_nightly::imports::UseTree::normalize
   7: rustfmt_nightly::imports::UseTree::from_ast_with_normalization
   8: <core::iter::adapters::FilterMap<I,F> as core::iter::traits::iterator::Iterator>::next
   9: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
  10: rustfmt_nightly::reorder::rewrite_reorderable_items
  11: rustfmt_nightly::reorder::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_items_with_reordering
  12: rustfmt_nightly::visitor::FmtVisitor::walk_mod_items
  13: rustfmt_nightly::visitor::FmtVisitor::visit_item
  14: rustfmt_nightly::reorder::<impl rustfmt_nightly::visitor::FmtVisitor>::visit_items_with_reordering
  15: rustfmt_nightly::visitor::FmtVisitor::walk_mod_items
  16: rustfmt_nightly::visitor::FmtVisitor::format_separate_mod
  17: rustfmt_nightly::formatting::format_project
  18: scoped_tls::ScopedKey<T>::set
  19: syntax::with_globals
  20: rustfmt_nightly::Session<T>::format
  21: rustfmt::format_and_emit_report
  22: rustfmt_nightly::Session<T>::override_config
  23: rustfmt::execute
  24: rustfmt::main
  25: std::rt::lang_start::{{closure}}
  26: std::panicking::try::do_call
             at src/libstd/rt.rs:49
             at src/libstd/panicking.rs:293
  27: __rust_maybe_catch_panic
             at src/libpanic_unwind/lib.rs:85
  28: std::rt::lang_start_internal
             at src/libstd/panicking.rs:272
             at src/libstd/panic.rs:388
             at src/libstd/rt.rs:48
  29: main
  30: __libc_start_main
  31: <unknown>
@topecongiro topecongiro added the bug Panic, non-idempotency, invalid code, etc. label Jun 23, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Panic, non-idempotency, invalid code, etc.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants