ICE: ./src/test/ui/inference/infer-arg-test.rs: not yet impemented with -Zsave-analysis
matthiaskrgr opened this issue · 1 comments
matthiaskrgr commented
Code
./src/test/ui/inference/infer-arg-test.rs
#![feature(generic_arg_infer)]
struct All<'a, T, const N: usize> {
v: &'a T,
}
struct BadInfer<_>;
//~^ ERROR expected identifier
//~| ERROR parameter `_` is never used
fn all_fn<'a, T, const N: usize>() {}
fn bad_infer_fn<_>() {}
//~^ ERROR expected identifier
fn main() {
let a: All<_, _, _>;
all_fn();
let v: [u8; _];
//~^ ERROR in expressions
let v: [u8; 10] = [0; _];
//~^ ERROR in expressions
}
Meta
rustc --version --verbose
:
rustc 1.57.0-nightly (6c33a0a2e 2021-09-18)
binary: rustc
commit-hash: 6c33a0a2ec8a32016fcb35342ae9d08087e38d5c
commit-date: 2021-09-18
host: x86_64-unknown-linux-gnu
release: 1.57.0-nightly
LLVM version: 13.0.0
Error output
error: expected identifier, found reserved identifier `_`
--> ./src/test/ui/inference/infer-arg-test.rs:7:17
|
7 | struct BadInfer<_>;
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> ./src/test/ui/inference/infer-arg-test.rs:13:17
|
13 | fn bad_infer_fn<_>() {}
| ^ expected identifier, found reserved identifier
error: in expressions, `_` can only be used on the left-hand side of an assignment
--> ./src/test/ui/inference/infer-arg-test.rs:20:15
|
20 | let v: [u8; _];
| ^ `_` not allowed here
error: in expressions, `_` can only be used on the left-hand side of an assignment
--> ./src/test/ui/inference/infer-arg-test.rs:22:25
|
22 | let v: [u8; 10] = [0; _];
| ^ `_` not allowed here
error[E0392]: parameter `_` is never used
--> ./src/test/ui/inference/infer-arg-test.rs:7:17
|
7 | struct BadInfer<_>;
| ^ unused parameter
|
= help: consider removing `_`, referring to it in a field, or using a marker such as `PhantomData`
= help: if you intended `_` to be a const parameter, use `const _: usize` instead
error[E0107]: this struct takes 2 generic arguments but 3 generic arguments were supplied
--> ./src/test/ui/inference/infer-arg-test.rs:18:10
|
18 | let a: All<_, _, _>;
| ^^^ - help: remove this generic argument
| |
| expected 2 generic arguments
|
note: struct defined here, with 2 generic parameters: `T`, `N`
--> ./src/test/ui/inference/infer-arg-test.rs:3:8
|
3 | struct All<'a, T, const N: usize> {
| ^^^ - -
thread 'rustc' panicked at 'not yet implemented', compiler/rustc_typeck/src/astconv/mod.rs:462:29
note: run with `RUST_BACKTRACE=1` environment variable to display a 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.57.0-nightly (6c33a0a2e 2021-09-18) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z save-analysis
query stack during panic:
#0 [typeck] type-checking `main`
end of query stack
error: aborting due to 6 previous errors
Some errors have detailed explanations: E0107, E0392.
For more information about an error, try `rustc --explain E0107`.
Backtrace
error: expected identifier, found reserved identifier `_`
--> ./src/test/ui/inference/infer-arg-test.rs:7:17
|
7 | struct BadInfer<_>;
| ^ expected identifier, found reserved identifier
error: expected identifier, found reserved identifier `_`
--> ./src/test/ui/inference/infer-arg-test.rs:13:17
|
13 | fn bad_infer_fn<_>() {}
| ^ expected identifier, found reserved identifier
error: in expressions, `_` can only be used on the left-hand side of an assignment
--> ./src/test/ui/inference/infer-arg-test.rs:20:15
|
20 | let v: [u8; _];
| ^ `_` not allowed here
error: in expressions, `_` can only be used on the left-hand side of an assignment
--> ./src/test/ui/inference/infer-arg-test.rs:22:25
|
22 | let v: [u8; 10] = [0; _];
| ^ `_` not allowed here
error[E0392]: parameter `_` is never used
--> ./src/test/ui/inference/infer-arg-test.rs:7:17
|
7 | struct BadInfer<_>;
| ^ unused parameter
|
= help: consider removing `_`, referring to it in a field, or using a marker such as `PhantomData`
= help: if you intended `_` to be a const parameter, use `const _: usize` instead
error[E0107]: this struct takes 2 generic arguments but 3 generic arguments were supplied
--> ./src/test/ui/inference/infer-arg-test.rs:18:10
|
18 | let a: All<_, _, _>;
| ^^^ - help: remove this generic argument
| |
| expected 2 generic arguments
|
note: struct defined here, with 2 generic parameters: `T`, `N`
--> ./src/test/ui/inference/infer-arg-test.rs:3:8
|
3 | struct All<'a, T, const N: usize> {
| ^^^ - -
thread 'rustc' panicked at 'not yet implemented', compiler/rustc_typeck/src/astconv/mod.rs:462:29
stack backtrace:
0: 0x7f4f60a6251c - std::backtrace_rs::backtrace::libunwind::trace::h2ab374bc2a3b7023
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
1: 0x7f4f60a6251c - std::backtrace_rs::backtrace::trace_unsynchronized::h128cb5178b04dc46
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
2: 0x7f4f60a6251c - std::sys_common::backtrace::_print_fmt::h5344f9eefca2041f
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/sys_common/backtrace.rs:67:5
3: 0x7f4f60a6251c - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::h213003bc5c7acf04
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/sys_common/backtrace.rs:46:22
4: 0x7f4f60ac07dc - core::fmt::write::h78bf85fc3e93663f
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/core/src/fmt/mod.rs:1126:17
5: 0x7f4f60a53405 - std::io::Write::write_fmt::he619515c888f21a5
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/io/mod.rs:1667:15
6: 0x7f4f60a65a80 - std::sys_common::backtrace::_print::hf706674f77848203
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/sys_common/backtrace.rs:49:5
7: 0x7f4f60a65a80 - std::sys_common::backtrace::print::hf0b6c7a88804ec56
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/sys_common/backtrace.rs:36:9
8: 0x7f4f60a65a80 - std::panicking::default_hook::{{closure}}::h2dde766cd83a333a
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/panicking.rs:210:50
9: 0x7f4f60a65637 - std::panicking::default_hook::h501e3b2e134eb149
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/panicking.rs:227:9
10: 0x7f4f61245f51 - rustc_driver::DEFAULT_HOOK::{{closure}}::{{closure}}::he756f1e8c1181d3b
11: 0x7f4f60a66299 - std::panicking::rust_panic_with_hook::hc09e869c4cf00885
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/panicking.rs:628:17
12: 0x7f4f60a65d22 - std::panicking::begin_panic_handler::{{closure}}::hc2c6d70142458fc8
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/panicking.rs:519:13
13: 0x7f4f60a629c4 - std::sys_common::backtrace::__rust_end_short_backtrace::had58f7c459a1cd6e
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/sys_common/backtrace.rs:141:18
14: 0x7f4f60a65cb9 - rust_begin_unwind
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/panicking.rs:517:5
15: 0x7f4f60a2b861 - core::panicking::panic_fmt::hf443e5eeb6cc9eab
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/core/src/panicking.rs:103:14
16: 0x7f4f60a2b7ad - core::panicking::panic::h50b51d19800453c0
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/core/src/panicking.rs:50:5
17: 0x7f4f625f0360 - <<dyn rustc_typeck::astconv::AstConv>::create_substs_for_ast_path::SubstsForAstPathCtxt as rustc_typeck::astconv::CreateSubstsForGenericArgsCtxt>::provided_kind::hd27533ba044dfdb1
18: 0x7f4f625ed8a1 - <dyn rustc_typeck::astconv::AstConv>::create_substs_for_ast_path::hdc70fffec5683393
19: 0x7f4f625e7a24 - <dyn rustc_typeck::astconv::AstConv>::ast_path_substs_for_ty::h475721814acfe140
20: 0x7f4f625e8387 - <dyn rustc_typeck::astconv::AstConv>::ast_path_to_ty::h7d884b8259ee57d2
21: 0x7f4f625f0889 - <dyn rustc_typeck::astconv::AstConv>::ast_ty_to_ty_inner::h3bd2d155d3a92192
22: 0x7f4f62620e9a - <rustc_typeck::check::gather_locals::GatherLocalsVisitor as rustc_hir::intravisit::Visitor>::visit_local::h49b7cf8e3b7265c2
23: 0x7f4f62597e76 - rustc_hir::intravisit::walk_expr::h2aa3efa9f6724d3f
24: 0x7f4f62648153 - rustc_typeck::check::check::check_fn::h22859037fe91ae06
25: 0x7f4f625ff58d - rustc_infer::infer::InferCtxtBuilder::enter::h6497f632ea603058
26: 0x7f4f625a66ba - rustc_typeck::check::typeck::h30e85507fb0c045e
27: 0x7f4f6298589f - rustc_query_system::query::plumbing::try_execute_query::h962ee77e1a4e17d7
28: 0x7f4f62a0078c - <rustc_query_impl::Queries as rustc_middle::ty::query::QueryEngine>::typeck::h2edc91f1d8d9a428
29: 0x7f4f61296fd3 - rustc_save_analysis::dump_visitor::DumpVisitor::nest_typeck_results::hc61e603166c7031b
30: 0x7f4f6129dfa2 - <rustc_save_analysis::dump_visitor::DumpVisitor as rustc_hir::intravisit::Visitor>::visit_item::h3c1542be36f664dd
31: 0x7f4f61295fb6 - rustc_hir::intravisit::Visitor::visit_nested_item::hed32e44f3e7a9e0d
32: 0x7f4f612845e7 - rustc_hir::intravisit::walk_mod::hda2665ecb6d5bb12
33: 0x7f4f612925a3 - rustc_middle::hir::map::Map::walk_toplevel_module::h5e3c39f11bf1c883
34: 0x7f4f6129b965 - rustc_save_analysis::dump_visitor::DumpVisitor::process_crate::he52095d5868ac37c
35: 0x7f4f61276262 - rustc_middle::dep_graph::<impl rustc_query_system::dep_graph::DepKind for rustc_middle::dep_graph::dep_node::DepKind>::with_deps::h5135873aa9381dc0
36: 0x7f4f61278257 - std::thread::local::LocalKey<T>::with::hedc911502788cc56
37: 0x7f4f6124b287 - rustc_save_analysis::process_crate::h6bb0baa6752a5ec0
38: 0x7f4f61254967 - rustc_session::utils::<impl rustc_session::session::Session>::time::h88db1609c8457239
39: 0x7f4f62e13637 - rustc_interface::passes::QueryContext::enter::hcdbb877939d5b3f6
40: 0x7f4f62dfa901 - rustc_interface::queries::<impl rustc_interface::interface::Compiler>::enter::h5e6d4aaebb0cf9be
41: 0x7f4f62de7f9c - rustc_span::with_source_map::h599a6f9fdaefef48
42: 0x7f4f62dfa22c - scoped_tls::ScopedKey<T>::set::he21a81a9bfc3d569
43: 0x7f4f62de96ba - std::sys_common::backtrace::__rust_begin_short_backtrace::h81ba4b768f16a523
44: 0x7f4f62de6865 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h83206074d599cea9
45: 0x7f4f60a72e33 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::h59eef3b9c8a82350
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/alloc/src/boxed.rs:1636:9
46: 0x7f4f60a72e33 - <alloc::boxed::Box<F,A> as core::ops::function::FnOnce<Args>>::call_once::hb5bbe017c347469c
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/alloc/src/boxed.rs:1636:9
47: 0x7f4f60a72e33 - std::sys::unix::thread::Thread::new::thread_start::h62931528f61e35f5
at /rustc/6c33a0a2ec8a32016fcb35342ae9d08087e38d5c/library/std/src/sys/unix/thread.rs:106:17
48: 0x7f4f6097f259 - start_thread
49: 0x7f4f608945e3 - __GI___clone
50: 0x0 - <unknown>
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.57.0-nightly (6c33a0a2e 2021-09-18) running on x86_64-unknown-linux-gnu
note: compiler flags: -Z save-analysis
query stack during panic:
#0 [typeck] type-checking `main`
end of query stack
error: aborting due to 6 previous errors
Some errors have detailed explanations: E0107, E0392.
For more information about an error, try `rustc --explain E0107`.