Rust: "Erro construído, mas não emitido" com anotações de foguete

Criado em 20 jan. 2018  ·  1Comentário  ·  Fonte: rust-lang/rust

Eu fico com o compilador em pânico devido a erros de digitação nas anotações.

Tentei este código (observe o sinal de igual duplo próximo a "dados"):

#[put("/user", data= = "<user")]
fn put_user(user: Json<UpdateUser>, conn: db::Conn) -> Option<Json<Value>> {

Eu esperava ver isso acontecer: erro do compilador adequado.

Em vez disso, isso aconteceu:

error: internal compiler error: Error constructed but not emitted

error: internal compiler error: unexpected panic

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

Meta

rustc --version --verbose :

rustc 1.25.0-nightly (e6072a7b3 2018-01-13)
binary: rustc
commit-hash: e6072a7b3835f1875e81c9fd27799f9b20a0770c
commit-date: 2018-01-13
host: x86_64-unknown-linux-gnu
release: 1.25.0-nightly
LLVM version: 4.0

Backtrace:

stack backtrace:
   0:     0x7f2d41212bab - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::h5f6d52492915cd4e
                               at libstd/sys/unix/backtrace/tracing/gcc_s.rs:49
   1:     0x7f2d412278d1 - std::sys_common::backtrace::print::h431edf3a15f44d21
                               at libstd/sys_common/backtrace.rs:68
                               at libstd/sys_common/backtrace.rs:57
   2:     0x7f2d41200e00 - std::panicking::default_hook::{{closure}}::h6e28a80c80ad398d
                               at libstd/panicking.rs:380
   3:     0x7f2d412008c3 - std::panicking::default_hook::h5de848639374d88c
                               at libstd/panicking.rs:390
   4:     0x7f2d4120130b - std::panicking::rust_panic_with_hook::h8d3a97e694abd4a9
                               at libstd/panicking.rs:576
   5:     0x7f2d3bd07d73 - std::panicking::begin_panic::h4687289c571ccf20
   6:     0x7f2d3bd0d5b1 - <rustc_errors::diagnostic_builder::DiagnosticBuilder<'a> as core::ops::drop::Drop>::drop::h6583338a8bed2e63
   7:     0x7f2d3c10e520 - syntax::ext::expand::MacroExpander::expand_invoc::heb9ed1c8308e0934
   8:     0x7f2d3c10a129 - syntax::ext::expand::MacroExpander::expand::hc44fb8af8eb869d3
   9:     0x7f2d3c10942f - syntax::ext::expand::MacroExpander::expand_crate::hb1eba0195e743d05
  10:     0x7f2d415f4775 - rustc_driver::driver::phase_2_configure_and_expand::{{closure}}::h92112561a18f0999
  11:     0x7f2d415e63bc - rustc::util::common::time::h78a5414e854c78df
  12:     0x7f2d41663d6c - rustc_driver::driver::phase_2_configure_and_expand::h521e21b4d485b113
  13:     0x7f2d416600d5 - rustc_driver::driver::compile_input::hd4b83a842d537951
  14:     0x7f2d41669d21 - rustc_driver::run_compiler::h4a2fad22b4a0e7b6
  15:     0x7f2d4156d0c1 - std::sys_common::backtrace::__rust_begin_short_backtrace::hf660c0a0bc4d2860
  16:     0x7f2d4124c6ee - __rust_maybe_catch_panic
                               at libpanic_unwind/lib.rs:102
  17:     0x7f2d415b8be2 - <F as alloc::boxed::FnBox<A>>::call_box::hc2176842fb5e0582
  18:     0x7f2d412216e7 - std::sys_common::thread::start_thread::h63baebbba56a8844
                               at /checkout/src/liballoc/boxed.rs:827
                               at libstd/sys_common/thread.rs:24
  19:     0x7f2d4122acb8 - std::sys::unix::thread::Thread::new::thread_start::h30e00ffa8c70cc92
                               at libstd/sys/unix/thread.rs:90
  20:     0x7f2d3b25208b - start_thread
  21:     0x7f2d40ef4e1e - __GI___clone
  22:                0x0 - <unknown>

A-macros-2.0 C-bug I-ICE T-compiler

Comentários muito úteis

@anxiousmodernman relatou um problema semelhante em # 47315.

#[post("/task"), data = "<task>"] // Syntax error!
fn create_task(db: State<Arc<sled::Tree>>, task: Json<Task>) -> status::Accepted<String> {
    status::Accepted(Some(format!("success")))
}

O mesmo erro interno do compilador: erro construído, mas não emitido.

>Todos os comentários

@anxiousmodernman relatou um problema semelhante em # 47315.

#[post("/task"), data = "<task>"] // Syntax error!
fn create_task(db: State<Arc<sled::Tree>>, task: Json<Task>) -> status::Accepted<String> {
    status::Accepted(Some(format!("success")))
}

O mesmo erro interno do compilador: erro construído, mas não emitido.

Esta página foi útil?
0 / 5 - 0 avaliações