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: rmeta/decoder.rs:1130: impossible case reached #71734

Closed
tmandry opened this issue May 1, 2020 · 8 comments · Fixed by #71813
Closed

ICE: rmeta/decoder.rs:1130: impossible case reached #71734

tmandry opened this issue May 1, 2020 · 8 comments · Fixed by #71813
Labels
A-metadata Area: Crate metadata C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@tmandry
Copy link
Member

tmandry commented May 1, 2020

Code

I don't have a reasonable sized reproducer yet.

Meta

rustc --version --verbose:

rustc 1.45.0-nightly (fa51f810e 2020-04-29)
binary: rustc
commit-hash: fa51f810e5b9254904b92660e7280b7d6a46f112
commit-date: 2020-04-29
host: x86_64-unknown-linux-gnu
release: 1.45.0-nightly
LLVM version: 9.0

Regression occurred between bf1f2ee..fa51f81 in 796c0ca (#67343)

Error output

error: internal compiler error: src/librustc_metadata/rmeta/decoder.rs:1130: impossible case reached

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:907:9
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.45.0-nightly (fa51f810e 2020-04-29) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z dep-info-omit-d-target -Z allow-features= -Z panic_abort_tests -C linker=/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/bin/lld -C link-arg=--sysroot=/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia -C link-arg=-L/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia/lib -C link-arg=-L/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/lib/clang/11.0.0/x86_64-fuchsia/lib -C link-arg=--pack-dyn-relocs=relr -C link-arg=-dynamic-linker=ld.so.1 -C link-arg=--icf=all -C force-frame-pointers -C debuginfo=2 -C opt-level=0 -C link-args=-zstack-size=0x200000 -C linker=/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/bin/lld -C link-arg=--sysroot=/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia -C link-arg=-L/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia/lib -C link-arg=-L/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/lib/clang/11.0.0/x86_64-fuchsia/lib -C link-arg=--pack-dyn-relocs=relr -C link-arg=-dynamic-linker=ld.so.1 -C link-arg=--icf=all -C panic=abort -C link-arg=../../out/default.zircon/user-x64-clang.shlib/obj/system/ulib/syslog/libsyslog.so.debug --crate-type bin

error: aborting due to previous error
Backtrace

error: internal compiler error: src/librustc_metadata/rmeta/decoder.rs:1130: impossible case reached

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:907:9
stack backtrace:
   0: backtrace::backtrace::libunwind::trace
             at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/libunwind.rs:86
   1: backtrace::backtrace::trace_unsynchronized
             at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.46/src/backtrace/mod.rs:66
   2: std::sys_common::backtrace::_print_fmt
             at src/libstd/sys_common/backtrace.rs:78
   3: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
             at src/libstd/sys_common/backtrace.rs:59
   4: core::fmt::write
             at src/libcore/fmt/mod.rs:1069
   5: std::io::Write::write_fmt
             at src/libstd/io/mod.rs:1532
   6: std::sys_common::backtrace::_print
             at src/libstd/sys_common/backtrace.rs:62
   7: std::sys_common::backtrace::print
             at src/libstd/sys_common/backtrace.rs:49
   8: std::panicking::default_hook::{{closure}}
             at src/libstd/panicking.rs:198
   9: std::panicking::default_hook
             at src/libstd/panicking.rs:218
  10: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
             at /mnt/code/fuchsia-rust/rust/src/liballoc/boxed.rs:1048
  11: rustc_driver::report_ice
             at src/librustc_driver/lib.rs:1157
  12: <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call
             at /mnt/code/fuchsia-rust/rust/src/liballoc/boxed.rs:1048
  13: proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/libproc_macro/bridge/client.rs:312
  14: std::panicking::rust_panic_with_hook
             at src/libstd/panicking.rs:481
  15: std::panicking::begin_panic
             at /mnt/code/fuchsia-rust/rust/src/libstd/panicking.rs:404
  16: rustc_errors::HandlerInner::bug
             at src/librustc_errors/lib.rs:907
  17: rustc_errors::Handler::bug
             at src/librustc_errors/lib.rs:659
  18: rustc_middle::util::bug::opt_span_bug_fmt::{{closure}}
             at src/librustc_middle/util/bug.rs:36
  19: rustc_middle::ty::context::tls::with_opt::{{closure}}
             at src/librustc_middle/ty/context.rs:1799
  20: rustc_middle::ty::context::tls::with_context_opt
             at src/librustc_middle/ty/context.rs:1751
  21: rustc_middle::ty::context::tls::with_opt
             at src/librustc_middle/ty/context.rs:1799
  22: rustc_middle::util::bug::opt_span_bug_fmt
             at src/librustc_middle/util/bug.rs:32
  23: rustc_middle::util::bug::bug_fmt
             at src/librustc_middle/util/bug.rs:12
  24: rustc_metadata::rmeta::decoder::<impl rustc_metadata::creader::CrateMetadataRef>::mir_const_qualif
             at src/librustc_metadata/rmeta/decoder.rs:1130
  25: rustc_metadata::rmeta::decoder::cstore_impl::provide_extern::mir_const_qualif
             at src/librustc_metadata/rmeta/decoder/cstore_impl.rs:122
  26: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_const_qualif>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
  27: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
  28: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
  29: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
  30: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
  31: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
  32: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
  33: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
  34: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
  35: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
  36: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
  37: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
  38: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
  39: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
  40: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
  41: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
  42: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
  43: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
  44: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
  45: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
  46: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
  47: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
  48: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
  49: rustc_middle::ty::query::TyCtxtAt::mir_const_qualif
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
  50: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::mir_const_qualif
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
  51: rustc_mir_build::hair::pattern::PatCtxt::lower_path
             at src/librustc_mir_build/hair/pattern/mod.rs:800
  52: rustc_mir_build::hair::pattern::PatCtxt::lower_pattern_unadjusted
             at src/librustc_mir_build/hair/pattern/mod.rs:552
  53: rustc_mir_build::hair::pattern::PatCtxt::lower_pattern
             at src/librustc_mir_build/hair/pattern/mod.rs:406
  54: rustc_mir_build::hair::pattern::Pat::from_hir
             at src/librustc_mir_build/hair/pattern/mod.rs:362
  55: rustc_mir_build::hair::cx::Cx::pattern_from_hir
             at src/librustc_mir_build/hair/cx/mod.rs:161
  56: rustc_mir_build::hair::cx::expr::convert_arm
             at src/librustc_mir_build/hair/cx/expr.rs:660
  57: rustc_mir_build::hair::cx::expr::make_mirror_unadjusted::{{closure}}
             at src/librustc_mir_build/hair/cx/expr.rs:432
  58: core::iter::adapters::map_fold::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/adapters/mod.rs:785
  59: core::iter::traits::iterator::Iterator::fold::ok::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/traits/iterator.rs:2002
  60: core::iter::traits::iterator::Iterator::try_fold
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/traits/iterator.rs:1878
  61: core::iter::traits::iterator::Iterator::fold
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/traits/iterator.rs:2005
  62: <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/adapters/mod.rs:825
  63: core::iter::traits::iterator::Iterator::for_each
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/traits/iterator.rs:658
  64: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::spec_extend
             at /mnt/code/fuchsia-rust/rust/src/liballoc/vec.rs:2116
  65: <alloc::vec::Vec<T> as alloc::vec::SpecExtend<T,I>>::from_iter
             at /mnt/code/fuchsia-rust/rust/src/liballoc/vec.rs:2096
  66: <alloc::vec::Vec<T> as core::iter::traits::collect::FromIterator<T>>::from_iter
             at /mnt/code/fuchsia-rust/rust/src/liballoc/vec.rs:1981
  67: core::iter::traits::iterator::Iterator::collect
             at /mnt/code/fuchsia-rust/rust/src/libcore/iter/traits/iterator.rs:1660
  68: rustc_mir_build::hair::cx::expr::make_mirror_unadjusted
             at src/librustc_mir_build/hair/cx/expr.rs:432
  69: rustc_mir_build::hair::cx::expr::<impl rustc_mir_build::hair::Mirror for &rustc_hir::hir::Expr>::make_mirror
             at src/librustc_mir_build/hair/cx/expr.rs:27
  70: <rustc_mir_build::hair::ExprRef as rustc_mir_build::hair::Mirror>::make_mirror
             at src/librustc_mir_build/hair/mod.rs:372
  71: rustc_mir_build::hair::cx::Cx::mirror
             at src/librustc_mir_build/hair/cx/mod.rs:104
  72: <rustc_mir_build::hair::ExprRef as rustc_mir_build::build::into::EvalInto>::eval_into
             at src/librustc_mir_build/build/into.rs:41
  73: rustc_mir_build::build::into::<impl rustc_mir_build::build::Builder>::into
             at src/librustc_mir_build/build/into.rs:30
  74: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block_stmts
             at src/librustc_mir_build/build/block.rs:182
  75: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block::{{closure}}::{{closure}}
             at src/librustc_mir_build/build/block.rs:38
  76: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
             at src/librustc_mir_build/build/scope.rs:455
  77: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block::{{closure}}
             at src/librustc_mir_build/build/block.rs:27
  78: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_opt_scope
             at src/librustc_mir_build/build/scope.rs:411
  79: rustc_mir_build::build::block::<impl rustc_mir_build::build::Builder>::ast_block
             at src/librustc_mir_build/build/block.rs:26
  80: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
             at src/librustc_mir_build/build/expr/into.rs:48
  81: <rustc_mir_build::hair::Expr as rustc_mir_build::build::into::EvalInto>::eval_into
             at src/librustc_mir_build/build/into.rs:53
  82: rustc_mir_build::build::into::<impl rustc_mir_build::build::Builder>::into
             at src/librustc_mir_build/build/into.rs:30
  83: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::expr_as_temp
             at src/librustc_mir_build/build/expr/as_temp.rs:100
  84: rustc_mir_build::build::expr::as_temp::<impl rustc_mir_build::build::Builder>::as_temp
             at src/librustc_mir_build/build/expr/as_temp.rs:25
  85: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::expr_as_operand
             at src/librustc_mir_build/build/expr/as_operand.rs:143
  86: rustc_mir_build::build::expr::as_operand::<impl rustc_mir_build::build::Builder>::as_operand
             at src/librustc_mir_build/build/expr/as_operand.rs:101
  87: rustc_mir_build::build::expr::as_rvalue::<impl rustc_mir_build::build::Builder>::expr_as_rvalue
             at src/librustc_mir_build/build/expr/as_rvalue.rs:126
  88: rustc_mir_build::build::expr::as_rvalue::<impl rustc_mir_build::build::Builder>::as_rvalue
             at src/librustc_mir_build/build/expr/as_rvalue.rs:40
  89: rustc_mir_build::build::expr::as_rvalue::<impl rustc_mir_build::build::Builder>::as_local_rvalue
             at src/librustc_mir_build/build/expr/as_rvalue.rs:26
  90: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
             at src/librustc_mir_build/build/expr/into.rs:399
  91: <rustc_mir_build::hair::ExprRef as rustc_mir_build::build::into::EvalInto>::eval_into
             at src/librustc_mir_build/build/into.rs:42
  92: rustc_mir_build::build::into::<impl rustc_mir_build::build::Builder>::into
             at src/librustc_mir_build/build/into.rs:30
  93: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr::{{closure}}
             at src/librustc_mir_build/build/expr/into.rs:45
  94: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
             at src/librustc_mir_build/build/scope.rs:455
  95: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
             at src/librustc_mir_build/build/expr/into.rs:45
  96: <rustc_mir_build::hair::ExprRef as rustc_mir_build::build::into::EvalInto>::eval_into
             at src/librustc_mir_build/build/into.rs:42
  97: rustc_mir_build::build::into::<impl rustc_mir_build::build::Builder>::into
             at src/librustc_mir_build/build/into.rs:30
  98: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr::{{closure}}
             at src/librustc_mir_build/build/expr/into.rs:45
  99: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
             at src/librustc_mir_build/build/scope.rs:455
 100: rustc_mir_build::build::expr::into::<impl rustc_mir_build::build::Builder>::into_expr
             at src/librustc_mir_build/build/expr/into.rs:45
 101: <rustc_mir_build::hair::Expr as rustc_mir_build::build::into::EvalInto>::eval_into
             at src/librustc_mir_build/build/into.rs:53
 102: rustc_mir_build::build::into::<impl rustc_mir_build::build::Builder>::into
             at src/librustc_mir_build/build/into.rs:30
 103: rustc_mir_build::build::Builder::args_and_body
             at src/librustc_mir_build/build/mod.rs:976
 104: rustc_mir_build::build::construct_fn::{{closure}}::{{closure}}::{{closure}}
             at src/librustc_mir_build/build/mod.rs:617
 105: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
             at src/librustc_mir_build/build/scope.rs:455
 106: rustc_mir_build::build::construct_fn::{{closure}}::{{closure}}
             at src/librustc_mir_build/build/mod.rs:616
 107: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_breakable_scope
             at src/librustc_mir_build/build/scope.rs:392
 108: rustc_mir_build::build::construct_fn::{{closure}}
             at src/librustc_mir_build/build/mod.rs:611
 109: rustc_mir_build::build::scope::<impl rustc_mir_build::build::Builder>::in_scope
             at src/librustc_mir_build/build/scope.rs:455
 110: rustc_mir_build::build::construct_fn
             at src/librustc_mir_build/build/mod.rs:602
 111: rustc_mir_build::build::mir_build::{{closure}}
             at src/librustc_mir_build/build/mod.rs:154
 112: rustc_infer::infer::InferCtxtBuilder::enter::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_infer/infer/mod.rs:595
 113: rustc_middle::ty::context::GlobalCtxt::enter_local::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1522
 114: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 115: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 116: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 117: rustc_middle::ty::context::GlobalCtxt::enter_local::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1522
 118: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 119: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 120: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 121: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 122: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 123: rustc_middle::ty::context::GlobalCtxt::enter_local
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1514
 124: rustc_infer::infer::InferCtxtBuilder::enter
             at /mnt/code/fuchsia-rust/rust/src/librustc_infer/infer/mod.rs:594
 125: rustc_mir_build::build::mir_build
             at src/librustc_mir_build/build/mod.rs:63
 126: rustc_mir_build::build::mir_built
             at src/librustc_mir_build/build/mod.rs:25
 127: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_built>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 128: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 129: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 130: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 131: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 132: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 133: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 134: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 135: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 136: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 137: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 138: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 139: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 140: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 141: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 142: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 143: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 144: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 145: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 146: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 147: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 148: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 149: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 150: rustc_middle::ty::query::TyCtxtAt::mir_built
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 151: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::mir_built
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 152: rustc_mir::transform::check_unsafety::unsafety_check_result
             at src/librustc_mir/transform/check_unsafety.rs:493
 153: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 154: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 155: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 156: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 157: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 158: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 159: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 160: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 161: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 162: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 163: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 164: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 165: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 166: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 167: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 168: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 169: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 170: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 171: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 172: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 173: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 174: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 175: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 176: rustc_middle::ty::query::TyCtxtAt::unsafety_check_result
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 177: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::unsafety_check_result
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 178: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
             at src/librustc_mir/transform/check_unsafety.rs:135
 179: rustc_middle::mir::visit::Visitor::super_assign
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:411
 180: rustc_middle::mir::visit::Visitor::visit_assign
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:102
 181: rustc_middle::mir::visit::Visitor::super_statement
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:346
 182: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
             at src/librustc_mir/transform/check_unsafety.rs:115
 183: rustc_middle::mir::visit::Visitor::super_basic_block_data
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:310
 184: rustc_middle::mir::visit::Visitor::visit_basic_block_data
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:84
 185: rustc_middle::mir::visit::Visitor::super_body
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:259
 186: rustc_middle::mir::visit::Visitor::visit_body
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:78
 187: rustc_mir::transform::check_unsafety::unsafety_check_result
             at src/librustc_mir/transform/check_unsafety.rs:506
 188: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 189: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 190: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 191: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 192: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 193: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 194: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 195: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 196: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 197: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 198: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 199: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 200: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 201: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 202: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 203: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 204: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 205: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 206: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 207: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 208: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 209: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 210: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 211: rustc_middle::ty::query::TyCtxtAt::unsafety_check_result
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 212: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::unsafety_check_result
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 213: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_rvalue
             at src/librustc_mir/transform/check_unsafety.rs:135
 214: rustc_middle::mir::visit::Visitor::super_assign
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:411
 215: rustc_middle::mir::visit::Visitor::visit_assign
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:102
 216: rustc_middle::mir::visit::Visitor::super_statement
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:346
 217: <rustc_mir::transform::check_unsafety::UnsafetyChecker as rustc_middle::mir::visit::Visitor>::visit_statement
             at src/librustc_mir/transform/check_unsafety.rs:115
 218: rustc_middle::mir::visit::Visitor::super_basic_block_data
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:310
 219: rustc_middle::mir::visit::Visitor::visit_basic_block_data
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:84
 220: rustc_middle::mir::visit::Visitor::super_body
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:259
 221: rustc_middle::mir::visit::Visitor::visit_body
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/mir/visit.rs:78
 222: rustc_mir::transform::check_unsafety::unsafety_check_result
             at src/librustc_mir/transform/check_unsafety.rs:506
 223: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::unsafety_check_result>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 224: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 225: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 226: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 227: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 228: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 229: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 230: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 231: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 232: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 233: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 234: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 235: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 236: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 237: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 238: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 239: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 240: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 241: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 242: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 243: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 244: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 245: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 246: rustc_middle::ty::query::TyCtxtAt::unsafety_check_result
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 247: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::unsafety_check_result
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 248: rustc_mir::transform::mir_const
             at src/librustc_mir/transform/mod.rs:218
 249: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_const>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 250: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 251: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 252: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 253: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 254: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 255: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 256: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 257: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 258: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 259: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 260: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 261: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 262: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 263: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 264: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 265: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 266: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 267: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 268: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 269: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 270: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 271: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 272: rustc_middle::ty::query::TyCtxtAt::mir_const
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 273: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::mir_const
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 274: rustc_mir::transform::mir_validated
             at src/librustc_mir/transform/mod.rs:249
 275: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_validated>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 276: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 277: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 278: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 279: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 280: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 281: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 282: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 283: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 284: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 285: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 286: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 287: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 288: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 289: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 290: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 291: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 292: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 293: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 294: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 295: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 296: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 297: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 298: rustc_middle::ty::query::TyCtxtAt::mir_validated
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 299: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::mir_validated
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 300: rustc_mir::borrow_check::mir_borrowck
             at src/librustc_mir/borrow_check/mod.rs:96
 301: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::mir_borrowck>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 302: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 303: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 304: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 305: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 306: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 307: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 308: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 309: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 310: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 311: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 312: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 313: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 314: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 315: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 316: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 317: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 318: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 319: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 320: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 321: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 322: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 323: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 324: rustc_middle::ty::query::TyCtxtAt::mir_borrowck
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 325: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::mir_borrowck
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 326: rustc_typeck::collect::type_of::type_of
             at src/librustc_typeck/collect/type_of.rs:117
 327: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::type_of>::compute
             at src/librustc_middle/ty/query/plumbing.rs:362
 328: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 329: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 330: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 331: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at src/librustc_middle/ty/query/plumbing.rs:71
 332: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at src/librustc_middle/ty/context.rs:1690
 333: rustc_middle::ty::context::tls::set_tlv
             at src/librustc_middle/ty/context.rs:1674
 334: rustc_middle::ty::context::tls::enter_context
             at src/librustc_middle/ty/context.rs:1690
 335: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at src/librustc_middle/ty/query/plumbing.rs:71
 336: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at src/librustc_middle/ty/context.rs:1778
 337: rustc_middle::ty::context::tls::with_context::{{closure}}
             at src/librustc_middle/ty/context.rs:1762
 338: rustc_middle::ty::context::tls::with_context_opt
             at src/librustc_middle/ty/context.rs:1751
 339: rustc_middle::ty::context::tls::with_context
             at src/librustc_middle/ty/context.rs:1762
 340: rustc_middle::ty::context::tls::with_related_context
             at src/librustc_middle/ty/context.rs:1775
 341: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at src/librustc_middle/ty/query/plumbing.rs:60
 342: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 343: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 344: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 345: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 346: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 347: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 348: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 349: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 350: rustc_middle::ty::query::TyCtxtAt::type_of
             at src/librustc_middle/ty/query/plumbing.rs:467
 351: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::type_of
             at src/librustc_middle/ty/query/plumbing.rs:430
 352: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type::OpaqueTypeExpander::expand_opaque_ty
             at src/librustc_middle/ty/util.rs:584
 353: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::try_expand_impl_trait_type
             at src/librustc_middle/ty/util.rs:625
 354: rustc_typeck::check::check_opaque_for_cycles
             at src/librustc_typeck/check/mod.rs:1711
 355: rustc_typeck::check::check_opaque
             at src/librustc_typeck/check/mod.rs:1626
 356: rustc_typeck::check::check_item_type
             at src/librustc_typeck/check/mod.rs:1792
 357: <rustc_typeck::check::CheckItemTypesVisitor as rustc_hir::itemlikevisit::ItemLikeVisitor>::visit_item
             at src/librustc_typeck/check/mod.rs:735
 358: rustc_middle::hir::map::Map::visit_item_likes_in_module
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/hir/map/mod.rs:475
 359: rustc_typeck::check::check_mod_item_types
             at src/librustc_typeck/check/mod.rs:747
 360: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::check_mod_item_types>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 361: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 362: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:200
 363: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:593
 364: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 365: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 366: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 367: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 368: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 369: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 370: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 371: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 372: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 373: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 374: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 375: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 376: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 377: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 378: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 379: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 380: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 381: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 382: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 383: rustc_query_system::query::plumbing::ensure_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:661
 384: rustc_middle::ty::query::TyCtxtEnsure::check_mod_item_types
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:389
 385: rustc_typeck::check_crate::{{closure}}
             at src/librustc_typeck/lib.rs:361
 386: rustc_data_structures::profiling::VerboseTimingGuard::run
             at /mnt/code/fuchsia-rust/rust/src/librustc_data_structures/profiling.rs:573
 387: rustc_session::utils::<impl rustc_session::session::Session>::time
             at /mnt/code/fuchsia-rust/rust/src/librustc_session/utils.rs:9
 388: rustc_typeck::check_crate
             at src/librustc_typeck/lib.rs:359
 389: rustc_interface::passes::analysis
             at src/librustc_interface/passes.rs:809
 390: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::analysis>::compute
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:362
 391: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:303
 392: rustc_query_system::dep_graph::graph::DepGraph<K>::with_eval_always_task
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/dep_graph/graph.rs:336
 393: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:585
 394: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 395: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 396: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 397: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 398: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:71
 399: rustc_middle::ty::context::tls::with_related_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1778
 400: rustc_middle::ty::context::tls::with_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 401: rustc_middle::ty::context::tls::with_context_opt
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1751
 402: rustc_middle::ty::context::tls::with_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1762
 403: rustc_middle::ty::context::tls::with_related_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1775
 404: rustc_middle::ty::query::plumbing::<impl rustc_query_system::query::QueryContext for rustc_middle::ty::context::TyCtxt>::start_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:60
 405: rustc_query_system::query::plumbing::force_query_with_job::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:583
 406: rustc_query_system::query::plumbing::with_diagnostics
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:293
 407: rustc_query_system::query::plumbing::force_query_with_job
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:582
 408: rustc_query_system::query::plumbing::try_execute_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:410
 409: rustc_query_system::query::plumbing::get_query::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:627
 410: <rustc_query_system::query::caches::DefaultCache<K,V> as rustc_query_system::query::caches::QueryCache>::lookup
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/caches.rs:91
 411: rustc_query_system::query::plumbing::try_get_cached
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:368
 412: rustc_query_system::query::plumbing::get_query
             at /mnt/code/fuchsia-rust/rust/src/librustc_query_system/query/plumbing.rs:619
 413: rustc_middle::ty::query::TyCtxtAt::analysis
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:467
 414: rustc_middle::ty::query::<impl rustc_middle::ty::context::TyCtxt>::analysis
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/query/plumbing.rs:430
 415: rustc_driver::run_compiler::{{closure}}::{{closure}}::{{closure}}
             at src/librustc_driver/lib.rs:383
 416: rustc_middle::ty::context::tls::enter_global::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1713
 417: rustc_middle::ty::context::tls::enter_context::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 418: rustc_middle::ty::context::tls::set_tlv
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1674
 419: rustc_middle::ty::context::tls::enter_context
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1690
 420: rustc_middle::ty::context::tls::enter_global
             at /mnt/code/fuchsia-rust/rust/src/librustc_middle/ty/context.rs:1713
 421: rustc_interface::passes::QueryContext::enter
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/passes.rs:710
 422: rustc_driver::run_compiler::{{closure}}::{{closure}}
             at src/librustc_driver/lib.rs:383
 423: rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/queries.rs:385
 424: rustc_driver::run_compiler::{{closure}}
             at src/librustc_driver/lib.rs:283
 425: rustc_interface::interface::run_compiler_in_existing_thread_pool
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/interface.rs:199
 426: rustc_interface::interface::run_compiler::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/interface.rs:213
 427: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/util.rs:152
 428: scoped_tls::ScopedKey<T>::set
             at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 429: rustc_interface::util::spawn_thread_pool::{{closure}}::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/util.rs:148
 430: scoped_tls::ScopedKey<T>::set
             at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 431: rustc_ast::attr::with_globals::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_ast/attr/mod.rs:44
 432: scoped_tls::ScopedKey<T>::set
             at /usr/local/google/home/tmandry/.cargo/registry/src/github.com-1ecc6299db9ec823/scoped-tls-1.0.0/src/lib.rs:137
 433: rustc_ast::attr::with_globals
             at /mnt/code/fuchsia-rust/rust/src/librustc_ast/attr/mod.rs:44
 434: rustc_interface::util::spawn_thread_pool::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/util.rs:147
 435: rustc_interface::util::scoped_thread::{{closure}}
             at /mnt/code/fuchsia-rust/rust/src/librustc_interface/util.rs:122
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.45.0-nightly (fa51f810e 2020-04-29) running on x86_64-unknown-linux-gnu

note: compiler flags: -Z dep-info-omit-d-target -Z allow-features= -Z panic_abort_tests -C linker=/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/bin/lld -C link-arg=--sysroot=/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia -C link-arg=-L/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia/lib -C link-arg=-L/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/lib/clang/11.0.0/x86_64-fuchsia/lib -C link-arg=--pack-dyn-relocs=relr -C link-arg=-dynamic-linker=ld.so.1 -C link-arg=--icf=all -C force-frame-pointers -C debuginfo=2 -C opt-level=0 -C link-args=-zstack-size=0x200000 -C linker=/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/bin/lld -C link-arg=--sysroot=/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia -C link-arg=-L/mnt/code/fuchsia2/out/default/gen/build/config/fuchsia/lib -C link-arg=-L/mnt/code/fuchsia2/prebuilt/third_party/clang/linux-x64/lib/clang/11.0.0/x86_64-fuchsia/lib -C link-arg=--pack-dyn-relocs=relr -C link-arg=-dynamic-linker=ld.so.1 -C link-arg=--icf=all -C panic=abort -C link-arg=../../out/default.zircon/user-x64-clang.shlib/obj/system/ulib/syslog/libsyslog.so.debug --crate-type bin

query stack during panic:
#0 [mir_const_qualif] const checking `fidl::endpoints::ServiceMarker::NAME`
#1 [mir_built] building MIR for
#2 [unsafety_check_result] unsafety-checking `tests::display_tests::test_display_failure::func::{{closure}}#0::{{closure}}#0`
#3 [unsafety_check_result] unsafety-checking `tests::display_tests::test_display_failure::func::{{closure}}#0`
#4 [unsafety_check_result] unsafety-checking `tests::display_tests::test_display_failure::func`
#5 [mir_const] processing `tests::display_tests::test_display_failure::func`
#6 [mir_validated] processing `tests::display_tests::test_display_failure::func`
#7 [mir_borrowck] borrow-checking `tests::display_tests::test_display_failure::func`
#8 [type_of] processing `tests::display_tests::test_display_failure::func::{{opaque}}#0`
#9 [check_mod_item_types] checking item types in module `tests::display_tests`
#10 [analysis] running analysis passes on this crate
end of query stack
error: aborting due to previous error

@tmandry tmandry added I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. C-bug Category: This is a bug. labels May 1, 2020
@jonas-schievink jonas-schievink added A-metadata Area: Crate metadata E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc labels May 1, 2020
@tmandry
Copy link
Member Author

tmandry commented May 1, 2020

Updated the issue description with a complete backtrace that has full line info (435 frames deep!)

@tmandry
Copy link
Member Author

tmandry commented May 2, 2020

Update: I bisected this to 796c0ca (#67343)

cc @ecstatic-morse

@jonas-schievink jonas-schievink removed the E-needs-bisection Call for participation: This issue needs bisection: https://github.com/rust-lang/cargo-bisect-rustc label May 2, 2020
@tmandry
Copy link
Member Author

tmandry commented May 2, 2020

@ecstatic-morse, it looks like this match needs to be updated somehow:

fn mir_const_qualif(&self, id: DefIndex) -> mir::ConstQualifs {
match self.kind(id) {
EntryKind::Const(qualif, _)
| EntryKind::AssocConst(
AssocContainer::ImplDefault | AssocContainer::ImplFinal,
qualif,
_,
) => qualif,
_ => bug!(),
}
}

Does this bug report contain enough information to understand the problem, or do you need an MCVE?

@ecstatic-morse
Copy link
Contributor

Could you reproduce but debug print the the scrutinee in the bug arm?

@ecstatic-morse
Copy link
Contributor

ecstatic-morse commented May 2, 2020

I'm surprised since we should return before calling mir_const_qualif for all other types.

let (def_id, is_associated_const) = match res {
Res::Def(DefKind::Const, def_id) => (def_id, false),
Res::Def(DefKind::AssocConst, def_id) => (def_id, true),
_ => return pat_from_kind(self.lower_variant_or_leaf(res, id, span, ty, vec![])),
};

It must be one of the AssocContainer::Trait* variants. That means we're using the DefId of the associated const definition instead of the declaration. Maybe a defaulted associated const? I dunno.

@tmandry
Copy link
Member Author

tmandry commented May 2, 2020

Indeed, here's the source for the item being checked (specifically, NAME):

  pub trait ServiceMarker: Sized + Send + Sync + 'static {
      /// The type of the structure against which FIDL requests are made.
      /// Queries made against the proxy are sent to the paired `ServerEnd`.
      type Proxy: Proxy<Service = Self>;

      /// The type of the stream of requests coming into a server.
      type RequestStream: RequestStream<Service = Self>;

      /// The name of the service suitable for debug purposes.
      ///
      /// This will be removed-- users should switch to either
      /// `DEBUG_NAME` or `DiscoverableService::NAME`.
      const NAME: &'static str = Self::DEBUG_NAME;

      /// The name of the service suitable for debug purposes.
      ///
      /// For discoverable services, this should be identical to
      /// `<Self as DiscoverableService>::NAME`.
      const DEBUG_NAME: &'static str;
  }

@ecstatic-morse
Copy link
Contributor

ecstatic-morse commented May 2, 2020

Ah okay. We should already be encoding the ConstQualifs for associated type defaults. If so, just adding an | AssocContainer::TraitDefault would resolve the issue. I think I can synthesize a test case from here though, so don't worry about reducing further. Thanks for the help!

@tmandry
Copy link
Member Author

tmandry commented May 2, 2020

No problem! Since I'd kicked this off already, here's the debug print:

AssocConst(TraitWithDefault, ConstQualifs { has_mut_interior: false, needs_drop: false, custom_eq: false }, Lazy { position: 222765, meta: (), _marker: PhantomData }

ecstatic-morse added a commit to ecstatic-morse/rust that referenced this issue May 2, 2020
Dylan-DPC-zz pushed a commit to Dylan-DPC-zz/rust that referenced this issue May 3, 2020
Decode qualifs for associated const defaults

Fixes rust-lang#71734.

We encode qualifs for associated constants, but never expected to decode the qualifs for defaulted associated consts. Fix this, and test that associated const defaults have the correct qualifs cross-crate.

r? @tmandry
@bors bors closed this as completed in e48a7b8 May 3, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-metadata Area: Crate metadata C-bug Category: This is a bug. E-needs-mcve Call for participation: This issue has a repro, but needs a Minimal Complete and Verifiable Example I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️ T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants