Skip to content

unexpected panic #47758

Closed
Closed
@d653

Description

@d653

I tried this code:

#![feature(proc_macro, conservative_impl_trait, generators)]
extern crate futures_await as futures;
use futures::future::ok;
use futures::prelude::*;

enum Test{
    A(i32),
    B
}

fn main() {}

#[async]
fn fun(test : Test) -> Result<(),()> {

    if let Test::A(ref _a) = test {
         await!(ok::<(), ()>(()));
    }

    Ok(())
}

Cargo.toml:

[package]
name = "rustcrash"
version = "0.1.0"
authors = ["me"]

[dependencies]
futures-await = "0.1"

This happened:

$ RUST_BACKTRACE=1 cargo build --verbose
       Fresh futures v0.1.18
       Fresh unicode-xid v0.1.0
       Fresh futures-await-await-macro v0.1.0
       Fresh proc-macro2 v0.1.10
       Fresh futures-await-quote v0.4.0
       Fresh futures-await-synom v0.12.0
       Fresh futures-await-syn v0.12.0
       Fresh futures-await-async-macro v0.1.1
       Fresh futures-await v0.1.0
   Compiling rustcrash v0.1.0 (file:///home/me/sources/rustcrash)
     Running `rustc --crate-name rustcrash src/main.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=d36b845e11bcd35d -C extra-filename=-d36b845e11bcd35d --out-dir /home/me/sources/rustcrash/target/debug/deps -C incremental=/home/me/sources/rustcrash/target/debug/incremental -L dependency=/home/me/sources/rustcrash/target/debug/deps --extern futures_await=/home/me/sources/rustcrash/target/debug/deps/libfutures_await-cf8240b5fc65c835.rlib`
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/blob/master/CONTRIBUTING.md#bug-reports

note: rustc 1.25.0-nightly (a0dcecff9 2018-01-24) running on x86_64-unknown-linux-gnu

note: run with `RUST_BACKTRACE=1` for a backtrace

thread 'rustc' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:335:21
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 libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1: std::sys_common::backtrace::print
             at libstd/sys_common/backtrace.rs:68
             at libstd/sys_common/backtrace.rs:57
   2: std::panicking::default_hook::{{closure}}
             at libstd/panicking.rs:380
   3: std::panicking::default_hook
             at libstd/panicking.rs:390
   4: std::panicking::rust_panic_with_hook
             at libstd/panicking.rs:576
   5: std::panicking::begin_panic
             at libstd/panicking.rs:537
   6: std::panicking::begin_panic_fmt
             at libstd/panicking.rs:521
   7: rust_begin_unwind
             at libstd/panicking.rs:497
   8: core::panicking::panic_fmt
             at libcore/panicking.rs:71
   9: core::panicking::panic
             at libcore/panicking.rs:51
  10: rustc::middle::region::ScopeTree::yield_in_scope_for_expr
  11: <rustc_borrowck::borrowck::check_loans::CheckLoanCtxt<'a, 'tcx> as rustc::middle::expr_use_visitor::Delegate<'tcx>>::borrow
  12: rustc::middle::mem_categorization::MemCategorizationContext::cat_pattern_
  13: rustc::middle::mem_categorization::MemCategorizationContext::cat_pattern_
  14: rustc::middle::expr_use_visitor::ExprUseVisitor::walk_pat
  15: rustc::middle::expr_use_visitor::ExprUseVisitor::walk_expr
  16: rustc::middle::expr_use_visitor::ExprUseVisitor::walk_expr
  17: rustc::middle::expr_use_visitor::ExprUseVisitor::walk_expr
  18: rustc::middle::expr_use_visitor::ExprUseVisitor::walk_local
  19: rustc::middle::expr_use_visitor::ExprUseVisitor::walk_expr
  20: rustc_borrowck::borrowck::check_loans::check_loans
  21: rustc_borrowck::borrowck::borrowck
  22: rustc::dep_graph::graph::DepGraph::with_task_impl
  23: rustc_errors::Handler::track_diagnostics
  24: rustc::ty::maps::plumbing::<impl rustc::ty::context::TyCtxt<'a, 'gcx, 'tcx>>::cycle_check
  25: rustc::ty::maps::<impl rustc::ty::maps::queries::borrowck<'tcx>>::force
  26: rustc::ty::maps::<impl rustc::ty::maps::queries::borrowck<'tcx>>::try_get
  27: rustc::ty::maps::TyCtxtAt::borrowck
  28: rustc::ty::maps::<impl rustc::ty::context::TyCtxt<'a, 'tcx, 'lcx>>::borrowck
  29: rustc_borrowck::borrowck::check_crate
  30: <std::thread::local::LocalKey<T>>::with
  31: <std::thread::local::LocalKey<T>>::with
  32: rustc_driver::driver::compile_input
  33: rustc_driver::run_compiler

error: Could not compile `rustcrash`.

Caused by:
  process didn't exit successfully: `rustc --crate-name rustcrash src/main.rs --crate-type bin --emit=dep-info,link -C debuginfo=2 -C metadata=d36b845e11bcd35d -C extra-filename=-d36b845e11bcd35d --out-dir /home/me/sources/rustcrash/target/debug/deps -C incremental=/home/me/sources/rustcrash/target/debug/incremental -L dependency=/home/me/sources/rustcrash/target/debug/deps --extern futures_await=/home/me/sources/rustcrash/target/debug/deps/libfutures_await-cf8240b5fc65c835.rlib` (exit code: 101)

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-borrow-checkerArea: The borrow checkerA-coroutinesArea: CoroutinesC-bugCategory: This is a bug.I-ICEIssue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️T-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