Auto merge of #51467 - toidiu:ak-51409, r=nikomatsakis
create separate dep-nodes for predicates_of and explicit_predicates_of Fix for https://github.com/rust-lang/rust/issues/51409 - added incremental compilation test for infer_outlives_requirements - created separate dep-node for explicit_predicates_of
This commit is contained in:
commit
18a00bd985
@ -500,6 +500,7 @@ define_dep_nodes!( <'tcx>
|
||||
[] TypeOfItem(DefId),
|
||||
[] GenericsOfItem(DefId),
|
||||
[] PredicatesOfItem(DefId),
|
||||
[] ExplicitPredicatesOfItem(DefId),
|
||||
[] InferredOutlivesOf(DefId),
|
||||
[] InferredOutlivesCrate(CrateNum),
|
||||
[] SuperPredicatesOfItem(DefId),
|
||||
|
@ -102,7 +102,7 @@ define_maps! { <'tcx>
|
||||
/// associated generics and predicates.
|
||||
[] fn generics_of: GenericsOfItem(DefId) -> &'tcx ty::Generics,
|
||||
[] fn predicates_of: PredicatesOfItem(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
[] fn explicit_predicates_of: PredicatesOfItem(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
[] fn explicit_predicates_of: ExplicitPredicatesOfItem(DefId) -> ty::GenericPredicates<'tcx>,
|
||||
|
||||
/// Maps from the def-id of a trait to the list of
|
||||
/// super-predicates. This is a subset of the full list of
|
||||
|
@ -1051,6 +1051,7 @@ pub fn force_from_dep_node<'a, 'gcx, 'lcx>(tcx: TyCtxt<'a, 'gcx, 'lcx>,
|
||||
DepKind::TypeOfItem => { force!(type_of, def_id!()); }
|
||||
DepKind::GenericsOfItem => { force!(generics_of, def_id!()); }
|
||||
DepKind::PredicatesOfItem => { force!(predicates_of, def_id!()); }
|
||||
DepKind::ExplicitPredicatesOfItem => { force!(explicit_predicates_of, def_id!()); }
|
||||
DepKind::InferredOutlivesOf => { force!(inferred_outlives_of, def_id!()); }
|
||||
DepKind::InferredOutlivesCrate => { force!(inferred_outlives_crate, LOCAL_CRATE); }
|
||||
DepKind::SuperPredicatesOfItem => { force!(super_predicates_of, def_id!()); }
|
||||
|
22
src/test/incremental/issue-51409.rs
Normal file
22
src/test/incremental/issue-51409.rs
Normal file
@ -0,0 +1,22 @@
|
||||
// Copyright 2014 The Rust Project Developers. See the COPYRIGHT
|
||||
// file at the top-level directory of this distribution and at
|
||||
// http://rust-lang.org/COPYRIGHT.
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
// revisions: rpass1
|
||||
|
||||
// Regression test that `infer_outlives_predicates` can be
|
||||
// used with incremental without an ICE.
|
||||
|
||||
#![feature(infer_outlives_requirements)]
|
||||
|
||||
struct Foo<'a, T> {
|
||||
x: &'a T
|
||||
}
|
||||
|
||||
fn main() { }
|
Loading…
x
Reference in New Issue
Block a user