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: Found unstable fingerprints for mir_built #107665

Open
RonitNath opened this issue Feb 4, 2023 · 5 comments
Open

ICE: Found unstable fingerprints for mir_built #107665

RonitNath opened this issue Feb 4, 2023 · 5 comments
Labels
C-bug Category: This is a bug. 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

@RonitNath
Copy link

Code

A little backstory: this issue ended up fixing itself while I was attempting minimization, so I'm not sure if this bug report is still useful, as I don't know how to replicate the error anymore. I saved a commit when I found the error, but even reverting to it doesn't cause this bug to pop up again. The command used to test was either cargo test or cargo test --bin server my_fn.

At the same time, this was an ICE, so I believe it may still be worth reporting.

What ended up fixing things was turning use super::* to use super::{only_the_imports_I_need} so I believe there was something that super::* was bringing in that was breaking things. Hereafter, when I say "accidentally fixed the issue" I'm referring to this fixing of imports.

In practice, this is what I was testing (with identifiying information obfuscated):

#[tokio::test]
async fn my_fn() {
    let uid = PERSON_UID;
    let org_id = OID(5555555);
    let result = org::my_fn(uid, org_id).await;
    assert!(result.is_ok());
}

Where org was a module in my project. While minimizing, I brought all the non-external code into that one function my_fn, and still received the error. I'm not including it all since I also found that only this test also caused the error:

fn it_works() {
    assert_eq!(2 + 2, 4);
}

I'm including the former still it gives some context but because I believe this was caused by something in super::* I would ideally submit literally the entire program ---- but since "literally the entire program" is no longer causing the bug to happen for me, I'm not sure what to do. (Literally the entire program in the sense that if I run cargo test now, with the git-reverted version of my program, I don't get the same error again.)

I was still able to test the three main channels before accidentally fixing this though:

Meta

rustc --version --verbose:

rustc 1.66.1 (90743e729 2023-01-10)
binary: rustc
commit-hash: 90743e7298aca107ddaa0c202a4d3604e29bfeb6
commit-date: 2023-01-10
host: x86_64-pc-windows-msvc
release: 1.66.1
LLVM version: 15.0.2

Since this section also asked about the nightly and beta versions, I found the following behavior for both of them:
cargo test passes both tests I have, but cargo test -- --my_fn returns:

error: Unrecognized option: 'my_fn'
error: test failed, to rerun pass `--bin server`

So when I then use cargo test --bin server --my_fn the test passes fine.

Nightly version:

rustc --version --verbose
rustc 1.68.0-nightly (3020239de 2023-01-09)
binary: rustc
commit-hash: 3020239de947ec52677e9b4e853a6a9fc073d1f9
commit-date: 2023-01-09
host: x86_64-pc-windows-msvc
release: 1.68.0-nightly
LLVM version: 15.0.6

Beta version:

rustc --version --verbose
rustc 1.68.0-beta.2 (10b73bf73 2023-02-01)
binary: rustc
commit-hash: 10b73bf73a6b770cd92ad8ff538173bc3298411c
commit-date: 2023-02-01
host: x86_64-pc-windows-msvc
release: 1.68.0-beta.2
LLVM version: 15.0.6

For the record, cargo test --bin server my_fn gives what looks like the same error (as cargo test) on stable. After I accidentally fixed the issue, all three versions are not showing the error. (This was before I accidentally fixed the error)

Error output

error: internal compiler error: encountered incremental compilation error with mir_built(928f9b8b18a387f3-3f37f3ec84c3dacd)
  |
  = help: This is a known issue with the compiler. Run `cargo clean -p server` or `cargo clean` to allow your project to compile
  = note: Please follow the instructions below to create a bug report with the provided information
  = note: See <https://github.com/rust-lang/rust/issues/84970> for more information

thread 'rustc' panicked at 'Found unstable fingerprints for mir_built(928f9b8b18a387f3-3f37f3ec84c3dacd): Steal { value: RwLock(RefCell { value: Some(Body { basic_blocks: BasicBlocks { basic_blocks: [BasicBlockData { statements: [StorageLive(_1), StorageLive(_2), _2 = [generator@src\tests.rs:9:26: 14:2 (#0)]], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] }, kind: _1 = std::future::from_generator::<[static generator@src\tests.rs:9:26: 14:2]>(move _2) -> [return: bb1, 
unwind: bb25] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_2), FakeRead(ForLet(None), _1), StorageLive(_3), _3 = move _1, FakeRead(ForLet(None), _3), StorageLive(_4), StorageLive(_5), _5 = &mut _3], terminator: Some(Terminator { source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:13: 133:65 (#15), scope: scope[5] }, kind: _4 = Pin::<&mut impl Future<Output = ()>>::new_unchecked(move _5) -> [return: bb2, unwind: bb23] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_5), FakeRead(ForLet(None), _4), StorageLive(_6), StorageLive(_7), _7 = move _4, _6 = move _7 as std::pin::Pin<&mut dyn std::future::Future<Output = ()>> (Pointer(Unsize)), StorageDead(_7), FakeRead(ForLet(None), _6), AscribeUserType(_6, o, UserTypeProjection { base: UserType(2), projs: [] }), StorageLive(_9), StorageLive(_10), StorageLive(_11), StorageLive(_12), StorageLive(_13), StorageLive(_14), StorageLive(_15)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:11 (#0), scope: scope[7] }, kind: _15 = tokio::runtime::Builder::new_current_thread() -> [return: bb3, unwind: bb23] }), is_cleanup: false }, BasicBlockData { statements: [_14 = &mut _15], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _13 = tokio::runtime::Builder::enable_all(move _14) -> [return: bb4, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [_12 = &mut (*_13), StorageDead(_14)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _11 = tokio::runtime::Builder::build(move _12) -> [return: bb5, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_12), StorageLive(_16), StorageLive(_17), _17 = const "Failed building the Runtime", _16 = &(*_17)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _10 = std::result::Result::<Runtime, std::io::Error>::expect(move _11, move _16) -> [return: bb6, unwind: bb21] }), is_cleanup: false }, BasicBlockData { statements: [_9 = &_10, StorageDead(_16), StorageDead(_11), StorageLive(_18), _18 = move _6], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _0 = Runtime::block_on::<Pin<&mut dyn Future<Output = ()>>>(move _9, move _18) -> [return: bb7, unwind: bb20] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_18), StorageDead(_9)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: goto -> bb14 }), is_cleanup: false }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_10) -> [return: bb9, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_17)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_15) -> [return: bb10, unwind: bb23] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_15), StorageDead(_13), StorageDead(_10)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: unreachable }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_6), StorageDead(_4)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[1] }, kind: drop(_3) -> [return: bb12, unwind: bb24] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_3)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[0] }, kind: drop(_1) -> [return: bb13, unwind: bb26] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_1)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:2: 14:2 (#0), scope: scope[0] }, kind: goto -> bb19 }), is_cleanup: false }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_10) -> [return: bb15, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_17)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_15) -> [return: bb16, unwind: bb23] }), is_cleanup: false }, BasicBlockData 
{ statements: [StorageDead(_15), StorageDead(_13), StorageDead(_10), StorageDead(_6), StorageDead(_4)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[1] }, kind: drop(_3) -> [return: bb17, unwind: bb24] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_3)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[0] }, kind: drop(_1) -> [return: bb18, unwind: bb26] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_1)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:2: 14:2 (#0), scope: scope[0] }, kind: goto -> bb19 }), is_cleanup: 
false }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:2: 14:2 (#0), scope: scope[0] }, kind: return }), is_cleanup: false }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_10) -> 
bb22 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_11) -> bb22 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_15) -> bb23 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[1] }, kind: drop(_3) -> bb24 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[0] }, kind: drop(_1) -> bb26 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:8:14: 8:15 (#10), scope: scope[0] }, kind: drop(_2) -> bb26 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:9:7: 14:2 (#0), scope: scope[0] }, kind: resume }), is_cleanup: true }], predecessor_cache: PredecessorCache { cache: OnceCell(Uninit) }, switch_source_cache: SwitchSourceCache { cache: OnceCell(Uninit) }, is_cyclic: GraphIsCyclicCache { cache: OnceCell(Uninit) }, postorder_cache: PostorderCache { cache: OnceCell(Uninit) } 
}, phase: Built, pass_count: 1, source: MirSource { instance: Item(WithOptConstParam { did: DefId(0:123 ~ server[1118]::tests::add_signatory#1), const_param_did: None }), promoted: None }, source_scopes: [SourceScopeData { span: src\tests.rs:9:7: 14:2 (#0), parent_scope: None, inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[0]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[1]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[2]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[2]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 109 }, safety: Safe }) }, SourceScopeData { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:22: 134:10 (#15), parent_scope: Some(scope[4]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 109 }, safety: ExplicitUnsafe(HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 107 }) }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[3]), inlined: None, inlined_parent_scope: 
None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, 
SourceScopeData { span: src\tests.rs:13:28: 13:29 (#0), parent_scope: Some(scope[6]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 153 }, safety: Safe }) }], generator: None, local_decls: [LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: (), user_ty: None, source_info: SourceInfo { span: src\tests.rs:9:26: 9:26 (#0), scope: scope[0] } }, LocalDecl { mutability: Not, local_info: Some(User(Set(Var(VarBindingForm { binding_mode: BindByValue(Not), opt_ty_info: None, opt_match_place: Some((None, src\tests.rs:8:1: 8:15 (#10))), pat_span: src\tests.rs:8:1: 8:15 (#10) })))), internal: false, is_block_tail: None, ty: impl std::future::Future<Output = ()>, user_ty: None, source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: [static generator@src\tests.rs:9:26: 14:2], user_ty: None, source_info: SourceInfo { span: src\tests.rs:9:26: 14:2 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: Some(User(Set(Var(VarBindingForm { 
binding_mode: BindByValue(Mut), opt_ty_info: None, opt_match_place: Some((None, C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:128:22: 128:24 (#15))), pat_span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:128:13: 128:19 (#15) })))), internal: false, is_block_tail: None, ty: impl std::future::Future<Output = ()>, user_ty: None, source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:128:13: 128:19 (#15), scope: scope[1] } }, LocalDecl { mutability: Mut, local_info: Some(User(Set(Var(VarBindingForm { binding_mode: BindByValue(Mut), opt_ty_info: None, opt_match_place: Some((None, C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:22: 134:10 (#15))), pat_span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:13: 132:19 (#15) })))), internal: false, is_block_tail: None, ty: std::pin::Pin<&mut impl std::future::Future<Output = ()>>, user_ty: None, source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:13: 132:19 (#15), scope: scope[4] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: Some(BlockTailInfo { tail_result_is_ignored: false, span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:13: 133:65 (#15) }), ty: &mut impl std::future::Future<Output = ()>, user_ty: None, source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:57: 133:64 (#15), scope: scope[0] } }, LocalDecl { mutability: Not, local_info: Some(User(Set(Var(VarBindingForm { binding_mode: BindByValue(Not), opt_ty_info: None, opt_match_place: Some((None, src\tests.rs:8:1: 8:15 (#10))), pat_span: src\tests.rs:8:1: 8:15 (#10) })))), internal: false, is_block_tail: None, ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>>, user_ty: Some(UserTypeProjections { contents: [(UserTypeProjection { base: UserType(1), projs: [] }, src\tests.rs:8:1: 8:15 (#10))] }), source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[3] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: std::pin::Pin<&mut impl std::future::Future<Output = ()>>, user_ty: None, source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: Some(BlockTailInfo { tail_result_is_ignored: true, span: src\tests.rs:13:28: 13:29 (#0) }), ty: !, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[0] } 
}, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: &tokio::runtime::Runtime, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Not, local_info: None, internal: false, is_block_tail: None, ty: tokio::runtime::Runtime, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: std::result::Result<tokio::runtime::Runtime, std::io::Error>, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: &mut tokio::runtime::Builder, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: &mut tokio::runtime::Builder, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: &mut tokio::runtime::Builder, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: tokio::runtime::Builder, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:11 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: &str, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Not, local_info: None, internal: false, is_block_tail: None, ty: &str, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>>, user_ty: None, source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] } }], user_type_annotations: [CanonicalUserTypeAnnotation { user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }, CanonicalVarInfo { kind: Ty(General(U0)) }], value: TypeOf(DefId(2:9706 ~ core[a1be]::pin::{impl#6}::new_unchecked), UserSubsts { substs: [^0], user_self_ty: Some(UserSelfTy { impl_def_id: DefId(2:9704 ~ core[a1be]::pin::{impl#6}), self_ty: std::pin::Pin<^1> }) }) }, span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:13: 133:56 (#15), inferred_ty: unsafe fn(&mut impl std::future::Future<Output = ()>) -> std::pin::Pin<&mut impl std::future::Future<Output = ()>> {std::pin::Pin::<&mut impl std::future::Future<Output = ()>>::new_unchecked} }, CanonicalUserTypeAnnotation { user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(std::pin::Pin<&mut dyn std::future::Future<Output = ()>>) }, span: src\tests.rs:8:1: 8:15 (#10), inferred_ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>> }, CanonicalUserTypeAnnotation { user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(std::pin::Pin<&mut dyn std::future::Future<Output = ()>>) }, span: src\tests.rs:8:1: 8:15 (#10), inferred_ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>> }], arg_count: 0, spread_arg: None, var_debug_info: [VarDebugInfo { name: "body", source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[1] }, value: _1 }, VarDebugInfo { name: "body", source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:128:13: 128:19 (#15), scope: scope[2] }, value: _3 }, VarDebugInfo { name: "body", source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:13: 132:19 (#15), scope: scope[3] }, value: _4 }, VarDebugInfo { name: "body", source_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[6] }, value: _6 }], span: src\tests.rs:9:7: 14:2 (#0), required_consts: [], is_polymorphic: false, tainted_by_errors: None }) }) }', compiler\rustc_query_system\src\query\plumbing.rs:658:9
stack backtrace:
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

error: internal compiler error: unexpected panic

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.66.1 (90743e729 2023-01-10) running on x86_64-pc-windows-msvc

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [mir_built] building MIR for `tests::add_signatory`
#1 [mir_const] preparing `tests::add_signatory` for borrow checking
#2 [mir_promoted] processing MIR for `tests::add_signatory`
#3 [mir_borrowck] borrow-checking `tests::add_signatory`
#4 [mir_drops_elaborated_and_const_checked] elaborating drops for `tests::add_signatory`
#5 [optimized_mir] optimizing MIR for `tests::add_signatory`
#6 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
Backtrace Full

thread 'rustc' panicked at 'Found unstable fingerprints for mir_built(928f9b8b18a387f3-3f37f3ec84c3dacd): Steal { value: RwL
ock(RefCell { value: Some(Body { basic_blocks: BasicBlocks { basic_blocks: [BasicBlockData { statements: [StorageLive(_1), S
torageLive(_2), _2 = [generator@src\tests.rs:9:26: 14:2 (#0)]], terminator: Some(Terminator { source_info: SourceInfo { span
: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] }, kind: _1 = std::future::from_generator::<[static generator@src\tests.rs:9
:26: 14:2]>(move _2) -> [return: bb1, unwind: bb25] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_2),
FakeRead(ForLet(None), _1), StorageLive(_3), _3 = move _1, FakeRead(ForLet(None), _3), StorageLive(_4), StorageLive(_5), _5
= &mut _3], terminator: Some(Terminator { source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc
6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:13: 133:65 (#15), scope: scope[5] }, kind: _4 = Pin::<&mut impl Future<Outpu
t = ()>>::new_unchecked(move _5) -> [return: bb2, unwind: bb23] }), is_cleanup: false }, BasicBlockData { statements: [Stora
geDead(_5), FakeRead(ForLet(None), _4), StorageLive(_6), StorageLive(_7), _7 = move _4, _6 = move _7 as std::pin::Pin<&mut d
yn std::future::Future<Output = ()>> (Pointer(Unsize)), StorageDead(_7), FakeRead(ForLet(None), _6), AscribeUserType(_6, o,
UserTypeProjection { base: UserType(2), projs: [] }), StorageLive(_9), StorageLive(_10), StorageLive(_11), StorageLive(_12),
 StorageLive(_13), StorageLive(_14), StorageLive(_15)], terminator: Some(Terminator { source_info: SourceInfo { span: src\te
sts.rs:13:5: 13:11 (#0), scope: scope[7] }, kind: _15 = tokio::runtime::Builder::new_current_thread() -> [return: bb3, unwin
d: bb23] }), is_cleanup: false }, BasicBlockData { statements: [_14 = &mut _15], terminator: Some(Terminator { source_info:
SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _13 = tokio::runtime::Builder::enable_all(move _1
4) -> [return: bb4, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [_12 = &mut (*_13), StorageDead(_14)
], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _11
 = tokio::runtime::Builder::build(move _12) -> [return: bb5, unwind: bb22] }), is_cleanup: false }, BasicBlockData { stateme
nts: [StorageDead(_12), StorageLive(_16), StorageLive(_17), _17 = const "Failed building the Runtime", _16 = &(*_17)], termi
nator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _10 = std::
result::Result::<Runtime, std::io::Error>::expect(move _11, move _16) -> [return: bb6, unwind: bb21] }), is_cleanup: false }
, BasicBlockData { statements: [_9 = &_10, StorageDead(_16), StorageDead(_11), StorageLive(_18), _18 = move _6], terminator:
 Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[7] }, kind: _0 = Runtime::blo
ck_on::<Pin<&mut dyn Future<Output = ()>>>(move _9, move _18) -> [return: bb7, unwind: bb20] }), is_cleanup: false }, BasicB
lockData { statements: [StorageDead(_18), StorageDead(_9)], terminator: Some(Terminator { source_info: SourceInfo { span: sr
c\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: goto -> bb14 }), is_cleanup: false }, BasicBlockData { statements: []
, terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: dro
p(_10) -> [return: bb9, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_17)], terminator:
Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_15) -> [ret
urn: bb10, unwind: bb23] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_15), StorageDead(_13), StorageD
ead(_10)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] },
kind: unreachable }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_6), StorageDead(_4)], terminator: Some
(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[1] }, kind: drop(_3) -> [return: bb
12, unwind: bb24] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_3)], terminator: Some(Terminator { sou
rce_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[0] }, kind: drop(_1) -> [return: bb13, unwind: bb26]
 }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_1)], terminator: Some(Terminator { source_info: SourceI
nfo { span: src\tests.rs:14:2: 14:2 (#0), scope: scope[0] }, kind: goto -> bb19 }), is_cleanup: false }, BasicBlockData { st
atements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7]
}, kind: drop(_10) -> [return: bb15, unwind: bb22] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_17)],
 terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop
(_15) -> [return: bb16, unwind: bb23] }), is_cleanup: false }, BasicBlockData { statements: [StorageDead(_15), StorageDead(_
13), StorageDead(_10), StorageDead(_6), StorageDead(_4)], terminator: Some(Terminator { source_info: SourceInfo { span: src\
tests.rs:14:1: 14:2 (#0), scope: scope[1] }, kind: drop(_3) -> [return: bb17, unwind: bb24] }), is_cleanup: false }, BasicBl
ockData { statements: [StorageDead(_3)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14
:2 (#0), scope: scope[0] }, kind: drop(_1) -> [return: bb18, unwind: bb26] }), is_cleanup: false }, BasicBlockData { stateme
nts: [StorageDead(_1)], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:14:2: 14:2 (#0), scope: s
cope[0] }, kind: goto -> bb19 }), is_cleanup: false }, BasicBlockData { statements: [], terminator: Some(Terminator { source
_info: SourceInfo { span: src\tests.rs:14:2: 14:2 (#0), scope: scope[0] }, kind: return }), is_cleanup: false }, BasicBlockD
ata { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: s
cope[7] }, kind: drop(_10) -> bb22 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { so
urce_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[7] }, kind: drop(_11) -> bb22 }), is_cleanup: tru
e }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:13:28: 13:2
9 (#0), scope: scope[7] }, kind: drop(_15) -> bb23 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some
(Terminator { source_info: SourceInfo { span: src\tests.rs:14:1: 14:2 (#0), scope: scope[1] }, kind: drop(_3) -> bb24 }), is
_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span: src\tests.r
s:14:1: 14:2 (#0), scope: scope[0] }, kind: drop(_1) -> bb26 }), is_cleanup: true }, BasicBlockData { statements: [], termin
ator: Some(Terminator { source_info: SourceInfo { span: src\tests.rs:8:14: 8:15 (#10), scope: scope[0] }, kind: drop(_2) ->
bb26 }), is_cleanup: true }, BasicBlockData { statements: [], terminator: Some(Terminator { source_info: SourceInfo { span:
src\tests.rs:9:7: 14:2 (#0), scope: scope[0] }, kind: resume }), is_cleanup: true }], predecessor_cache: PredecessorCache {
cache: OnceCell(Uninit) }, switch_source_cache: SwitchSourceCache { cache: OnceCell(Uninit) }, is_cyclic: GraphIsCyclicCache
 { cache: OnceCell(Uninit) }, postorder_cache: PostorderCache { cache: OnceCell(Uninit) } }, phase: Built, pass_count: 1, so
urce: MirSource { instance: Item(WithOptConstParam { did: DefId(0:123 ~ server[1118]::tests::add_signatory#1), const_param_d
id: None }), promoted: None }, source_scopes: [SourceScopeData { span: src\tests.rs:9:7: 14:2 (#0), parent_scope: None, inli
ned: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: De
fId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span: src\tests.rs:
9:26: 14:2 (#0), parent_scope: Some(scope[0]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalDa
ta { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safet
y: Safe }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[1]), inlined: None, inlined_par
ent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[111
8]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), paren
t_scope: Some(scope[2]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId
{ owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceSc
opeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(scope[2]), inlined: None, inlined_parent_scope: None, local
_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signato
ry#1) }, local_id: 109 }, safety: Safe }) }, SourceScopeData { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299d
b9ec823\tokio-1.25.0\src\macros\pin.rs:132:22: 134:10 (#15), parent_scope: Some(scope[4]), inlined: None, inlined_parent_sco
pe: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tes
ts::add_signatory#1) }, local_id: 109 }, safety: ExplicitUnsafe(HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]:
:tests::add_signatory#1) }, local_id: 107 }) }) }, SourceScopeData { span: src\tests.rs:9:26: 14:2 (#0), parent_scope: Some(
scope[3]), inlined: None, inlined_parent_scope: None, local_data: Set(SourceScopeLocalData { lint_root: HirId { owner: Owner
Id { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, local_id: 0 }, safety: Safe }) }, SourceScopeData { span
: src\tests.rs:13:28: 13:29 (#0), parent_scope: Some(scope[6]), inlined: None, inlined_parent_scope: None, local_data: Set(S
ourceScopeLocalData { lint_root: HirId { owner: OwnerId { def_id: DefId(0:123 ~ server[1118]::tests::add_signatory#1) }, loc
al_id: 153 }, safety: Safe }) }], generator: None, local_decls: [LocalDecl { mutability: Mut, local_info: None, internal: fa
lse, is_block_tail: None, ty: (), user_ty: None, source_info: SourceInfo { span: src\tests.rs:9:26: 9:26 (#0), scope: scope[
0] } }, LocalDecl { mutability: Not, local_info: Some(User(Set(Var(VarBindingForm { binding_mode: BindByValue(Not), opt_ty_i
nfo: None, opt_match_place: Some((None, src\tests.rs:8:1: 8:15 (#10))), pat_span: src\tests.rs:8:1: 8:15 (#10) })))), intern
al: false, is_block_tail: None, ty: impl std::future::Future<Output = ()>, user_ty: None, source_info: SourceInfo { span: sr
c\tests.rs:8:1: 8:15 (#10), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_ta
il: None, ty: [static generator@src\tests.rs:9:26: 14:2], user_ty: None, source_info: SourceInfo { span: src\tests.rs:9:26:
14:2 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: Some(User(Set(Var(VarBindingForm { binding_mode: Bi
ndByValue(Mut), opt_ty_info: None, opt_match_place: Some((None, C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec8
23\tokio-1.25.0\src\macros\pin.rs:128:22: 128:24 (#15))), pat_span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db
9ec823\tokio-1.25.0\src\macros\pin.rs:128:13: 128:19 (#15) })))), internal: false, is_block_tail: None, ty: impl std::future
::Future<Output = ()>, user_ty: None, source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299
db9ec823\tokio-1.25.0\src\macros\pin.rs:128:13: 128:19 (#15), scope: scope[1] } }, LocalDecl { mutability: Mut, local_info:
Some(User(Set(Var(VarBindingForm { binding_mode: BindByValue(Mut), opt_ty_info: None, opt_match_place: Some((None, C:\Users\
ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:22: 134:10 (#15))), pat_span: C:\Us
ers\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:13: 132:19 (#15) })))), interna
l: false, is_block_tail: None, ty: std::pin::Pin<&mut impl std::future::Future<Output = ()>>, user_ty: None, source_info: So
urceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:132:13: 132:1
9 (#15), scope: scope[4] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: Some(BlockTailI
nfo { tail_result_is_ignored: false, span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\m
acros\pin.rs:133:13: 133:65 (#15) }), ty: &mut impl std::future::Future<Output = ()>, user_ty: None, source_info: SourceInfo
 { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:57: 133:64 (#15),
 scope: scope[0] } }, LocalDecl { mutability: Not, local_info: Some(User(Set(Var(VarBindingForm { binding_mode: BindByValue(
Not), opt_ty_info: None, opt_match_place: Some((None, src\tests.rs:8:1: 8:15 (#10))), pat_span: src\tests.rs:8:1: 8:15 (#10)
 })))), internal: false, is_block_tail: None, ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>>, user_ty: Some(Us
erTypeProjections { contents: [(UserTypeProjection { base: UserType(1), projs: [] }, src\tests.rs:8:1: 8:15 (#10))] }), sour
ce_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[3] } }, LocalDecl { mutability: Mut, local_info: None
, internal: false, is_block_tail: None, ty: std::pin::Pin<&mut impl std::future::Future<Output = ()>>, user_ty: None, source
_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None,
internal: false, is_block_tail: Some(BlockTailInfo { tail_result_is_ignored: true, span: src\tests.rs:13:28: 13:29 (#0) }),
ty: !, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutab
ility: Mut, local_info: None, internal: false, is_block_tail: None, ty: &tokio::runtime::Runtime, user_ty: None, source_info
: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Not, local_info: None, inte
rnal: false, is_block_tail: None, ty: tokio::runtime::Runtime, user_ty: None, source_info: SourceInfo { span: src\tests.rs:1
3:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, t
y: std::result::Result<tokio::runtime::Runtime, std::io::Error>, user_ty: None, source_info: SourceInfo { span: src\tests.rs
:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None,
 ty: &mut tokio::runtime::Builder, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scop
e[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None, ty: &mut tokio::runtime::Buil
der, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutabili
ty: Mut, local_info: None, internal: false, is_block_tail: None, ty: &mut tokio::runtime::Builder, user_ty: None, source_inf
o: SourceInfo { span: src\tests.rs:13:5: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, int
ernal: false, is_block_tail: None, ty: tokio::runtime::Builder, user_ty: None, source_info: SourceInfo { span: src\tests.rs:
13:5: 13:11 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_block_tail: None,
ty: &str, user_ty: None, source_info: SourceInfo { span: src\tests.rs:13:28: 13:29 (#0), scope: scope[0] } }, LocalDecl { mu
tability: Not, local_info: None, internal: false, is_block_tail: None, ty: &str, user_ty: None, source_info: SourceInfo { sp
an: src\tests.rs:13:28: 13:29 (#0), scope: scope[0] } }, LocalDecl { mutability: Mut, local_info: None, internal: false, is_
block_tail: None, ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>>, user_ty: None, source_info: SourceInfo { spa
n: src\tests.rs:8:1: 8:15 (#10), scope: scope[0] } }], user_type_annotations: [CanonicalUserTypeAnnotation { user_ty: Canoni
cal { max_universe: U0, variables: [CanonicalVarInfo { kind: Ty(General(U0)) }, CanonicalVarInfo { kind: Ty(General(U0)) }],
 value: TypeOf(DefId(2:9706 ~ core[a1be]::pin::{impl#6}::new_unchecked), UserSubsts { substs: [^0], user_self_ty: Some(UserS
elfTy { impl_def_id: DefId(2:9704 ~ core[a1be]::pin::{impl#6}), self_ty: std::pin::Pin<^1> }) }) }, span: C:\Users\ronit\.ca
rgo\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:133:13: 133:56 (#15), inferred_ty: unsafe fn(&mu
t impl std::future::Future<Output = ()>) -> std::pin::Pin<&mut impl std::future::Future<Output = ()>> {std::pin::Pin::<&mut
impl std::future::Future<Output = ()>>::new_unchecked} }, CanonicalUserTypeAnnotation { user_ty: Canonical { max_universe: U
0, variables: [CanonicalVarInfo { kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(std::pin::Pin<&mut d
yn std::future::Future<Output = ()>>) }, span: src\tests.rs:8:1: 8:15 (#10), inferred_ty: std::pin::Pin<&mut dyn std::future
::Future<Output = ()>> }, CanonicalUserTypeAnnotation { user_ty: Canonical { max_universe: U0, variables: [CanonicalVarInfo
{ kind: Region(U0) }, CanonicalVarInfo { kind: Region(U0) }], value: Ty(std::pin::Pin<&mut dyn std::future::Future<Output =
()>>) }, span: src\tests.rs:8:1: 8:15 (#10), inferred_ty: std::pin::Pin<&mut dyn std::future::Future<Output = ()>> }], arg_c
ount: 0, spread_arg: None, var_debug_info: [VarDebugInfo { name: "body", source_info: SourceInfo { span: src\tests.rs:8:1: 8
:15 (#10), scope: scope[1] }, value: _1 }, VarDebugInfo { name: "body", source_info: SourceInfo { span: C:\Users\ronit\.carg
o\registry\src\git.luolix.top-1ecc6299db9ec823\tokio-1.25.0\src\macros\pin.rs:128:13: 128:19 (#15), scope: scope[2] }, value: _3
 }, VarDebugInfo { name: "body", source_info: SourceInfo { span: C:\Users\ronit\.cargo\registry\src\git.luolix.top-1ecc6299db9ec
823\tokio-1.25.0\src\macros\pin.rs:132:13: 132:19 (#15), scope: scope[3] }, value: _4 }, VarDebugInfo { name: "body", source
_info: SourceInfo { span: src\tests.rs:8:1: 8:15 (#10), scope: scope[6] }, value: _6 }], span: src\tests.rs:9:7: 14:2 (#0),
required_consts: [], is_polymorphic: false, tainted_by_errors: None }) }) }', compiler\rustc_query_system\src\query\plumbing
.rs:658:9
stack backtrace:
   0:     0x7ffcf6ee9a62 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc97dbc4fe64c9
e1d
   1:     0x7ffcf6f256db - core::fmt::write::ha369a394538739aa
   2:     0x7ffcf6edc18a - <std::io::IoSlice as core::fmt::Debug>::fmt::h479b71bd3dadc1d1
   3:     0x7ffcf6ee97ab - std::sys::common::alloc::realloc_fallback::h233ebec439b629e2
   4:     0x7ffcf6eed109 - std::panicking::default_hook::h0ab9e14ad869b271
   5:     0x7ffcf6eecd8a - std::panicking::default_hook::h0ab9e14ad869b271
   6:     0x7ffc91901d6e - rustc_driver[e9de03b45d14c171]::describe_lints
   7:     0x7ffcf6eeda60 - std::panicking::rust_panic_with_hook::he7a40468954ae645
   8:     0x7ffcf6eed7bd - <std::panicking::begin_panic_handler::StrPanicPayload as core::panic::BoxMeUp>::get::h44bc3105923
add49
   9:     0x7ffcf6eea76f - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc97dbc4fe64c9
e1d
  10:     0x7ffcf6eed480 - rust_begin_unwind
  11:     0x7ffcf6f5b5f5 - core::panicking::panic_fmt::h1862038ee9bad685
  12:     0x7ffc93c9faa0 - rustc_query_system[7839065ace8a0431]::query::plumbing::incremental_verify_ich_cold
  13:     0x7ffc93586554 - <alloc[e204b295117b8aa2]::vec::Vec<u8> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable
<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheDecoder>>::decode
  14:     0x7ffc8fcc1b46 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  15:     0x7ffc912bb021 - <rustc_span[c61407085697e619]::def_id::DefId as rustc_serialize[5fa760e9e07a81b9]::serialize::Enc
odable<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheEncoder>>::encode
  16:     0x7ffc911e6968 - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::as_any
  17:     0x7ffc90c74ed0 - <rustc_mir_transform[6e221779ab8adbe]::lower_intrinsics::LowerIntrinsics as rustc_middle[18c13081
b174ae21]::mir::MirPass>::run_pass
  18:     0x7ffc93439b32 - <rustc_mir_dataflow[d6a7f112d5d60ad2]::framework::EffectIndex as core[a1be09f172195029]::fmt::Deb
ug>::fmt
  19:     0x7ffc8fcc1b1b - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  20:     0x7ffc912bb021 - <rustc_span[c61407085697e619]::def_id::DefId as rustc_serialize[5fa760e9e07a81b9]::serialize::Enc
odable<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheEncoder>>::encode
  21:     0x7ffc911e6ab7 - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::as_any
  22:     0x7ffc90c76619 - <rustc_mir_transform[6e221779ab8adbe]::lower_intrinsics::LowerIntrinsics as rustc_middle[18c13081
b174ae21]::mir::MirPass>::run_pass
  23:     0x7ffc93439c36 - <rustc_mir_dataflow[d6a7f112d5d60ad2]::framework::EffectIndex as core[a1be09f172195029]::fmt::Deb
ug>::fmt
  24:     0x7ffc8fcc1fd8 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  25:     0x7ffc912bcf68 - <rustc_span[c61407085697e619]::def_id::DefId as rustc_serialize[5fa760e9e07a81b9]::serialize::Enc
odable<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheEncoder>>::encode
  26:     0x7ffc911e70a0 - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::as_any
  27:     0x7ffc90f5fc74 - <rustc_mir_build[c0d76862c1fc0ac8]::build::expr::as_place::PlaceBuilder as core[a1be09f172195029]
::convert::From<rustc_middle[18c13081b174ae21]::mir::Local>>::from
  28:     0x7ffc90f5f668 - <rustc_mir_build[c0d76862c1fc0ac8]::build::expr::as_place::PlaceBuilder as core[a1be09f172195029]
::convert::From<rustc_middle[18c13081b174ae21]::mir::Local>>::from
  29:     0x7ffc9343a7a3 - <rustc_mir_dataflow[d6a7f112d5d60ad2]::framework::EffectIndex as core[a1be09f172195029]::fmt::Deb
ug>::fmt
  30:     0x7ffc8fcc8bda - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  31:     0x7ffc912d03c9 - <rustc_span[c61407085697e619]::def_id::DefId as rustc_serialize[5fa760e9e07a81b9]::serialize::Enc
odable<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheEncoder>>::encode
  32:     0x7ffc911e8d25 - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::as_any
  33:     0x7ffc917ac3ef - <rustc_middle[18c13081b174ae21]::ty::context::TyCtxt>::mir_borrowck_opt_const_arg
  34:     0x7ffc90c77fd7 - <rustc_mir_transform[6e221779ab8adbe]::lower_intrinsics::LowerIntrinsics as rustc_middle[18c13081
b174ae21]::mir::MirPass>::run_pass
  35:     0x7ffc8fb23002 - <rustc_const_eval[3c1611e98d29229f]::transform::check_consts::resolver::State as core[a1be09f1721
95029]::clone::Clone>::clone_from
  36:     0x7ffc8fb9b545 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  37:     0x7ffc912bb26d - <rustc_span[c61407085697e619]::def_id::DefId as rustc_serialize[5fa760e9e07a81b9]::serialize::Enc
odable<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheEncoder>>::encode
  38:     0x7ffc911e6e1b - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::as_any
  39:     0x7ffc90c7b6c7 - <rustc_mir_transform[6e221779ab8adbe]::lower_intrinsics::LowerIntrinsics as rustc_middle[18c13081
b174ae21]::mir::MirPass>::run_pass
  40:     0x7ffc8fb25031 - <rustc_const_eval[3c1611e98d29229f]::transform::check_consts::resolver::State as core[a1be09f1721
95029]::clone::Clone>::clone_from
  41:     0x7ffc8fbade25 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  42:     0x7ffc912f1bc0 - <rustc_span[c61407085697e619]::def_id::DefId as rustc_serialize[5fa760e9e07a81b9]::serialize::Enc
odable<rustc_query_impl[d4313462cac9d76]::on_disk_cache::CacheEncoder>>::encode
  43:     0x7ffc911e7208 - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::as_any
  44:     0x7ffc917cad2d - <rustc_middle[18c13081b174ae21]::ty::context::TyCtxt>::instance_mir
  45:     0x7ffc90c49f31 - <rustc_monomorphize[c5e62122062f1e21]::collector::MirNeighborCollector as rustc_middle[18c13081b1
74ae21]::mir::visit::Visitor>::visit_operand
  46:     0x7ffc90c46fb5 - <rustc_monomorphize[c5e62122062f1e21]::collector::MirNeighborCollector as rustc_middle[18c13081b1
74ae21]::mir::visit::Visitor>::visit_operand
  47:     0x7ffc90c473a9 - <rustc_monomorphize[c5e62122062f1e21]::collector::MirNeighborCollector as rustc_middle[18c13081b1
74ae21]::mir::visit::Visitor>::visit_operand
  48:     0x7ffc90c473a9 - <rustc_monomorphize[c5e62122062f1e21]::collector::MirNeighborCollector as rustc_middle[18c13081b1
74ae21]::mir::visit::Visitor>::visit_operand
  49:     0x7ffc8f8f0b36 - rustc_monomorphize[c5e62122062f1e21]::provide
  50:     0x7ffc8f8f5dfd - <rustc_monomorphize[c5e62122062f1e21]::partitioning::default::DefaultPartitioning as rustc_monomo
rphize[c5e62122062f1e21]::partitioning::Partitioner>::place_inlined_mono_items
  51:     0x7ffc8f8eef41 - <rustc_hir_analysis[22eaa20e65e5d190]::constrained_generic_params::ParameterCollector as rustc_mi
ddle[18c13081b174ae21]::ty::visit::TypeVisitor>::visit_const
  52:     0x7ffc8fb260c5 - <rustc_const_eval[3c1611e98d29229f]::transform::check_consts::resolver::State as core[a1be09f1721
95029]::clone::Clone>::clone_from
  53:     0x7ffc8fbca0f3 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  54:     0x7ffc8fcaacb6 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  55:     0x7ffc8fce9795 - <&rustc_index[b766228394234ab1]::vec::IndexVec<rustc_middle[18c13081b174ae21]::mir::Promoted, rus
tc_middle[18c13081b174ae21]::mir::Body> as rustc_serialize[5fa760e9e07a81b9]::serialize::Decodable<rustc_query_impl[d4313462
cac9d76]::on_disk_cache::CacheDecoder>>::decode
  56:     0x7ffc8fb387aa - <rustc_query_impl[d4313462cac9d76]::Queries as rustc_middle[18c13081b174ae21]::ty::query::QueryEn
gine>::try_mark_green
  57:     0x7ffc8f18fdf7 - <rustc_codegen_llvm[17e8957a58a1ad3e]::llvm_::ffi::Type>::i8p_llcx
  58:     0x7ffc8f17f4bc - <rustc_codegen_llvm[17e8957a58a1ad3e]::LlvmCodegenBackend as rustc_codegen_ssa[4b7a4ae8d1514f58]:
:traits::backend::CodegenBackend>::codegen_crate
  59:     0x7ffc8f169264 - rustc_interface[10a7111f9310fd6d]::passes::analysis
  60:     0x7ffc8f15c639 - <rustc_interface[10a7111f9310fd6d]::passes::LintStoreExpandImpl as rustc_expand[c56eb5aee4619b21]
::base::LintStoreExpand>::pre_expansion_lint
  61:     0x7ffc8f14b04c - <rustc_interface[10a7111f9310fd6d]::queries::Queries>::ongoing_codegen
  62:     0x7ffc8f11c5c3 - <rustc_middle[18c13081b174ae21]::ty::SymbolName as core[a1be09f172195029]::fmt::Display>::fmt
  63:     0x7ffc8f11b6dd - rustc_driver[e9de03b45d14c171]::args::arg_expand_all
  64:     0x7ffc8f10c809 - <unknown>
  65:     0x7ffc8f103990 - <unknown>
  66:     0x7ffcf6efeabc - std::sys::windows::thread::Thread::new::haf1327b4da6a4ac1
  67:     0x7ffd35c37614 - BaseThreadInitThunk
  68:     0x7ffd37a226a1 - RtlUserThreadStart

error: internal compiler error: unexpected panic

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&tem
plate=ice.md

note: rustc 1.66.1 (90743e729 2023-01-10) running on x86_64-pc-windows-msvc

note: compiler flags: -C embed-bitcode=no -C debuginfo=2 -C incremental=[REDACTED]

note: some of the compiler flags provided by cargo are hidden

query stack during panic:
#0 [mir_built] building MIR for `tests::add_signatory`
#1 [mir_const] preparing `tests::add_signatory` for borrow checking
#2 [mir_promoted] processing MIR for `tests::add_signatory`
#3 [mir_borrowck] borrow-checking `tests::add_signatory`
#4 [mir_drops_elaborated_and_const_checked] elaborating drops for `tests::add_signatory`
#5 [optimized_mir] optimizing MIR for `tests::add_signatory`
#6 [collect_and_partition_mono_items] collect_and_partition_mono_items
end of query stack
warning: `server` (bin "server" test) generated 22 warnings
error: could not compile `server` due to previous error; 22 warnings emitted

This was the first time I'm submitting a bug report for anything, so any feedback is appreciated. Thank you!
And I apologize once more that I'm unable to find a code snippet which replicates the error. Unreplicable errors are the worst.

@RonitNath RonitNath added C-bug Category: This is a bug. 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. labels Feb 4, 2023
@jhwgh1968
Copy link

jhwgh1968 commented Mar 1, 2023

I, too, have hit this bug with a similar import error, code change, recompile cycle.

Good news: by coincidence, I made a ZFS snapshot of the filesystem minutes after it happened. I can restore that and repro at will.

Bad news: it seems like if I change anything it invalidates the cache, recompiles properly, and goes away.

  • Move the directory? Does not repo.
  • Change users? Does not repo.
  • Try to compile inside a rustc docker container? Does not repo.

I was planning to trim files in target/ until it was a managable size and then privately offer a tarball to a rust dev who would look at it. But now I'm not sure I can actually ship my reproducer directory properly.

Any tips for making this into a docker container? What environment does it check?

EDIT: I'm on stable, 1.66.1

@jhwgh1968
Copy link

I have figured out how to make a docker container which reproduces the problem. I did it by nailing down a couple env vars, and copying way too much of my home dir into it.

I will prune it down procedurally to something much smaller. Hopefully I'll have a perfect reproduction within the next week or two that is not immensely bloated.

@jhwgh1968
Copy link

I have successfully created a Docker container which reproduces the problem, based on some code of mine that is not ready for the public. But I'd be willing to send it to a compiler dev for examination.

After significant pruning, the container is ~0.5GB compressed (~1.6 GB uncompressed). But keep in mind it is completely self-contained, so that includes the entire toolchain which reproduces the problem (the then-newest stable).

I'll offer a file sharking link privately via e-mail to any rust dev who would take this issue up.

Pinging as first ideas:

@workingjubilee
Copy link
Member

@jhwgh1968 Sure, try this handle at gmail?

@jhwgh1968
Copy link

E-mail sent, @workingjubilee!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: This is a bug. 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

No branches or pull requests

3 participants