Skip to content
New issue

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

Bypass const_item_mutation if const's type has Drop impl #77251

Merged
merged 9 commits into from
Oct 3, 2020

Commits on Oct 1, 2020

  1. Configuration menu
    Copy the full SHA
    17db1cb View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0dfe7b6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    bb760b5 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    0f6284c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    352ce8b View commit details
    Browse the repository at this point in the history
  6. Skip dropck::check_drop_impl in is_const_item_without_destructor

    adt_destructor by default also validates the Drop impl using
    dropck::check_drop_impl, which contains an expect_local(). This
    leads to ICE in check_const_item_mutation if the const's type is
    not a local type.
    
        thread 'rustc' panicked at 'DefId::expect_local: `DefId(5:4805 ~ alloc[d7e9]::vec::{impl#50})` isn't local', compiler/rustc_span/src/def_id.rs:174:43
        stack backtrace:
           0: rust_begin_unwind
           1: rustc_span::def_id::DefId::expect_local::{{closure}}
           2: rustc_typeck::check::dropck::check_drop_impl
           3: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::calculate_dtor::{{closure}}
           4: rustc_middle::ty::trait_def::<impl rustc_middle::ty::context::TyCtxt>::for_each_relevant_impl
           5: rustc_middle::ty::util::<impl rustc_middle::ty::context::TyCtxt>::calculate_dtor
           6: rustc_typeck::check::adt_destructor
           7: rustc_middle::ty::query::<impl rustc_query_system::query::config::QueryAccessors<rustc_middle::ty::context::TyCtxt> for rustc_middle::ty::query::queries::adt_destructor>::compute
           8: rustc_query_system::dep_graph::graph::DepGraph<K>::with_task_impl
           9: rustc_query_system::query::plumbing::get_query_impl
          10: rustc_mir::transform::check_const_item_mutation::ConstMutationChecker::is_const_item_without_destructor
    dtolnay committed Oct 1, 2020
    Configuration menu
    Copy the full SHA
    41baa09 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    eef5104 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    75c2fdf View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    804d159 View commit details
    Browse the repository at this point in the history