Repository: rust
Issue: error: internal compiler error: broken MIR in DefId
Labels: I-ICE,T-compiler,S-waiting-on-author,C-bug

<!--
Thank you for finding an Internal Compiler Error! 🧊  If possible, try to provide
a minimal verifiable example. You can read "Rust Bug Minimization Patterns" for
how to create smaller examples.

http://blog.pnkfx.org/blog/2019/11/18/rust-bug-minimization-patterns/

-->

### Code

```Rust
#[cfg(test)]
mod tests {
    use super::*;
    use db3_proto::db3_base_proto::{ChainID, ChainRole};
    use db3_proto::db3_mutation_proto::{WriteRequest, Mutation, KVPair};
    use bytes::{Bytes, BytesMut};
    use hex;
    #[test]
    fn test_sign() {
		let kp = keys().pop().unwrap();
        let kv = KVPair{
            key:"k1".as_bytes(),
            value:"value1".as_bytes()
        };
        let mutation = Mutation {
            ns: "my_twitter".as_bytes(),
            kv_pairs:vec![kv],
            nonce:1,
            chain_id:ChainID::MAIN_NET,
            chain_role:ChainID::STORAGE_SHARD_CHAIN,
        };
        let mut buf = BytesMut::with_capacity(1024 * 4);
        mutation.encode(&mut buf);
        let buf = buf.freeze();
		let signature: Secp256k1Signature = kp.sign(buf.as_ref());
        let request = WriteRequest {
            signature: signature.as_ref(),
            mutation:buf.as_ref(),
            public_key: kp.public().as_ref()
        };
        let mut buf = BytesMut::with_capacity(1024 * 4);
        let request.encode(&mut buf);
        let buf = buf.freeze();
        println!("request 0x{}",hex::encode(buf.as_ref()));
    }
}

```


### Meta
<!--
If you're using the stable version of the compiler, you should also check if the
bug also exists in the beta or nightly versions.
-->

`rustc --version --verbose`:
```
Ubuntu 18.04.6 LTS \n \l
rustc 1.65.0-nightly (750bd1a7f 2022-09-14)
binary: rustc
commit-hash: 750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c
commit-date: 2022-09-14
host: x86_64-unknown-linux-gnu
release: 1.65.0-nightly
LLVM version: 15.0.0
```

### Error output

```
error: internal compiler error: no errors encountered even though `delay_span_bug` issued

error: internal compiler error: broken MIR in DefId(0:345 ~ tower[cffd]::balance::pool::{impl#3}::build) (CanonicalUserTypeAnnotation { user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }, CanonicalVarInfo { kind: Ty(General(U0)) }, CanonicalVarInfo { kind: Ty(General(U0)) }, CanonicalVarInfo { kind: Ty(General(U0)) }], value: TypeOf(DefId(0:232 ~ tower[cffd]::balance::p2c::service::{impl#1}::new), UserSubsts { substs: [^0, ^1], user_self_ty: Some(UserSelfTy { impl_def_id: DefId(0:229 ~ tower[cffd]::balance::p2c::service::{impl#1}), self_ty: balance::p2c::service::Balance<^2, ^3> }) }) }, span: /home/parallels/.cargo/registry/src/github.com-1ecc6299db9ec823/tower-0.4.13/src/balance/pool/mod.rs:293:22: 293:34 (#0), inferred_ty: fn(std::pin::Pin<std::boxed::Box<balance::pool::PoolDiscoverer<MS, Target, Request>>>) -> balance::p2c::service::Balance<std::pin::Pin<std::boxed::Box<balance::pool::PoolDiscoverer<MS, Target, Request>>>, Request> {balance::p2c::service::Balance::<std::pin::Pin<std::boxed::Box<balance::pool::PoolDiscoverer<MS, Target, Request>>>, Request>::new} }): bad user type AscribeUserType(fn(std::pin::Pin<std::boxed::Box<balance::pool::PoolDiscoverer<MS, Target, Request>>>) -> balance::p2c::service::Balance<std::pin::Pin<std::boxed::Box<balance::pool::PoolDiscoverer<MS, Target, Request>>>, Request> {balance::p2c::service::Balance::<std::pin::Pin<std::boxed::Box<balance::pool::PoolDiscoverer<MS, Target, Request>>>, Request>::new}, DefId(0:232 ~ tower[cffd]::balance::p2c::service::{impl#1}::new) UserSubsts { substs: [_, _], user_self_ty: Some(UserSelfTy { impl_def_id: DefId(0:229 ~ tower[cffd]::balance::p2c::service::{impl#1}), self_ty: balance::p2c::service::Balance<_, _> }) }, type_of=fn(D) -> balance::p2c::service::Balance<D, Req> {balance::p2c::service::Balance::<D, Req>::new}): NoSolution
  |
  = note: delayed at compiler/rustc_borrowck/src/type_check/mod.rs:1087:25

thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1492:13
stack backtrace:
   0:     0x7ff1c21e6c20 - std::backtrace_rs::backtrace::libunwind::trace::hf9cd4c385c25a2fe
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   1:     0x7ff1c21e6c20 - std::backtrace_rs::backtrace::trace_unsynchronized::hf9a1be2df46de98c
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
   2:     0x7ff1c21e6c20 - std::sys_common::backtrace::_print_fmt::ha770a6c3890b3cde
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/sys_common/backtrace.rs:66:5
   3:     0x7ff1c21e6c20 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h7099a61d18d47f5f
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/sys_common/backtrace.rs:45:22
   4:     0x7ff1c2241aee - core::fmt::write::h34c269a5556240be
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/core/src/fmt/mod.rs:1202:17
   5:     0x7ff1c21d7835 - std::io::Write::write_fmt::h9b1d898decaac979
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/io/mod.rs:1679:15
   6:     0x7ff1c21e98d3 - std::sys_common::backtrace::_print::hb8325cbd910e0a42
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/sys_common/backtrace.rs:48:5
   7:     0x7ff1c21e98d3 - std::sys_common::backtrace::print::h52eaf8f4259fb854
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/sys_common/backtrace.rs:35:9
   8:     0x7ff1c21e98d3 - std::panicking::default_hook::{{closure}}::h38a1bd1ceb333281
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/panicking.rs:295:22
   9:     0x7ff1c21e95bf - std::panicking::default_hook::hbfa37b6c2aa83708
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/panicking.rs:314:9
  10:     0x7ff1bfa31001 - <rustc_driver[f7b5b01335fbd434]::DEFAULT_HOOK::{closure#0}::{closure#0} as core[f6f8d9be6066ab2c]::ops::function::FnOnce<(&core[f6f8d9be6066ab2c]::panic::panic_info::PanicInfo,)>>::call_once::{shim:vtable#0}
  11:     0x7ff1c21ea10d - std::panicking::rust_panic_with_hook::h6bfc21eea1a19790
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/panicking.rs:702:17
  12:     0x7ff1c0b8b141 - std[81ab5d9a96a0142e]::panicking::begin_panic::<rustc_errors[e78c9e9af74db21c]::ExplicitBug>::{closure#0}
  13:     0x7ff1c0b8ac66 - std[81ab5d9a96a0142e]::sys_common::backtrace::__rust_end_short_backtrace::<std[81ab5d9a96a0142e]::panicking::begin_panic<rustc_errors[e78c9e9af74db21c]::ExplicitBug>::{closure#0}, !>
  14:     0x7ff1c0b8a8f6 - std[81ab5d9a96a0142e]::panicking::begin_panic::<rustc_errors[e78c9e9af74db21c]::ExplicitBug>
  15:     0x7ff1c0b88446 - std[81ab5d9a96a0142e]::panic::panic_any::<rustc_errors[e78c9e9af74db21c]::ExplicitBug>
  16:     0x7ff1bf582228 - <rustc_errors[e78c9e9af74db21c]::HandlerInner as core[f6f8d9be6066ab2c]::ops::drop::Drop>::drop
  17:     0x7ff1be864b28 - core[f6f8d9be6066ab2c]::ptr::drop_in_place::<rustc_session[c3e5419825648902]::parse::ParseSess>
  18:     0x7ff1be8224e8 - <alloc[9d62437589f31483]::rc::Rc<rustc_session[c3e5419825648902]::session::Session> as core[f6f8d9be6066ab2c]::ops::drop::Drop>::drop
  19:     0x7ff1be81f4ad - core[f6f8d9be6066ab2c]::ptr::drop_in_place::<rustc_interface[5bcac5cfb78c3b1a]::interface::Compiler>
  20:     0x7ff1be81cd0c - rustc_interface[5bcac5cfb78c3b1a]::interface::create_compiler_and_run::<core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>, rustc_driver[f7b5b01335fbd434]::run_compiler::{closure#1}>
  21:     0x7ff1be81b211 - <scoped_tls[de48490ce358b7ec]::ScopedKey<rustc_span[352514dd70ceaa1d]::SessionGlobals>>::set::<rustc_interface[5bcac5cfb78c3b1a]::interface::run_compiler<core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>, rustc_driver[f7b5b01335fbd434]::run_compiler::{closure#1}>::{closure#0}, core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>>
  22:     0x7ff1be81aeff - std[81ab5d9a96a0142e]::sys_common::backtrace::__rust_begin_short_backtrace::<rustc_interface[5bcac5cfb78c3b1a]::util::run_in_thread_pool_with_globals<rustc_interface[5bcac5cfb78c3b1a]::interface::run_compiler<core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>, rustc_driver[f7b5b01335fbd434]::run_compiler::{closure#1}>::{closure#0}, core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>>::{closure#0}, core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>>
  23:     0x7ff1bf895000 - <<std[81ab5d9a96a0142e]::thread::Builder>::spawn_unchecked_<rustc_interface[5bcac5cfb78c3b1a]::util::run_in_thread_pool_with_globals<rustc_interface[5bcac5cfb78c3b1a]::interface::run_compiler<core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>, rustc_driver[f7b5b01335fbd434]::run_compiler::{closure#1}>::{closure#0}, core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>>::{closure#0}, core[f6f8d9be6066ab2c]::result::Result<(), rustc_errors[e78c9e9af74db21c]::ErrorGuaranteed>>::{closure#1} as core[f6f8d9be6066ab2c]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0}
  24:     0x7ff1c21f3ee3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h2695b43ebae659e4
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/alloc/src/boxed.rs:1940:9
  25:     0x7ff1c21f3ee3 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hf3b49b955267341c
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/alloc/src/boxed.rs:1940:9
  26:     0x7ff1c21f3ee3 - std::sys::unix::thread::Thread::new::thread_start::h2bad5ab8a769c6c8
                               at /rustc/750bd1a7ff3e010611b97ee75d30b7cbf5f3a03c/library/std/src/sys/unix/thread.rs:108:17
  27:     0x7ff1bcc366db - start_thread
                               at /build/glibc-CVJwZb/glibc-2.27/nptl/pthread_create.c:463
  28:     0x7ff1bc95f61f - clone
                               at /build/glibc-CVJwZb/glibc-2.27/misc/../sysdeps/unix/sysv/linux/x86_64/clone.S:95
  29:                0x0 - <unknown>

note: the compiler unexpectedly panicked. this is a bug.

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.65.0-nightly (750bd1a7f 2022-09-14) running on x86_64-unknown-linux-gnu

note: compiler flags: --crate-type lib -C embed-bitcode=no -C debuginfo=2

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
end of query stack
error: could not compile `tower`

```

<!--
Include a backtrace in the code block by setting `RUST_BACKTRACE=1` in your
environment. E.g. `RUST_BACKTRACE=1 cargo build`.
-->
<details><summary><strong>Backtrace</strong></summary>
<p>

```
<backtrace>
```

</p>
</details>