rustc 1.67.0-nightly (c5d82ed7a 2022-11-19)
binary: rustc
commit-hash: c5d82ed7a4ad94a538bb87e5016e7d5ce0bd434b
commit-date: 2022-11-19
host: aarch64-apple-darwin
release: 1.67.0-nightly
LLVM version: 15.0.4
rustc 1.67.0-nightly (b833ad56f 2022-11-18)
binary: rustc
commit-hash: b833ad56f46a0bbe0e8729512812a161e7dae28a
commit-date: 2022-11-18
host: aarch64-apple-darwin
release: 1.67.0-nightly
LLVM version: 15.0.4
rustc 1.66.0-beta.2 (0040709e3 2022-11-20)
binary: rustc
commit-hash: 0040709e39bfa159d099ee14628ad4ac72f91406
commit-date: 2022-11-20
host: aarch64-apple-darwin
release: 1.66.0-beta.2
LLVM version: 15.0.2
No error.
rustc 1.65.0 (897e37553 2022-11-02)
binary: rustc
commit-hash: 897e37553bba8b42751c67658967889d11ecd120
commit-date: 2022-11-02
host: aarch64-apple-darwin
release: 1.65.0
LLVM version: 15.0.0
No error.
warning: Error finalizing incremental compilation session directory `/Users/ross/Projects/2022-12-rust-ice-repro/target/debug/incremental/app-1h19fwfbfapnj/s-gfyl3ekz1u-1rggnpp-working`: No such file or directory (os error 2)
error: internal compiler error: no errors encountered even though `delay_span_bug` issued
error: internal compiler error: broken MIR in DropGlue(DefId(2:2801 ~ core[7323]::ptr::drop_in_place), Some(hyper::server::server::new_svc::State<hyper::server::tcp::addr_stream::AddrStream, futures_util::future::ready::Ready<std::result::Result<hyper::service::util::ServiceFn<[closure@warp::server::Server<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::unify::Unify<warp::filter::or::Or<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::head::{closure#0}]>::{closure#0}]>>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::path::tail::{closure#0}]>, [closure@warp::filters::fs::path_from_tail::{closure#0}]>>, warp::filter::map::Map<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_modified_since::IfModifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_modified_since::IfModifiedSince>, std::convert::Infallible>>>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_unmodified_since::IfUnmodifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_unmodified_since::IfUnmodifiedSince>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_range::IfRange>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_range::IfRange>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::range::Range>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::range::Range>, std::convert::Infallible>>>::{closure#0}]>>, [closure@warp::filters::fs::conditionals::{closure#0}]>>, fn(warp::filters::fs::ArcPath, warp::filters::fs::Conditionals) -> impl std::future::Future<Output = std::result::Result<warp::filters::fs::File, warp::reject::Rejection>> + std::marker::Send {warp::filters::fs::file_reply}>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, fn() -> impl std::future::Future<Output = std::result::Result<impl warp::reply::Reply, std::convert::Infallible>> {server::serve_foo}>>>>::bind_ephemeral<([u8; 4], u16)>::{closure#1}::{closure#0}::{closure#0}], hyper::body::body::Body>, std::convert::Infallible>>, hyper::service::util::ServiceFn<[closure@warp::server::Server<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::unify::Unify<warp::filter::or::Or<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::head::{closure#0}]>::{closure#0}]>>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::path::tail::{closure#0}]>, [closure@warp::filters::fs::path_from_tail::{closure#0}]>>, warp::filter::map::Map<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_modified_since::IfModifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_modified_since::IfModifiedSince>, std::convert::Infallible>>>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_unmodified_since::IfUnmodifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_unmodified_since::IfUnmodifiedSince>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_range::IfRange>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_range::IfRange>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::range::Range>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::range::Range>, std::convert::Infallible>>>::{closure#0}]>>, [closure@warp::filters::fs::conditionals::{closure#0}]>>, fn(warp::filters::fs::ArcPath, warp::filters::fs::Conditionals) -> impl std::future::Future<Output = std::result::Result<warp::filters::fs::File, warp::reject::Rejection>> + std::marker::Send {warp::filters::fs::file_reply}>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, fn() -> impl std::future::Future<Output = std::result::Result<impl warp::reply::Reply, std::convert::Infallible>> {server::serve_foo}>>>>::bind_ephemeral<([u8; 4], u16)>::{closure#1}::{closure#0}::{closure#0}], hyper::body::body::Body>, hyper::common::exec::Exec, hyper::server::server::NoopWatcher>)) (after phase change to runtime-optimized) at bb3[0]:
Field projection `((*_1) as Connected).field[0]` specified type `hyper::server::conn::upgrades::UpgradeableConnection<hyper::server::tcp::addr_stream::AddrStream, hyper::service::util::ServiceFn<[closure@warp::server::Server<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::unify::Unify<warp::filter::or::Or<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::head::{closure#0}]>::{closure#0}]>>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::path::tail::{closure#0}]>, [closure@warp::filters::fs::path_from_tail::{closure#0}]>>, warp::filter::map::Map<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_modified_since::IfModifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_modified_since::IfModifiedSince>, std::convert::Infallible>>>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_unmodified_since::IfUnmodifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_unmodified_since::IfUnmodifiedSince>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_range::IfRange>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_range::IfRange>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::range::Range>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::range::Range>, std::convert::Infallible>>>::{closure#0}]>>, [closure@warp::filters::fs::conditionals::{closure#0}]>>, fn(warp::filters::fs::ArcPath, warp::filters::fs::Conditionals) -> impl std::future::Future<Output = std::result::Result<warp::filters::fs::File, warp::reject::Rejection>> + std::marker::Send {warp::filters::fs::file_reply}>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, fn() -> impl std::future::Future<Output = std::result::Result<impl warp::reply::Reply, std::convert::Infallible>> {server::serve_foo}>>>>::bind_ephemeral<([u8; 4], u16)>::{closure#1}::{closure#0}::{closure#0}], hyper::body::body::Body>, hyper::common::exec::Exec>`, but actual type is `<hyper::server::server::NoopWatcher as hyper::server::server::Watcher<hyper::server::tcp::addr_stream::AddrStream, hyper::service::util::ServiceFn<[closure@warp::server::Server<warp::filters::cors::internal::CorsFilter<warp::filter::or::Or<warp::filter::and_then::AndThen<warp::filter::and::And<warp::filter::and::And<warp::filter::unify::Unify<warp::filter::or::Or<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::head::{closure#0}]>::{closure#0}]>>>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::path::tail::{closure#0}]>, [closure@warp::filters::fs::path_from_tail::{closure#0}]>>, warp::filter::map::Map<warp::filter::and::And<warp::filter::and::And<warp::filter::and::And<warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_modified_since::IfModifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_modified_since::IfModifiedSince>, std::convert::Infallible>>>::{closure#0}]>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_unmodified_since::IfUnmodifiedSince>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_unmodified_since::IfUnmodifiedSince>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::if_range::IfRange>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::if_range::IfRange>, std::convert::Infallible>>>::{closure#0}]>>, warp::filter::FilterFn<[closure@warp::filter::filter_fn_one<[closure@warp::filters::header::optional2<headers::common::range::Range>::{closure#0}], futures_util::future::ready::Ready<std::result::Result<std::option::Option<headers::common::range::Range>, std::convert::Infallible>>>::{closure#0}]>>, [closure@warp::filters::fs::conditionals::{closure#0}]>>, fn(warp::filters::fs::ArcPath, warp::filters::fs::Conditionals) -> impl std::future::Future<Output = std::result::Result<warp::filters::fs::File, warp::reject::Rejection>> + std::marker::Send {warp::filters::fs::file_reply}>, warp::filter::and_then::AndThen<warp::filter::FilterFn<[closure@warp::filters::method::method_is<[closure@warp::filters::method::get::{closure#0}]>::{closure#0}]>, fn() -> impl std::future::Future<Output = std::result::Result<impl warp::reply::Reply, std::convert::Infallible>> {server::serve_foo}>>>>::bind_ephemeral<([u8; 4], u16)>::{closure#1}::{closure#0}::{closure#0}], hyper::body::body::Body>, hyper::common::exec::Exec>>::Future`
|
= note: delayed at compiler/rustc_const_eval/src/transform/validate.rs:88:36
Code
Minimal reproduction repo
Meta
Nightly
The bug was introduced in
nightly-2022-11-20(tested by bisecting nightlies from rustup). The previous day works fine.First broken version:
rustc --version --verbose:Last working version:
rustc --version --verboseBeta
rustc --version --verbose:No error.
Stable
rustc --version --verbose:No error.
Error output
Attached as a file because it's too long!
2022-12-rust-ice.txt
Here's a taste of the error output:
Backtrace