rust-lang / rust

Empowering everyone to build reliable and efficient software.
https://www.rust-lang.org
Other
98.32k stars 12.72k forks source link

ice: drop location span error with -Wrust-2021-incompatible-closure-captures #93117

Closed matthiaskrgr closed 2 years ago

matthiaskrgr commented 2 years ago

Code

code reduced from tokio-1.15.0/src/fs/dir_builder.rs

pub struct A {}

impl A {
    async fn create(path: impl AsRef<std::path::Path>)  {
    ;
    crate(move || {} ).await
    }
}

Meta

rustc --version --verbose:

rustc 1.60.0-nightly (5e57faa78 2022-01-19)
binary: rustc
commit-hash: 5e57faa78aa7661c6000204591558f6665f11abc
commit-date: 2022-01-19
host: x86_64-unknown-linux-gnu
release: 1.60.0-nightly
LLVM version: 13.0.0

Error output

rustc fs/dir_builder.rs -Wrust-2021-incompatible-closure-captures

error[E0670]: `async fn` is not permitted in Rust 2015
 --> ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5
  |
4 |     async fn create(path: impl AsRef<std::path::Path>)  {
  |     ^^^^^ to use `async fn`, switch to Rust 2018 or later
  |
  = help: set `edition = "2021"` in `Cargo.toml`
  = note: for more on editions, read https://doc.rust-lang.org/edition-guide

error: visibility `crate` is not followed by an item
 --> ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:6:5
  |
6 |     crate(move || {} ).await
  |     ^^^^^ the visibility
  |
  = help: you likely meant to define an item, e.g., `crate fn foo() {}`

warning: unnecessary trailing semicolon
 --> ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:5:5
  |
5 |     ;
  |     ^ help: remove this semicolon
  |
  = note: `#[warn(redundant_semicolons)]` on by default

error[E0601]: `main` function not found in crate `dir_builder`
 --> ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:1:1
  |
1 | / pub struct A {}
2 | |
3 | | impl A {
4 | |     async fn create(path: impl AsRef<std::path::Path>)  {
... |
7 | |     }
8 | | }
  | |_^ consider adding a `main` function to `./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs`

error[E0609]: no field `await` on type `[closure@./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:6:10: 6:23]`
 --> ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:6:24
  |
6 |     crate(move || {} ).await
  |                        ^^^^^
  |
  = note: to `.await` a `Future`, switch to Rust 2018 or later
  = help: set `edition = "2021"` in `Cargo.toml`
  = note: for more on editions, read https://doc.rust-lang.org/edition-guide

error: internal compiler error: compiler/rustc_typeck/src/check/upvar.rs:1715:13: Drop location span error: need to handle more Node ImplItem(ImplItem { ident: create#0, def_id: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), vis: Spanned { node: Inherited, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5: 4:5 (#0) }, defaultness: Final, generics: Generics { params: [GenericParam { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 28 }, name: Plain(impl AsRef<std::path::Path>#0), bounds: [Trait(PolyTraitRef { bound_generic_params: [], trait_ref: TraitRef { path: Path { span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:32: 4:54 (#0), res: Def(Trait, DefId(2:2908 ~ core[3f36]::convert::AsRef)), segments: [PathSegment { ident: AsRef#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 26 }), res: Some(Def(Trait, DefId(2:2908 ~ core[3f36]::convert::AsRef))), args: Some(GenericArgs { args: [Type(Ty { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 22 }, kind: Path(Resolved(None, Path { span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:38: 4:53 (#0), res: Def(Struct, DefId(1:7232 ~ std[fc96]::path::Path)), segments: [PathSegment { ident: std#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 23 }), res: Some(Def(Mod, DefId(1:0 ~ std[fc96]))), args: None, infer_args: false }, PathSegment { ident: path#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 24 }), res: Some(Def(Mod, DefId(1:6925 ~ std[fc96]::path))), args: None, infer_args: false }, PathSegment { ident: Path#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 25 }), res: Some(Err), args: None, infer_args: false }] })), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:38: 4:53 (#0) })], bindings: [], parenthesized: false, span_ext: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:37: 4:54 (#0) }), infer_args: false }] }, hir_ref_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 27 } }, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:32: 4:54 (#0) }, None)], span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:27: 4:54 (#0), pure_wrt_drop: false, kind: Type { default: None, synthetic: true } }], where_clause: WhereClause { predicates: [], span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:55: 4:55 (#0) }, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:20: 4:20 (#0) }, kind: Fn(FnSig { header: FnHeader { unsafety: Normal, constness: NotConst, asyncness: Async, abi: Rust }, decl: FnDecl { inputs: [Ty { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 29 }, kind: Path(Resolved(None, Path { span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:27: 4:54 (#0), res: Def(TyParam, DefId(0:7 ~ dir_builder[6e27]::{impl#0}::create::{opaque#1})), segments: [PathSegment { ident: impl AsRef<std::path::Path>#0, hir_id: None, res: None, args: None, infer_args: true }] })), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:27: 4:54 (#0) }], output: Return(Ty { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 30 }, kind: OpaqueDef(ItemId { def_id: DefId(0:6 ~ dir_builder[6e27]::{impl#0}::create::{opaque#0}) }, []), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:57: 4:57 (#6) }), c_variadic: false, implicit_self: None }, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5: 4:55 (#0) }, BodyId { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 21 } }), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5: 7:6 (#0) })

thread 'rustc' panicked at 'Box<dyn Any>', compiler/rustc_errors/src/lib.rs:1169: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/issues/new?labels=C-bug%2C+I-ICE%2C+T-compiler&template=ice.md

note: rustc 1.60.0-nightly (5e57faa78 2022-01-19) running on x86_64-unknown-linux-gnu

query stack during panic:
#0 [typeck] type-checking `<impl at ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:3:1: 8:2>::create`
#1 [mir_built] building MIR for `<impl at ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:3:1: 8:2>::create`
end of query stack
error: aborting due to 5 previous errors; 1 warning emitted

Some errors have detailed explanations: E0601, E0609, E0670.
For more information about an error, try `rustc --explain E0601`.
Backtrace

``` error: internal compiler error: compiler/rustc_typeck/src/check/upvar.rs:1715:13: Drop location span error: need to handle more Node ImplItem(ImplItem { ident: create#0, def_id: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), vis: Spanned { node: Inherited, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5: 4:5 (#0) }, defaultness: Final, generics: Generics { params: [GenericParam { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 28 }, name: Plain(impl AsRef#0), bounds: [Trait(PolyTraitRef { bound_generic_params: [], trait_ref: TraitRef { path: Path { span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:32: 4:54 (#0), res: Def(Trait, DefId(2:2908 ~ core[3f36]::convert::AsRef)), segments: [PathSegment { ident: AsRef#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 26 }), res: Some(Def(Trait, DefId(2:2908 ~ core[3f36]::convert::AsRef))), args: Some(GenericArgs { args: [Type(Ty { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 22 }, kind: Path(Resolved(None, Path { span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:38: 4:53 (#0), res: Def(Struct, DefId(1:7232 ~ std[fc96]::path::Path)), segments: [PathSegment { ident: std#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 23 }), res: Some(Def(Mod, DefId(1:0 ~ std[fc96]))), args: None, infer_args: false }, PathSegment { ident: path#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 24 }), res: Some(Def(Mod, DefId(1:6925 ~ std[fc96]::path))), args: None, infer_args: false }, PathSegment { ident: Path#0, hir_id: Some(HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 25 }), res: Some(Err), args: None, infer_args: false }] })), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:38: 4:53 (#0) })], bindings: [], parenthesized: false, span_ext: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:37: 4:54 (#0) }), infer_args: false }] }, hir_ref_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 27 } }, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:32: 4:54 (#0) }, None)], span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:27: 4:54 (#0), pure_wrt_drop: false, kind: Type { default: None, synthetic: true } }], where_clause: WhereClause { predicates: [], span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:55: 4:55 (#0) }, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:20: 4:20 (#0) }, kind: Fn(FnSig { header: FnHeader { unsafety: Normal, constness: NotConst, asyncness: Async, abi: Rust }, decl: FnDecl { inputs: [Ty { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 29 }, kind: Path(Resolved(None, Path { span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:27: 4:54 (#0), res: Def(TyParam, DefId(0:7 ~ dir_builder[6e27]::{impl#0}::create::{opaque#1})), segments: [PathSegment { ident: impl AsRef#0, hir_id: None, res: None, args: None, infer_args: true }] })), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:27: 4:54 (#0) }], output: Return(Ty { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 30 }, kind: OpaqueDef(ItemId { def_id: DefId(0:6 ~ dir_builder[6e27]::{impl#0}::create::{opaque#0}) }, []), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:57: 4:57 (#6) }), c_variadic: false, implicit_self: None }, span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5: 4:55 (#0) }, BodyId { hir_id: HirId { owner: DefId(0:5 ~ dir_builder[6e27]::{impl#0}::create), local_id: 21 } }), span: ./src/github.com-1ecc6299db9ec823/tokio-1.15.0/src/fs/dir_builder.rs:4:5: 7:6 (#0) }) thread 'rustc' panicked at 'Box', compiler/rustc_errors/src/lib.rs:1169:9 stack backtrace: 0: 0x7f1ddcf361cc - std::backtrace_rs::backtrace::libunwind::trace::h315e9be67c5e5a8c at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/../../backtrace/src/backtrace/libunwind.rs:93:5 1: 0x7f1ddcf361cc - std::backtrace_rs::backtrace::trace_unsynchronized::h867d89e40d9a37e3 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5 2: 0x7f1ddcf361cc - std::sys_common::backtrace::_print_fmt::h506d0e14f1ac2504 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/sys_common/backtrace.rs:67:5 3: 0x7f1ddcf361cc - ::fmt::h418fe1eb1dd94bd4 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/sys_common/backtrace.rs:46:22 4: 0x7f1ddcf9741c - core::fmt::write::he0a90ee610a388fd at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/core/src/fmt/mod.rs:1168:17 5: 0x7f1ddcf258b3 - std::io::Write::write_fmt::haf0d3ff90849f285 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/io/mod.rs:1653:15 6: 0x7f1ddcf3a962 - std::sys_common::backtrace::_print::h9b304fbd7604ed2b at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/sys_common/backtrace.rs:49:5 7: 0x7f1ddcf3a962 - std::sys_common::backtrace::print::he315e3f0e9300403 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/sys_common/backtrace.rs:36:9 8: 0x7f1ddcf3a962 - std::panicking::default_hook::{{closure}}::h79880375c05b275b at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/panicking.rs:290:50 9: 0x7f1ddcf3a545 - std::panicking::default_hook::h7702c74b86c50f19 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/panicking.rs:307:9 10: 0x7f1ddd72dc81 - rustc_driver[7edf991b0fcf9642]::DEFAULT_HOOK::{closure#0}::{closure#0} 11: 0x7f1ddcf3b12c - std::panicking::rust_panic_with_hook::hea4f865870dc8a18 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/panicking.rs:689:17 12: 0x7f1dde825f4b - std[fc96f19dffd05b49]::panicking::begin_panic::::{closure#0} 13: 0x7f1dde825f06 - std[fc96f19dffd05b49]::sys_common::backtrace::__rust_end_short_backtrace::::{closure#0}, !> 14: 0x7f1dde82b19f - std[fc96f19dffd05b49]::panicking::begin_panic:: 15: 0x7f1dde835bdd - std[fc96f19dffd05b49]::panic::panic_any:: 16: 0x7f1dde834e6d - ::bug 17: 0x7f1dde834950 - ::bug 18: 0x7f1dde78a15e - rustc_middle[9a1d3b769b0c4e46]::ty::context::tls::with_opt::::{closure#0}, ()> 19: 0x7f1dde78ab70 - rustc_middle[9a1d3b769b0c4e46]::util::bug::opt_span_bug_fmt:: 20: 0x7f1dde78aae6 - rustc_middle[9a1d3b769b0c4e46]::util::bug::bug_fmt 21: 0x7f1ddda57391 - rustc_typeck[929faa07ed828302]::check::upvar::drop_location_span 22: 0x7f1dddac677f - <::perform_2229_migration_anaysis::{closure#0} as core[3f3685a75deb7b4a]::ops::function::FnOnce<(rustc_middle[9a1d3b769b0c4e46]::lint::LintDiagnosticBuilder,)>>::call_once::{shim:vtable#0} 23: 0x7f1ddf46e226 - rustc_middle[9a1d3b769b0c4e46]::lint::struct_lint_level::struct_lint_level_impl 24: 0x7f1dddaccbec - rustc_middle[9a1d3b769b0c4e46]::lint::struct_lint_level::<::perform_2229_migration_anaysis::{closure#0}> 25: 0x7f1ddda4d66c - ::struct_span_lint_hir::::perform_2229_migration_anaysis::{closure#0}> 26: 0x7f1ddf7f389b - ::analyze_closure 27: 0x7f1ddeb4e68f - ::visit_expr 28: 0x7f1ddeb6d7da - rustc_hir[ebe0da061a745433]::intravisit::walk_expr:: 29: 0x7f1ddeb69761 - rustc_hir[ebe0da061a745433]::intravisit::walk_body:: 30: 0x7f1ddeb78c59 - ::enter::<&rustc_middle[9a1d3b769b0c4e46]::ty::context::TypeckResults, ::enter::{closure#1}, &rustc_middle[9a1d3b769b0c4e46]::ty::context::TypeckResults>::{closure#0}> 31: 0x7f1ddeb4f415 - rustc_typeck[929faa07ed828302]::check::typeck 32: 0x7f1ddefe923d - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::> 33: 0x7f1ddf05bffc - ::typeck 34: 0x7f1ddf44de74 - ::typeck_opt_const_arg 35: 0x7f1dded3a753 - rustc_mir_build[333b3491630e56c3]::build::mir_built 36: 0x7f1ddefd9cb6 - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::, &rustc_data_structures[a242080a6d10bfdb]::steal::Steal>> 37: 0x7f1ddf055df4 - ::mir_built 38: 0x7f1ddea945c2 - rustc_mir_transform[4662b8da994d9372]::check_unsafety::unsafety_check_result 39: 0x7f1ddea8f8b3 - >::call_once 40: 0x7f1ddefeb09d - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::> 41: 0x7f1ddf05bbd1 - ::unsafety_check_result 42: 0x7f1ddea89c41 - rustc_mir_transform[4662b8da994d9372]::mir_const 43: 0x7f1ddefd9cb6 - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::, &rustc_data_structures[a242080a6d10bfdb]::steal::Steal>> 44: 0x7f1ddf055f3b - ::mir_const 45: 0x7f1ddea8acf7 - rustc_mir_transform[4662b8da994d9372]::mir_promoted 46: 0x7f1ddefdaefb - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::, (&rustc_data_structures[a242080a6d10bfdb]::steal::Steal, &rustc_data_structures[a242080a6d10bfdb]::steal::Steal>)>> 47: 0x7f1ddf05637f - ::mir_promoted 48: 0x7f1ddee7706a - >::call_once 49: 0x7f1ddefea16f - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::> 50: 0x7f1ddf05c28e - ::mir_borrowck 51: 0x7f1ddebbc744 - rustc_typeck[929faa07ed828302]::collect::type_of::type_of 52: 0x7f1ddf0526c1 - ::type_of 53: 0x7f1ddebd56ec - rustc_typeck[929faa07ed828302]::check::check::check_item_type 54: 0x7f1ddebc2755 - ::visit_item_likes_in_module:: 55: 0x7f1ddf86db1c - rustc_typeck[929faa07ed828302]::check::check::check_mod_item_types 56: 0x7f1ddefebfc8 - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::> 57: 0x7f1ddfaa0ba3 - rustc_query_system[dc1089d64decff0b]::query::plumbing::get_query:: 58: 0x7f1ddf86016b - ::for_each_module:: 59: 0x7f1ddf818820 - ::time::<(), rustc_typeck[929faa07ed828302]::check_crate::{closure#6}> 60: 0x7f1ddf812ea3 - rustc_typeck[929faa07ed828302]::check_crate 61: 0x7f1ddf5ac957 - rustc_interface[b9b947bb2a11cb30]::passes::analysis 62: 0x7f1ddfa5389a - rustc_query_system[dc1089d64decff0b]::query::plumbing::try_execute_query::>> 63: 0x7f1ddfaaddc5 - rustc_query_system[dc1089d64decff0b]::query::plumbing::get_query:: 64: 0x7f1ddf58ec20 - ::enter::, rustc_errors[4cb730068b279917]::ErrorReported>> 65: 0x7f1ddf570c3c - rustc_span[282b2b74c0b04d42]::with_source_map::, rustc_interface[b9b947bb2a11cb30]::interface::create_compiler_and_run, rustc_driver[7edf991b0fcf9642]::run_compiler::{closure#1}>::{closure#1}> 66: 0x7f1ddf58dfee - rustc_interface[b9b947bb2a11cb30]::interface::create_compiler_and_run::, rustc_driver[7edf991b0fcf9642]::run_compiler::{closure#1}> 67: 0x7f1ddf57216b - >::set::, rustc_driver[7edf991b0fcf9642]::run_compiler::{closure#1}>::{closure#0}, core[3f3685a75deb7b4a]::result::Result<(), rustc_errors[4cb730068b279917]::ErrorReported>>::{closure#0}::{closure#0}, core[3f3685a75deb7b4a]::result::Result<(), rustc_errors[4cb730068b279917]::ErrorReported>> 68: 0x7f1ddf571f75 - std[fc96f19dffd05b49]::sys_common::backtrace::__rust_begin_short_backtrace::, rustc_driver[7edf991b0fcf9642]::run_compiler::{closure#1}>::{closure#0}, core[3f3685a75deb7b4a]::result::Result<(), rustc_errors[4cb730068b279917]::ErrorReported>>::{closure#0}, core[3f3685a75deb7b4a]::result::Result<(), rustc_errors[4cb730068b279917]::ErrorReported>> 69: 0x7f1ddf59e359 - <::spawn_unchecked, rustc_driver[7edf991b0fcf9642]::run_compiler::{closure#1}>::{closure#0}, core[3f3685a75deb7b4a]::result::Result<(), rustc_errors[4cb730068b279917]::ErrorReported>>::{closure#0}, core[3f3685a75deb7b4a]::result::Result<(), rustc_errors[4cb730068b279917]::ErrorReported>>::{closure#1} as core[3f3685a75deb7b4a]::ops::function::FnOnce<()>>::call_once::{shim:vtable#0} 70: 0x7f1ddcf46643 - as core::ops::function::FnOnce>::call_once::heeb75755ed03348f at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/alloc/src/boxed.rs:1854:9 71: 0x7f1ddcf46643 - as core::ops::function::FnOnce>::call_once::hce572fadd0b0fd27 at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/alloc/src/boxed.rs:1854:9 72: 0x7f1ddcf46643 - std::sys::unix::thread::Thread::new::thread_start::h2f7de4f5b22afc6b at /rustc/5e57faa78aa7661c6000204591558f6665f11abc/library/std/src/sys/unix/thread.rs:108:17 73: 0x7f1ddce4b259 - start_thread 74: 0x7f1ddcd675e3 - __GI___clone 75: 0x0 - 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.60.0-nightly (5e57faa78 2022-01-19) running on x86_64-unknown-linux-gnu query stack during panic: #0 [typeck] type-checking `::create` #1 [mir_built] building MIR for `::create` #2 [unsafety_check_result] unsafety-checking `::create` #3 [mir_const] processing MIR for `::create` #4 [mir_promoted] processing `::create` #5 [mir_borrowck] borrow-checking `::create` #6 [type_of] computing type of `::create::{opaque#0}` #7 [check_mod_item_types] checking item types in top-level module #8 [analysis] running analysis passes on this crate end of query stack error: aborting due to 5 previous errors; 1 warning emitted Some errors have detailed explanations: E0601, E0609, E0670. For more information about an error, try `rustc --explain E0601`. ```

matthiaskrgr commented 2 years ago

another example:

trait C{async fn new(val: T) {}