We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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
Compiler panics when using turbofish and .parse()
.parse()
I tried this code:
use std::str::FromStr; struct Six(); impl FromStr for Six { type Err = String; fn from_str(s: &str) -> Result<Self, Self::Err> { if s.len() != 6 { return Err(format!("Incorrect length {}", s.len())); } Ok(Six()) } } fn main() { let s = String::from("123456"); let _six: Six = s::<Six>.parse().unwrap(); }
I expected to see this happen: show a warning/error
Instead, this happened: compiler panic'd
rustc --version --verbose:
rustc --version --verbose
rustc 1.35.0 (3c235d560 2019-05-20) binary: rustc commit-hash: 3c235d5600393dfe6c36eeed34042efad8d4f26e commit-date: 2019-05-20 host: x86_64-unknown-linux-gnu release: 1.35.0 LLVM version: 8.0
Backtrace:
error: internal compiler error: src/librustc_typeck/check/mod.rs:2441: no type for node 79: type Six (id=79) in fcx 0x7fe59bbef4a0 thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:635:9 note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace. stack backtrace: 0: std::sys::unix::backtrace::tracing::imp::unwind_backtrace at src/libstd/sys/unix/backtrace/tracing/gcc_s.rs:39 1: std::sys_common::backtrace::_print at src/libstd/sys_common/backtrace.rs:71 2: std::panicking::default_hook::{{closure}} at src/libstd/sys_common/backtrace.rs:59 at src/libstd/panicking.rs:197 3: std::panicking::default_hook at src/libstd/panicking.rs:211 4: rustc::util::common::panic_hook 5: std::panicking::rust_panic_with_hook at src/libstd/panicking.rs:478 6: std::panicking::begin_panic 7: rustc_errors::Handler::bug 8: rustc::util::bug::opt_span_bug_fmt::{{closure}} 9: rustc::ty::context::tls::with_opt::{{closure}} 10: rustc::ty::context::tls::with_context_opt 11: rustc::ty::context::tls::with_opt 12: rustc::util::bug::opt_span_bug_fmt 13: rustc::util::bug::bug_fmt 14: rustc_typeck::check::FnCtxt::node_ty 15: <rustc_typeck::check::writeback::WritebackCx as rustc::hir::intravisit::Visitor>::visit_ty 16: rustc::hir::intravisit::walk_path 17: <rustc_typeck::check::writeback::WritebackCx as rustc::hir::intravisit::Visitor>::visit_expr 18: rustc::hir::intravisit::walk_expr 19: <rustc_typeck::check::writeback::WritebackCx as rustc::hir::intravisit::Visitor>::visit_expr 20: rustc::hir::intravisit::walk_expr 21: <rustc_typeck::check::writeback::WritebackCx as rustc::hir::intravisit::Visitor>::visit_expr 22: <rustc_typeck::check::writeback::WritebackCx as rustc::hir::intravisit::Visitor>::visit_local 23: rustc::hir::intravisit::walk_expr 24: <rustc_typeck::check::writeback::WritebackCx as rustc::hir::intravisit::Visitor>::visit_expr 25: rustc_typeck::check::writeback::<impl rustc_typeck::check::FnCtxt>::resolve_type_vars_in_body 26: rustc::ty::context::GlobalCtxt::enter_local 27: rustc_typeck::check::typeck_tables_of 28: rustc::ty::query::__query_compute::typeck_tables_of 29: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::typeck_tables_of>::compute 30: rustc::dep_graph::graph::DepGraph::with_task_impl 31: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query 32: rustc::ty::<impl rustc::ty::context::TyCtxt>::par_body_owners 33: rustc_typeck::check::typeck_item_bodies 34: rustc::ty::query::__query_compute::typeck_item_bodies 35: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::typeck_item_bodies>::compute 36: rustc::dep_graph::graph::DepGraph::with_task_impl 37: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query 38: rustc::util::common::time 39: rustc_typeck::check_crate 40: rustc_interface::passes::analysis 41: rustc::ty::query::__query_compute::analysis 42: rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::analysis>::compute 43: rustc::dep_graph::graph::DepGraph::with_task_impl 44: rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query 45: rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}} 46: rustc_interface::passes::create_global_ctxt::{{closure}} 47: rustc_interface::interface::run_compiler_in_existing_thread_pool 48: std::thread::local::LocalKey<T>::with 49: scoped_tls::ScopedKey<T>::set 50: syntax::with_globals query stack during panic: #0 [typeck_tables_of] processing `main` #1 [typeck_item_bodies] type-checking all item bodies #2 [analysis] running analysis passes on this crate end of query stack error: aborting due to previous error
The text was updated successfully, but these errors were encountered:
Seems similar to #60989, so closing this for now
Sorry, something went wrong.
No branches or pull requests
Compiler panics when using turbofish and
.parse()
I tried this code:
I expected to see this happen: show a warning/error
Instead, this happened: compiler panic'd
Meta
rustc --version --verbose
:Backtrace:
The text was updated successfully, but these errors were encountered: