Skip to content

internal compiler error: src/librustc/ty/subst.rs:610: type parameter E/#1 (E/1) out of range when substituting (root type=Some(E)) substs=[] #67037

Closed

Description

error[E0308]: mismatched types
  --> src/main.rs:40:14
   |
39 |     match cursor {
   |           ------ this match expression has type `rocket_contrib::databases::mongodb::ordered::OrderedDocument`
40 |         Some(Ok(doc)) => println!("{:?}", doc.get("name")),
   |              ^^^^^^^ expected struct `rocket_contrib::databases::mongodb::ordered::OrderedDocument`, found enum `std::result::Result`
   |
   = note: expected struct `rocket_contrib::databases::mongodb::ordered::OrderedDocument`
                found enum `std::result::Result<_, _>`

error[E0308]: mismatched types
  --> src/main.rs:41:14
   |
39 |     match cursor {
   |           ------ this match expression has type `rocket_contrib::databases::mongodb::ordered::OrderedDocument`
40 |         Some(Ok(doc)) => println!("{:?}", doc.get("name")),
41 |         Some(Err()) => panic!("Query error"),
   |              ^^^^^ expected struct `rocket_contrib::databases::mongodb::ordered::OrderedDocument`, found enum `std::result::Result`
   |
   = note: expected struct `rocket_contrib::databases::mongodb::ordered::OrderedDocument`
                found enum `std::result::Result<_, _>`

error: internal compiler error: src/librustc/ty/subst.rs:610: type parameter `E/#1` (E/1) out of range when substituting (root type=Some(E)) substs=[]

thread 'rustc' panicked at 'Box<Any>', src/librustc_errors/lib.rs:851:9
stack backtrace:
   0:     0x7f2ee8242574 - backtrace::backtrace::libunwind::trace::h1702f02e9561de90
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/libunwind.rs:88
   1:     0x7f2ee8242574 - backtrace::backtrace::trace_unsynchronized::h1c634812fc0220cb
                               at /cargo/registry/src/github.com-1ecc6299db9ec823/backtrace-0.3.40/src/backtrace/mod.rs:66
   2:     0x7f2ee8242574 - std::sys_common::backtrace::_print_fmt::h9d5a053d21e8c033
                               at src/libstd/sys_common/backtrace.rs:84
   3:     0x7f2ee8242574 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hc65c735014fa52d2
                               at src/libstd/sys_common/backtrace.rs:61
   4:     0x7f2ee827aa9c - core::fmt::write::h125da652425b39e8
                               at src/libcore/fmt/mod.rs:1030
   5:     0x7f2ee8236907 - std::io::Write::write_fmt::h20322e8675759303
                               at src/libstd/io/mod.rs:1412
   6:     0x7f2ee8246a1e - std::sys_common::backtrace::_print::h56bfd19cdffe3007
                               at src/libstd/sys_common/backtrace.rs:65
   7:     0x7f2ee8246a1e - std::sys_common::backtrace::print::h76b7a0cb6d897cab
                               at src/libstd/sys_common/backtrace.rs:50
   8:     0x7f2ee8246a1e - std::panicking::default_hook::{{closure}}::h7cd2878d4328ecd0
                               at src/libstd/panicking.rs:188
   9:     0x7f2ee8246711 - std::panicking::default_hook::hf3eaa2d2726e3f01
                               at src/libstd/panicking.rs:205
  10:     0x7f2ee8757913 - rustc_driver::report_ice::h39ffefda20268397
  11:     0x7f2ec2a5bc78 - <alloc::boxed::Box<F> as core::ops::function::Fn<A>>::call::h3de9a97a363cf759
                               at /rustc/412f43ac5b4ae8c3599e71c6972112e9be4758fa/src/liballoc/boxed.rs:956
  12:     0x7f2ec2a60f54 - proc_macro::bridge::client::<impl proc_macro::bridge::Bridge>::enter::{{closure}}::{{closure}}::hf3dc7abf04394a0e
                               at /rustc/412f43ac5b4ae8c3599e71c6972112e9be4758fa/src/libproc_macro/bridge/client.rs:305
  13:     0x7f2ee82471f0 - std::panicking::rust_panic_with_hook::h5240f420a7eb117e
                               at src/libstd/panicking.rs:468
  14:     0x7f2eea1ba2dd - std::panicking::begin_panic::hce59fc8e33dd9345
  15:     0x7f2eea3a730c - rustc_errors::HandlerInner::span_bug::h6ddd4e38ee634399
  16:     0x7f2eea3a79ca - rustc_errors::Handler::span_bug::hea5ec8f498c43470
  17:     0x7f2ee9eef646 - rustc::util::bug::opt_span_bug_fmt::{{closure}}::hf13d905ef681d8a4
  18:     0x7f2ee9eee4e3 - rustc::ty::context::tls::with_opt::{{closure}}::h7a408e658785e840
  19:     0x7f2ee9eee49b - rustc::ty::context::tls::with_opt::hf0afa98f66999d61
  20:     0x7f2ee9eef548 - rustc::util::bug::opt_span_bug_fmt::h9c34aa1f1b8de485
  21:     0x7f2ee9eef4fa - rustc::util::bug::span_bug_fmt::h2a91091c060021f7
  22:     0x7f2ee9eede2f - <rustc::ty::subst::SubstFolder as rustc::ty::fold::TypeFolder>::fold_ty::h065fd281b8378a74
  23:     0x7f2eea184ae5 - rustc::ty::FieldDef::ty::h6ed4fec5c4ff734a
  24:     0x7f2ee8ca4c21 - rustc_typeck::check::pat::<impl rustc_typeck::check::FnCtxt>::check_pat_tuple_struct::hed047121ed0f6129
  25:     0x7f2ee8ca228a - rustc_typeck::check::pat::<impl rustc_typeck::check::FnCtxt>::check_pat::h8c223b265708d799
  26:     0x7f2ee8ca45b6 - rustc_typeck::check::pat::<impl rustc_typeck::check::FnCtxt>::check_pat_tuple_struct::hed047121ed0f6129
  27:     0x7f2ee8ca228a - rustc_typeck::check::pat::<impl rustc_typeck::check::FnCtxt>::check_pat::h8c223b265708d799
  28:     0x7f2ee8d638b2 - <core::iter::adapters::Map<I,F> as core::iter::traits::iterator::Iterator>::fold::h9b19277c4c3d33c7
  29:     0x7f2ee8ca0410 - rustc_typeck::check::_match::<impl rustc_typeck::check::FnCtxt>::check_match::h7b43562d114db5ba
  30:     0x7f2ee8cb3bd3 - rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_kind::h621cba1ce85f3bfa
  31:     0x7f2ee8cb2bdb - rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_with_expectation_and_needs::h10842dfddc07c322
  32:     0x7f2ee8ce971d - rustc_typeck::check::FnCtxt::check_stmt::h9069aeb6f9bb592c
  33:     0x7f2ee8ce9eeb - rustc_typeck::check::FnCtxt::check_block_with_expected::hd23ab1c30aca9f76
  34:     0x7f2ee8cb36a4 - rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_kind::h621cba1ce85f3bfa
  35:     0x7f2ee8cb2bdb - rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_expr_with_expectation_and_needs::h10842dfddc07c322
  36:     0x7f2ee8cbccdb - rustc_typeck::check::expr::<impl rustc_typeck::check::FnCtxt>::check_return_expr::hec0352eaf6d21383
  37:     0x7f2ee8cd713f - rustc_typeck::check::check_fn::h4e57fd33a6d18087
  38:     0x7f2ee8e6acdc - rustc::ty::context::tls::with_context::{{closure}}::h8f8fbb2b2dcb897a
  39:     0x7f2ee8cd5f5e - rustc_typeck::check::typeck_tables_of::h9efdf2ea10a60cbe
  40:     0x7f2ee8e9a7db - rustc::ty::query::__query_compute::typeck_tables_of::h64f7384b1e03c8b0
  41:     0x7f2ee8dea0bb - rustc::ty::query::<impl rustc::ty::query::config::QueryAccessors for rustc::ty::query::queries::typeck_tables_of>::compute::hdae8375eb6905d53
  42:     0x7f2ee8d881a2 - rustc::dep_graph::graph::DepGraph::with_task_impl::h8f72393095b798e4
  43:     0x7f2ee8e14e67 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h4e91f8b94db7f244
  44:     0x7f2ee8de67df - rustc::ty::<impl rustc::ty::context::TyCtxt>::par_body_owners::h2df1696af550d441
  45:     0x7f2ee8cd598d - rustc_typeck::check::typeck_item_bodies::ha35400c27617e81a
  46:     0x7f2ee8e9ac36 - rustc::ty::query::__query_compute::typeck_item_bodies::hf583e7cf90339324
  47:     0x7f2ee8d814e4 - rustc::dep_graph::graph::DepGraph::with_task_impl::h3a735b0e648e7716
  48:     0x7f2ee8dff118 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::h1b0c64af69e1ce8f
  49:     0x7f2ee8da4bae - rustc::util::common::time::hd74d8c2dc5c39254
  50:     0x7f2ee8e8845c - rustc_typeck::check_crate::hcb89034957ab6be5
  51:     0x7f2ee88b2cc4 - rustc_interface::passes::analysis::h86183d8934bc78f6
  52:     0x7f2ee8716962 - rustc::ty::query::__query_compute::analysis::heb964b4c6538bd5f
  53:     0x7f2ee8738e31 - rustc::dep_graph::graph::DepGraph::with_task_impl::hb26b6d3880f3aceb
  54:     0x7f2ee87762b8 - rustc::ty::query::plumbing::<impl rustc::ty::context::TyCtxt>::get_query::hcaa46aabeafd9f3a
  55:     0x7f2ee872d95a - rustc_interface::passes::BoxedGlobalCtxt::access::{{closure}}::h42f93dad97389f0e
  56:     0x7f2ee87eb3fa - rustc_interface::passes::create_global_ctxt::{{closure}}::h098d28aa69d1d794
  57:     0x7f2ee872d6be - rustc_interface::passes::BoxedGlobalCtxt::enter::h3fe2135e3ea0e68f
  58:     0x7f2ee876c395 - rustc_interface::interface::run_compiler_in_existing_thread_pool::h74fe8698afc5355f
  59:     0x7f2ee871a201 - std::thread::local::LocalKey<T>::with::h1335fb5b8417d248
  60:     0x7f2ee87130ee - scoped_tls::ScopedKey<T>::set::h86ea0176693c2757
  61:     0x7f2ee8739662 - syntax::with_globals::h7f2fc43fa8fbf963
  62:     0x7f2ee87144fb - std::sys_common::backtrace::__rust_begin_short_backtrace::hbdb7b75ec205d89c
  63:     0x7f2ee8257aca - __rust_maybe_catch_panic
                               at src/libpanic_unwind/lib.rs:81
  64:     0x7f2ee872ef29 - core::ops::function::FnOnce::call_once{{vtable.shim}}::h34e4c42d025bfebf
  65:     0x7f2ee822883f - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::h8c2b476dfb8616ca
                               at /rustc/412f43ac5b4ae8c3599e71c6972112e9be4758fa/src/liballoc/boxed.rs:942
  66:     0x7f2ee82564f0 - <alloc::boxed::Box<F> as core::ops::function::FnOnce<A>>::call_once::he47b96da53271318
                               at /rustc/412f43ac5b4ae8c3599e71c6972112e9be4758fa/src/liballoc/boxed.rs:942
  67:     0x7f2ee82564f0 - std::sys_common::thread::start_thread::h7e2276dd96733930
                               at src/libstd/sys_common/thread.rs:13
  68:     0x7f2ee82564f0 - std::sys::unix::thread::Thread::new::thread_start::h8ea1856ee3d32871
                               at src/libstd/sys/unix/thread.rs:79
  69:     0x7f2ee7fc36db - start_thread
  70:     0x7f2ee78e088f - __clone
  71:                0x0 - <unknown>

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

note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.41.0-nightly (412f43ac5 2019-11-24) running on x86_64-unknown-linux-gnu

note: compiler flags: -C debuginfo=2 -C incremental --crate-type bin

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

query stack during panic:
#0 [typeck_tables_of] processing `login_auth`
#1 [typeck_item_bodies] type-checking all item bodies
#2 [analysis] running analysis passes on this crate
end of query stack

Source code:

#![feature(proc_macro_hygiene, decl_macro)]
#[macro_use]
extern crate rocket;
extern crate tera;
#[macro_use]
extern crate rocket_contrib;

use rocket_contrib::json::Json;
use rocket_contrib::templates::Template;
use serde::{Deserialize, Serialize};

use rocket::fairing::AdHoc;
use rocket_contrib::databases::mongodb;
use std::collections::HashMap;

use mongodb::{bson, doc, Bson};

use crate::rocket_contrib::databases::mongodb::db::ThreadedDatabase;

#[database("main_db")]
struct MainDbConnection(mongodb::db::Database);

#[derive(Deserialize, Debug)]
struct LoginData {
    username: String,
    password: String,
}

#[derive(Serialize)]
struct JsonResponse {
    status: String,
}

#[post("/", data = "<LoginData>")]
fn login_auth(conn: MainDbConnection, LoginData: Json<LoginData>) -> Json<JsonResponse> {
    let doc = doc! {"name":"six@gmail.com", "password":"123123"};
    let mut cursor = conn.collection("users").find_one(Some(doc), None).unwrap();

    match cursor {
        Some(Ok(doc)) => println!("{:?}", doc.get("name")),
        Some(Err(cursor.unwrap())) => panic!("Query error"),
        None => panic!("None"),
    }
    Json(JsonResponse {
        status: String::from("Ok"),
    })
}

#[get("/")]
fn index() -> Template {
    let context: HashMap<&str, &str> = HashMap::new();
    Template::render("index", &context)
}

fn rocket() -> rocket::Rocket {
    rocket::ignite()
        .attach(MainDbConnection::fairing())
        .attach(Template::fairing())
        .mount("/", routes![index])
        .mount("/auth", routes![login_auth])
}

fn main() {
    rocket().launch();
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

Labels

A-typesystemArea: The type systemC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️P-highHigh priorityT-compilerRelevant to the compiler team, which will review and decide on the PR/issue.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions