rename Tables to TypeckTables

This commit is contained in:
Niko Matsakis 2017-01-25 16:24:00 -05:00
parent 80b5f98d03
commit 282f7a3c44
52 changed files with 183 additions and 183 deletions

View file

@ -18,7 +18,7 @@ use hir::{self, PatKind};
struct CFGBuilder<'a, 'tcx: 'a> {
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
graph: CFGGraph,
fn_exit: CFGIndex,
loop_scopes: Vec<LoopScope>,

View file

@ -326,15 +326,15 @@ The idea is that you can annotate a test like:
#[rustc_if_this_changed]
fn foo() { }
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
fn bar() { foo(); }
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
fn baz() { }
```
This will check whether there is a path in the dependency graph from
`Hir(foo)` to `Tables(bar)`. An error is reported for each
`Hir(foo)` to `TypeckTables(bar)`. An error is reported for each
`#[rustc_then_this_would_need]` annotation that indicates whether a
path exists. `//~ ERROR` annotations can then be used to test if a
path is found (as demonstrated above).
@ -371,27 +371,27 @@ A node is considered to match a filter if all of those strings appear in its
label. So, for example:
```
RUST_DEP_GRAPH_FILTER='-> Tables'
RUST_DEP_GRAPH_FILTER='-> TypeckTables'
```
would select the predecessors of all `Tables` nodes. Usually though you
want the `Tables` node for some particular fn, so you might write:
would select the predecessors of all `TypeckTables` nodes. Usually though you
want the `TypeckTables` node for some particular fn, so you might write:
```
RUST_DEP_GRAPH_FILTER='-> Tables & bar'
RUST_DEP_GRAPH_FILTER='-> TypeckTables & bar'
```
This will select only the `Tables` nodes for fns with `bar` in their name.
This will select only the `TypeckTables` nodes for fns with `bar` in their name.
Perhaps you are finding that when you change `foo` you need to re-type-check `bar`,
but you don't think you should have to. In that case, you might do:
```
RUST_DEP_GRAPH_FILTER='Hir&foo -> Tables & bar'
RUST_DEP_GRAPH_FILTER='Hir&foo -> TypeckTables & bar'
```
This will dump out all the nodes that lead from `Hir(foo)` to
`Tables(bar)`, from which you can (hopefully) see the source
`TypeckTables(bar)`, from which you can (hopefully) see the source
of the erroneous edge.
#### Tracking down incorrect edges
@ -417,7 +417,7 @@ dep-graph as described in the previous section and open `dep-graph.txt`
to see something like:
Hir(foo) -> Collect(bar)
Collect(bar) -> Tables(bar)
Collect(bar) -> TypeckTables(bar)
That first edge looks suspicious to you. So you set
`RUST_FORBID_DEP_GRAPH_EDGE` to `Hir&foo -> Collect&bar`, re-run, and

View file

@ -112,7 +112,7 @@ pub enum DepNode<D: Clone + Debug> {
SizedConstraint(D),
AssociatedItemDefIds(D),
InherentImpls(D),
Tables(D),
TypeckTables(D),
// The set of impls for a given trait. Ultimately, it would be
// nice to get more fine-grained here (e.g., to include a
@ -161,7 +161,7 @@ impl<D: Clone + Debug> DepNode<D> {
ItemSignature,
AssociatedItemDefIds,
InherentImpls,
Tables,
TypeckTables,
TraitImpls,
ReprHints,
}
@ -229,7 +229,7 @@ impl<D: Clone + Debug> DepNode<D> {
SizedConstraint(ref d) => op(d).map(SizedConstraint),
AssociatedItemDefIds(ref d) => op(d).map(AssociatedItemDefIds),
InherentImpls(ref d) => op(d).map(InherentImpls),
Tables(ref d) => op(d).map(Tables),
TypeckTables(ref d) => op(d).map(TypeckTables),
TraitImpls(ref d) => op(d).map(TraitImpls),
TraitItems(ref d) => op(d).map(TraitItems),
ReprHints(ref d) => op(d).map(ReprHints),

View file

@ -76,23 +76,23 @@ pub type Bound<T> = Option<T>;
pub type UnitResult<'tcx> = RelateResult<'tcx, ()>; // "unify result"
pub type FixupResult<T> = Result<T, FixupError>; // "fixup result"
/// A version of &ty::Tables which can be `Missing` (not needed),
/// A version of &ty::TypeckTables which can be `Missing` (not needed),
/// `InProgress` (during typeck) or `Interned` (result of typeck).
/// Only the `InProgress` version supports `borrow_mut`.
#[derive(Copy, Clone)]
pub enum InferTables<'a, 'gcx: 'a+'tcx, 'tcx: 'a> {
Interned(&'a ty::Tables<'gcx>),
InProgress(&'a RefCell<ty::Tables<'tcx>>),
Interned(&'a ty::TypeckTables<'gcx>),
InProgress(&'a RefCell<ty::TypeckTables<'tcx>>),
Missing
}
pub enum InferTablesRef<'a, 'gcx: 'a+'tcx, 'tcx: 'a> {
Interned(&'a ty::Tables<'gcx>),
InProgress(Ref<'a, ty::Tables<'tcx>>)
Interned(&'a ty::TypeckTables<'gcx>),
InProgress(Ref<'a, ty::TypeckTables<'tcx>>)
}
impl<'a, 'gcx, 'tcx> Deref for InferTablesRef<'a, 'gcx, 'tcx> {
type Target = ty::Tables<'tcx>;
type Target = ty::TypeckTables<'tcx>;
fn deref(&self) -> &Self::Target {
match *self {
InferTablesRef::Interned(tables) => tables,
@ -112,7 +112,7 @@ impl<'a, 'gcx, 'tcx> InferTables<'a, 'gcx, 'tcx> {
}
}
pub fn expect_interned(self) -> &'a ty::Tables<'gcx> {
pub fn expect_interned(self) -> &'a ty::TypeckTables<'gcx> {
match self {
InferTables::Interned(tables) => tables,
InferTables::InProgress(_) => {
@ -124,7 +124,7 @@ impl<'a, 'gcx, 'tcx> InferTables<'a, 'gcx, 'tcx> {
}
}
pub fn borrow_mut(self) -> RefMut<'a, ty::Tables<'tcx>> {
pub fn borrow_mut(self) -> RefMut<'a, ty::TypeckTables<'tcx>> {
match self {
InferTables::Interned(_) => {
bug!("InferTables: infcx.tables.borrow_mut() outside of type-checking");
@ -407,15 +407,15 @@ impl fmt::Display for FixupError {
pub trait InferEnv<'a, 'tcx> {
fn to_parts(self, tcx: TyCtxt<'a, 'tcx, 'tcx>)
-> (Option<&'a ty::Tables<'tcx>>,
Option<ty::Tables<'tcx>>,
-> (Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::TypeckTables<'tcx>>,
Option<ty::ParameterEnvironment<'tcx>>);
}
impl<'a, 'tcx> InferEnv<'a, 'tcx> for () {
fn to_parts(self, _: TyCtxt<'a, 'tcx, 'tcx>)
-> (Option<&'a ty::Tables<'tcx>>,
Option<ty::Tables<'tcx>>,
-> (Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::TypeckTables<'tcx>>,
Option<ty::ParameterEnvironment<'tcx>>) {
(None, None, None)
}
@ -423,26 +423,26 @@ impl<'a, 'tcx> InferEnv<'a, 'tcx> for () {
impl<'a, 'tcx> InferEnv<'a, 'tcx> for ty::ParameterEnvironment<'tcx> {
fn to_parts(self, _: TyCtxt<'a, 'tcx, 'tcx>)
-> (Option<&'a ty::Tables<'tcx>>,
Option<ty::Tables<'tcx>>,
-> (Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::TypeckTables<'tcx>>,
Option<ty::ParameterEnvironment<'tcx>>) {
(None, None, Some(self))
}
}
impl<'a, 'tcx> InferEnv<'a, 'tcx> for (&'a ty::Tables<'tcx>, ty::ParameterEnvironment<'tcx>) {
impl<'a, 'tcx> InferEnv<'a, 'tcx> for (&'a ty::TypeckTables<'tcx>, ty::ParameterEnvironment<'tcx>) {
fn to_parts(self, _: TyCtxt<'a, 'tcx, 'tcx>)
-> (Option<&'a ty::Tables<'tcx>>,
Option<ty::Tables<'tcx>>,
-> (Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::TypeckTables<'tcx>>,
Option<ty::ParameterEnvironment<'tcx>>) {
(Some(self.0), None, Some(self.1))
}
}
impl<'a, 'tcx> InferEnv<'a, 'tcx> for (ty::Tables<'tcx>, ty::ParameterEnvironment<'tcx>) {
impl<'a, 'tcx> InferEnv<'a, 'tcx> for (ty::TypeckTables<'tcx>, ty::ParameterEnvironment<'tcx>) {
fn to_parts(self, _: TyCtxt<'a, 'tcx, 'tcx>)
-> (Option<&'a ty::Tables<'tcx>>,
Option<ty::Tables<'tcx>>,
-> (Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::TypeckTables<'tcx>>,
Option<ty::ParameterEnvironment<'tcx>>) {
(None, Some(self.0), Some(self.1))
}
@ -450,8 +450,8 @@ impl<'a, 'tcx> InferEnv<'a, 'tcx> for (ty::Tables<'tcx>, ty::ParameterEnvironmen
impl<'a, 'tcx> InferEnv<'a, 'tcx> for hir::BodyId {
fn to_parts(self, tcx: TyCtxt<'a, 'tcx, 'tcx>)
-> (Option<&'a ty::Tables<'tcx>>,
Option<ty::Tables<'tcx>>,
-> (Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::TypeckTables<'tcx>>,
Option<ty::ParameterEnvironment<'tcx>>) {
let item_id = tcx.map.body_owner(self);
(Some(tcx.item_tables(tcx.map.local_def_id(item_id))),
@ -466,8 +466,8 @@ impl<'a, 'tcx> InferEnv<'a, 'tcx> for hir::BodyId {
pub struct InferCtxtBuilder<'a, 'gcx: 'a+'tcx, 'tcx: 'a> {
global_tcx: TyCtxt<'a, 'gcx, 'gcx>,
arena: DroplessArena,
fresh_tables: Option<RefCell<ty::Tables<'tcx>>>,
tables: Option<&'a ty::Tables<'gcx>>,
fresh_tables: Option<RefCell<ty::TypeckTables<'tcx>>>,
tables: Option<&'a ty::TypeckTables<'gcx>>,
param_env: Option<ty::ParameterEnvironment<'gcx>>,
projection_mode: Reveal,
}

View file

@ -337,7 +337,7 @@ pub struct LateContext<'a, 'tcx: 'a> {
pub tcx: TyCtxt<'a, 'tcx, 'tcx>,
/// Side-tables for the body we are in.
pub tables: &'a ty::Tables<'tcx>,
pub tables: &'a ty::TypeckTables<'tcx>,
/// The crate being checked.
pub krate: &'a hir::Crate,
@ -1212,7 +1212,7 @@ pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
let lint_store = mem::replace(&mut *tcx.sess.lint_store.borrow_mut(), LintStore::new());
let mut cx = LateContext {
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
krate: krate,
access_levels: access_levels,
lints: lint_store,

View file

@ -49,7 +49,7 @@ fn should_explore<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
struct MarkSymbolVisitor<'a, 'tcx: 'a> {
worklist: Vec<ast::NodeId>,
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
live_symbols: Box<FxHashSet<ast::NodeId>>,
struct_has_extern_repr: bool,
ignore_non_const_paths: bool,
@ -392,7 +392,7 @@ fn find_live<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
let mut symbol_visitor = MarkSymbolVisitor {
worklist: worklist,
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
live_symbols: box FxHashSet(),
struct_has_extern_repr: false,
ignore_non_const_paths: false,

View file

@ -52,7 +52,7 @@ fn type_is_unsafe_function(ty: Ty) -> bool {
struct EffectCheckVisitor<'a, 'tcx: 'a> {
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
/// Whether we're in an unsafe context.
unsafe_context: UnsafeContext,
@ -245,7 +245,7 @@ pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
let mut visitor = EffectCheckVisitor {
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
unsafe_context: UnsafeContext::new(SafeContext),
};

View file

@ -512,7 +512,7 @@ const ACC_USE: u32 = 4;
struct Liveness<'a, 'tcx: 'a> {
ir: &'a mut IrMaps<'a, 'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
s: Specials,
successors: Vec<LiveNode>,
users: Vec<Users>,

View file

@ -79,7 +79,7 @@ fn method_might_be_inlined<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
struct ReachableContext<'a, 'tcx: 'a> {
// The type context.
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
// The set of items which must be exported in the linkage sense.
reachable_symbols: NodeSet,
// A worklist of item IDs. Each item ID in this worklist will be inlined
@ -370,7 +370,7 @@ pub fn find_reachable<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
});
let mut reachable_context = ReachableContext {
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
reachable_symbols: NodeSet(),
worklist: Vec::new(),
any_library: any_library,

View file

@ -65,7 +65,7 @@ pub struct GlobalArenas<'tcx> {
trait_def: TypedArena<ty::TraitDef>,
adt_def: TypedArena<ty::AdtDef>,
mir: TypedArena<RefCell<Mir<'tcx>>>,
tables: TypedArena<ty::Tables<'tcx>>,
tables: TypedArena<ty::TypeckTables<'tcx>>,
}
impl<'tcx> GlobalArenas<'tcx> {
@ -192,7 +192,7 @@ pub struct CommonTypes<'tcx> {
}
#[derive(RustcEncodable, RustcDecodable)]
pub struct Tables<'tcx> {
pub struct TypeckTables<'tcx> {
/// Resolved definitions for `<T>::X` associated paths.
pub type_relative_path_defs: NodeMap<Def>,
@ -234,9 +234,9 @@ pub struct Tables<'tcx> {
pub fru_field_types: NodeMap<Vec<Ty<'tcx>>>
}
impl<'tcx> Tables<'tcx> {
pub fn empty() -> Tables<'tcx> {
Tables {
impl<'tcx> TypeckTables<'tcx> {
pub fn empty() -> TypeckTables<'tcx> {
TypeckTables {
type_relative_path_defs: NodeMap(),
node_types: FxHashMap(),
item_substs: NodeMap(),
@ -402,7 +402,7 @@ pub struct GlobalCtxt<'tcx> {
free_region_maps: RefCell<NodeMap<FreeRegionMap>>,
// FIXME: jroesch make this a refcell
pub tables: RefCell<DepTrackingMap<maps::Tables<'tcx>>>,
pub tables: RefCell<DepTrackingMap<maps::TypeckTables<'tcx>>>,
/// Maps from a trait item to the trait item "descriptor"
pub associated_items: RefCell<DepTrackingMap<maps::AssociatedItems<'tcx>>>,
@ -654,7 +654,7 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
self.global_arenas.mir.alloc(RefCell::new(mir))
}
pub fn alloc_tables(self, tables: ty::Tables<'gcx>) -> &'gcx ty::Tables<'gcx> {
pub fn alloc_tables(self, tables: ty::TypeckTables<'gcx>) -> &'gcx ty::TypeckTables<'gcx> {
self.global_arenas.tables.alloc(tables)
}

View file

@ -48,4 +48,4 @@ dep_map_ty! { ReprHints: ReprHints(DefId) -> Rc<Vec<attr::ReprAttr>> }
dep_map_ty! { Mir: Mir(DefId) -> &'tcx RefCell<mir::Mir<'tcx>> }
dep_map_ty! { ClosureKinds: ItemSignature(DefId) -> ty::ClosureKind }
dep_map_ty! { ClosureTypes: ItemSignature(DefId) -> ty::ClosureTy<'tcx> }
dep_map_ty! { Tables: Tables(DefId) -> &'tcx ty::Tables<'tcx> }
dep_map_ty! { TypeckTables: TypeckTables(DefId) -> &'tcx ty::TypeckTables<'tcx> }

View file

@ -69,7 +69,7 @@ pub use self::sty::TypeVariants::*;
pub use self::contents::TypeContents;
pub use self::context::{TyCtxt, GlobalArenas, tls};
pub use self::context::{Lift, Tables};
pub use self::context::{Lift, TypeckTables};
pub use self::trait_def::{TraitDef, TraitFlags};
@ -1917,11 +1917,11 @@ impl BorrowKind {
}
impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> {
pub fn body_tables(self, body: hir::BodyId) -> &'gcx Tables<'gcx> {
pub fn body_tables(self, body: hir::BodyId) -> &'gcx TypeckTables<'gcx> {
self.item_tables(self.map.body_owner_def_id(body))
}
pub fn item_tables(self, def_id: DefId) -> &'gcx Tables<'gcx> {
pub fn item_tables(self, def_id: DefId) -> &'gcx TypeckTables<'gcx> {
self.tables.memoize(def_id, || {
if def_id.is_local() {
// Closures' tables come from their outermost function,

View file

@ -69,7 +69,7 @@ fn create_e0004<'a>(sess: &'a Session, sp: Span, error_message: String) -> Diagn
struct MatchVisitor<'a, 'tcx: 'a> {
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
param_env: &'a ty::ParameterEnvironment<'tcx>
}

View file

@ -52,7 +52,7 @@ macro_rules! math {
fn lookup_variant_by_id<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
variant_def: DefId)
-> Option<(&'tcx Expr, Option<&'a ty::Tables<'tcx>>)> {
-> Option<(&'tcx Expr, Option<&'a ty::TypeckTables<'tcx>>)> {
if let Some(variant_node_id) = tcx.map.as_local_node_id(variant_def) {
let enum_node_id = tcx.map.get_parent(variant_node_id);
if let Some(ast_map::NodeItem(it)) = tcx.map.find(enum_node_id) {
@ -81,7 +81,7 @@ pub fn lookup_const_by_id<'a, 'tcx: 'a>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
def_id: DefId,
substs: Option<&'tcx Substs<'tcx>>)
-> Option<(&'tcx Expr,
Option<&'a ty::Tables<'tcx>>,
Option<&'a ty::TypeckTables<'tcx>>,
Option<ty::Ty<'tcx>>)> {
if let Some(node_id) = tcx.map.as_local_node_id(def_id) {
match tcx.map.find(node_id) {
@ -154,7 +154,7 @@ pub fn lookup_const_by_id<'a, 'tcx: 'a>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
}
fn lookup_const_fn_by_id<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>, def_id: DefId)
-> Option<(&'tcx hir::Body, Option<&'a ty::Tables<'tcx>>)>
-> Option<(&'tcx hir::Body, Option<&'a ty::TypeckTables<'tcx>>)>
{
if let Some(node_id) = tcx.map.as_local_node_id(def_id) {
FnLikeNode::from_node(tcx.map.get(node_id)).and_then(|fn_like| {
@ -226,7 +226,7 @@ pub fn note_const_eval_err<'a, 'tcx>(
pub struct ConstContext<'a, 'tcx: 'a> {
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: Option<&'a ty::Tables<'tcx>>,
tables: Option<&'a ty::TypeckTables<'tcx>>,
fn_args: Option<DefIdMap<ConstVal>>
}
@ -240,7 +240,7 @@ impl<'a, 'tcx> ConstContext<'a, 'tcx> {
}
}
pub fn with_tables(tcx: TyCtxt<'a, 'tcx, 'tcx>, tables: &'a ty::Tables<'tcx>) -> Self {
pub fn with_tables(tcx: TyCtxt<'a, 'tcx, 'tcx>, tables: &'a ty::TypeckTables<'tcx>) -> Self {
ConstContext {
tcx: tcx,
tables: Some(tables),
@ -920,10 +920,10 @@ fn infer<'a, 'tcx>(i: ConstInt,
fn resolve_trait_associated_const<'a, 'tcx: 'a>(
tcx: TyCtxt<'a, 'tcx, 'tcx>,
trait_item_id: DefId,
default_value: Option<(&'tcx Expr, Option<&'a ty::Tables<'tcx>>, Option<ty::Ty<'tcx>>)>,
default_value: Option<(&'tcx Expr, Option<&'a ty::TypeckTables<'tcx>>, Option<ty::Ty<'tcx>>)>,
trait_id: DefId,
rcvr_substs: &'tcx Substs<'tcx>
) -> Option<(&'tcx Expr, Option<&'a ty::Tables<'tcx>>, Option<ty::Ty<'tcx>>)>
) -> Option<(&'tcx Expr, Option<&'a ty::TypeckTables<'tcx>>, Option<ty::Ty<'tcx>>)>
{
let trait_ref = ty::Binder(ty::TraitRef::new(trait_id, rcvr_substs));
debug!("resolve_trait_associated_const: trait_ref={:?}",

View file

@ -264,13 +264,13 @@ impl<'tcx> fmt::Display for Pattern<'tcx> {
pub struct PatternContext<'a, 'gcx: 'tcx, 'tcx: 'a> {
pub tcx: TyCtxt<'a, 'gcx, 'tcx>,
pub tables: &'a ty::Tables<'gcx>,
pub tables: &'a ty::TypeckTables<'gcx>,
pub errors: Vec<PatternError>,
}
impl<'a, 'gcx, 'tcx> Pattern<'tcx> {
pub fn from_hir(tcx: TyCtxt<'a, 'gcx, 'tcx>,
tables: &'a ty::Tables<'gcx>,
tables: &'a ty::TypeckTables<'gcx>,
pat: &hir::Pat) -> Self {
let mut pcx = PatternContext::new(tcx, tables);
let result = pcx.lower_pattern(pat);
@ -283,7 +283,7 @@ impl<'a, 'gcx, 'tcx> Pattern<'tcx> {
}
impl<'a, 'gcx, 'tcx> PatternContext<'a, 'gcx, 'tcx> {
pub fn new(tcx: TyCtxt<'a, 'gcx, 'tcx>, tables: &'a ty::Tables<'gcx>) -> Self {
pub fn new(tcx: TyCtxt<'a, 'gcx, 'tcx>, tables: &'a ty::TypeckTables<'gcx>) -> Self {
PatternContext { tcx: tcx, tables: tables, errors: vec![] }
}

View file

@ -237,7 +237,7 @@ impl PpSourceMode {
arenas,
id,
|tcx, _, _, _| {
let empty_tables = ty::Tables::empty();
let empty_tables = ty::TypeckTables::empty();
let annotation = TypedAnnotation {
tcx: tcx,
tables: Cell::new(&empty_tables)
@ -493,7 +493,7 @@ impl<'ast> pprust::PpAnn for HygieneAnnotation<'ast> {
struct TypedAnnotation<'a, 'tcx: 'a> {
tcx: TyCtxt<'a, 'tcx, 'tcx>,
tables: Cell<&'a ty::Tables<'tcx>>,
tables: Cell<&'a ty::TypeckTables<'tcx>>,
}
impl<'b, 'tcx> HirPrinterSupport<'tcx> for TypedAnnotation<'b, 'tcx> {

View file

@ -14,11 +14,11 @@
//! we will check that a suitable node for that item either appears
//! or does not appear in the dep-graph, as appropriate:
//!
//! - `#[rustc_dirty(label="Tables", cfg="rev2")]` if we are
//! - `#[rustc_dirty(label="TypeckTables", cfg="rev2")]` if we are
//! in `#[cfg(rev2)]`, then there MUST NOT be a node
//! `DepNode::Tables(X)` where `X` is the def-id of the
//! `DepNode::TypeckTables(X)` where `X` is the def-id of the
//! current node.
//! - `#[rustc_clean(label="Tables", cfg="rev2")]` same as above,
//! - `#[rustc_clean(label="TypeckTables", cfg="rev2")]` same as above,
//! except that the node MUST exist.
//!
//! Errors are reported if we are in the suitable configuration but

View file

@ -56,7 +56,7 @@ impl<'q> Predecessors<'q> {
// if -Z query-dep-graph is passed, save more extended data
// to enable better unit testing
DepNode::Tables(_) |
DepNode::TypeckTables(_) |
DepNode::TransCrateItem(_) => tcx.sess.opts.debugging_opts.query_dep_graph,
_ => false,

View file

@ -21,7 +21,7 @@ use rustc_serialize::Encodable;
#[derive(RustcEncodable, RustcDecodable)]
pub struct Ast<'tcx> {
pub body: Lazy<hir::Body>,
pub tables: Lazy<ty::Tables<'tcx>>,
pub tables: Lazy<ty::TypeckTables<'tcx>>,
pub nested_bodies: LazySeq<hir::Body>,
pub rvalue_promotable_to_static: bool,
}

View file

@ -170,7 +170,7 @@ impl<'a, 'gcx, 'tcx> Cx<'a, 'gcx, 'tcx> {
self.tcx
}
pub fn tables(&self) -> &'a ty::Tables<'gcx> {
pub fn tables(&self) -> &'a ty::TypeckTables<'gcx> {
self.infcx.tables.expect_interned()
}

View file

@ -60,7 +60,7 @@ struct CheckCrateVisitor<'a, 'tcx: 'a> {
promotable: bool,
mut_rvalue_borrows: NodeSet,
param_env: ty::ParameterEnvironment<'tcx>,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
}
impl<'a, 'gcx> CheckCrateVisitor<'a, 'gcx> {
@ -462,7 +462,7 @@ pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>) {
tcx.visit_all_item_likes_in_krate(DepNode::CheckConst,
&mut CheckCrateVisitor {
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
in_fn: false,
promotable: false,
mut_rvalue_borrows: NodeSet(),

View file

@ -392,7 +392,7 @@ struct PrivacyVisitor<'a, 'tcx: 'a> {
tcx: TyCtxt<'a, 'tcx, 'tcx>,
curitem: DefId,
in_foreign: bool,
tables: &'a ty::Tables<'tcx>,
tables: &'a ty::TypeckTables<'tcx>,
}
impl<'a, 'tcx> PrivacyVisitor<'a, 'tcx> {
@ -1212,7 +1212,7 @@ pub fn check_crate<'a, 'tcx>(tcx: TyCtxt<'a, 'tcx, 'tcx>,
curitem: DefId::local(CRATE_DEF_INDEX),
in_foreign: false,
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
};
intravisit::walk_crate(&mut visitor, krate);

View file

@ -84,7 +84,7 @@ pub mod recorder {
pub struct SaveContext<'l, 'tcx: 'l> {
tcx: TyCtxt<'l, 'tcx, 'tcx>,
tables: &'l ty::Tables<'tcx>,
tables: &'l ty::TypeckTables<'tcx>,
analysis: &'l ty::CrateAnalysis<'tcx>,
span_utils: SpanUtils<'tcx>,
}
@ -899,7 +899,7 @@ pub fn process_crate<'l, 'tcx>(tcx: TyCtxt<'l, 'tcx, 'tcx>,
let save_ctxt = SaveContext {
tcx: tcx,
tables: &ty::Tables::empty(),
tables: &ty::TypeckTables::empty(),
analysis: analysis,
span_utils: SpanUtils::new(&tcx.sess),
};

View file

@ -483,7 +483,7 @@ pub struct InheritedBuilder<'a, 'gcx: 'a+'tcx, 'tcx: 'a> {
impl<'a, 'gcx, 'tcx> CrateCtxt<'a, 'gcx> {
pub fn inherited(&'a self, id: ast::NodeId)
-> InheritedBuilder<'a, 'gcx, 'tcx> {
let tables = ty::Tables::empty();
let tables = ty::TypeckTables::empty();
let param_env = ParameterEnvironment::for_item(self.tcx, id);
InheritedBuilder {
ccx: self,
@ -628,14 +628,14 @@ pub fn check_item_types(ccx: &CrateCtxt) -> CompileResult {
pub fn check_item_bodies(ccx: &CrateCtxt) -> CompileResult {
ccx.tcx.sess.track_errors(|| {
let mut visit = CheckItemBodiesVisitor { ccx: ccx };
ccx.tcx.visit_all_item_likes_in_krate(DepNode::Tables, &mut visit);
ccx.tcx.visit_all_item_likes_in_krate(DepNode::TypeckTables, &mut visit);
// Process deferred obligations, now that all functions
// bodies have been fully inferred.
for (&item_id, obligations) in ccx.deferred_obligations.borrow().iter() {
// Use the same DepNode as for the body of the original function/item.
let def_id = ccx.tcx.map.local_def_id(item_id);
let _task = ccx.tcx.dep_graph.in_task(DepNode::Tables(def_id));
let _task = ccx.tcx.dep_graph.in_task(DepNode::TypeckTables(def_id));
let param_env = ParameterEnvironment::for_item(ccx.tcx, item_id);
ccx.tcx.infer_ctxt(param_env, Reveal::NotSpecializable).enter(|infcx| {

View file

@ -68,7 +68,7 @@ impl<'a, 'gcx, 'tcx> FnCtxt<'a, 'gcx, 'tcx> {
struct WritebackCx<'cx, 'gcx: 'cx+'tcx, 'tcx: 'cx> {
fcx: &'cx FnCtxt<'cx, 'gcx, 'tcx>,
tables: ty::Tables<'gcx>,
tables: ty::TypeckTables<'gcx>,
// Mapping from free regions of the function to the
// early-bound versions of them, visible from the
@ -81,7 +81,7 @@ impl<'cx, 'gcx, 'tcx> WritebackCx<'cx, 'gcx, 'tcx> {
fn new(fcx: &'cx FnCtxt<'cx, 'gcx, 'tcx>) -> WritebackCx<'cx, 'gcx, 'tcx> {
let mut wbcx = WritebackCx {
fcx: fcx,
tables: ty::Tables::empty(),
tables: ty::TypeckTables::empty(),
free_to_bound_regions: DefIdMap()
};

View file

@ -35,7 +35,7 @@ mod x {
mod y {
use Foo;
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR OK
pub fn use_char_assoc() {
// Careful here: in the representation, <char as Foo>::T gets

View file

@ -27,7 +27,7 @@ mod y {
use x;
// These dependencies SHOULD exist:
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR OK
pub fn y() {
x::x();
@ -39,7 +39,7 @@ mod z {
// These are expected to yield errors, because changes to `x`
// affect the BODY of `y`, but not its signature.
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR no path
pub fn z() {
y::y();

View file

@ -39,7 +39,7 @@ mod x {
mod y {
use {Foo, Bar};
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
pub fn with_char() {
char::method('a');
}
@ -48,7 +48,7 @@ mod y {
mod z {
use y;
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
pub fn z() {
y::with_char();
}

View file

@ -38,7 +38,7 @@ mod x {
mod y {
use {Foo, Bar};
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
pub fn call_bar() {
char::bar('a');
}
@ -47,7 +47,7 @@ mod y {
mod z {
use y;
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
pub fn z() {
y::call_bar();
}

View file

@ -34,25 +34,25 @@ mod x {
mod y {
use Foo;
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR OK
pub fn with_char() {
char::method('a');
}
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR OK
pub fn take_foo_with_char() {
take_foo::<char>('a');
}
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR OK
pub fn with_u32() {
u32::method(22);
}
#[rustc_then_this_would_need(Tables)] //~ ERROR OK
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR OK
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR OK
pub fn take_foo_with_u32() {
take_foo::<u32>(22);
@ -66,7 +66,7 @@ mod z {
// These are expected to yield errors, because changes to `x`
// affect the BODY of `y`, but not its signature.
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
#[rustc_then_this_would_need(TransCrateItem)] //~ ERROR no path
pub fn z() {
y::with_char();

View file

@ -8,7 +8,7 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// Test that the `Tables` nodes for impl items are independent from
// Test that the `TypeckTables` nodes for impl items are independent from
// one another.
// compile-flags: -Z query-dep-graph
@ -27,7 +27,7 @@ impl Foo {
}
// ...should not cause us to recompute the tables for `with`!
#[rustc_then_this_would_need(Tables)] //~ ERROR no path
#[rustc_then_this_would_need(TypeckTables)] //~ ERROR no path
fn with(x: u8) -> Foo {
Foo { x: x }
}

View file

@ -32,7 +32,7 @@ extern crate point;
mod fn_calls_methods_in_same_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let x = Point { x: 2.0, y: 2.0 };
x.distance_from_origin();
@ -43,7 +43,7 @@ mod fn_calls_methods_in_same_impl {
mod fn_calls_free_fn {
use point::{self, Point};
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let x = Point { x: 2.0, y: 2.0 };
point::distance_squared(&x);
@ -54,7 +54,7 @@ mod fn_calls_free_fn {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -64,7 +64,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -74,7 +74,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -16,12 +16,12 @@
extern crate a;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn call_function0() {
a::function0(77);
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn call_function1() {
a::function1(77);
}

View file

@ -79,7 +79,7 @@ mod point {
mod fn_with_type_in_sig {
use point::Point;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn boop(p: Option<&Point>) -> f32 {
p.map(|p| p.total()).unwrap_or(0.0)
}
@ -95,7 +95,7 @@ mod fn_with_type_in_sig {
mod call_fn_with_type_in_sig {
use fn_with_type_in_sig;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn bip() -> f32 {
fn_with_type_in_sig::boop(None)
}
@ -111,7 +111,7 @@ mod call_fn_with_type_in_sig {
mod fn_with_type_in_body {
use point::Point;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn boop() -> f32 {
Point::origin().total()
}
@ -124,7 +124,7 @@ mod fn_with_type_in_body {
mod call_fn_with_type_in_body {
use fn_with_type_in_body;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn bip() -> f32 {
fn_with_type_in_body::boop()
}
@ -134,7 +134,7 @@ mod call_fn_with_type_in_body {
mod fn_make_struct {
use point::Point;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn make_origin(p: Point) -> Point {
Point { ..p }
}
@ -144,7 +144,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -154,7 +154,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -28,7 +28,7 @@ extern crate a;
use a::A;
use b::B;
//? #[rustc_clean(label="Tables", cfg="rpass2")]
//? #[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn main() {
A + B;
}

View file

@ -59,7 +59,7 @@ mod point {
mod fn_calls_methods_in_same_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let x = Point { x: 2.0, y: 2.0 };
x.distance_from_origin();
@ -70,7 +70,7 @@ mod fn_calls_methods_in_same_impl {
mod fn_calls_methods_in_another_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let mut x = Point { x: 2.0, y: 2.0 };
x.translate(3.0, 3.0);
@ -81,7 +81,7 @@ mod fn_calls_methods_in_another_impl {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -91,7 +91,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -101,7 +101,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -31,7 +31,7 @@ extern crate point;
mod fn_calls_methods_in_same_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let x = Point { x: 2.0, y: 2.0 };
x.distance_from_origin();
@ -42,7 +42,7 @@ mod fn_calls_methods_in_same_impl {
mod fn_calls_methods_in_another_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let mut x = Point { x: 2.0, y: 2.0 };
x.translate(3.0, 3.0);
@ -53,7 +53,7 @@ mod fn_calls_methods_in_another_impl {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -63,7 +63,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -73,7 +73,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -59,7 +59,7 @@ mod point {
mod fn_calls_methods_in_same_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let x = Point { x: 2.0, y: 2.0 };
x.distance_from_origin();
@ -70,7 +70,7 @@ mod fn_calls_methods_in_same_impl {
mod fn_calls_methods_in_another_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let mut x = Point { x: 2.0, y: 2.0 };
x.translate(3.0, 3.0);
@ -81,7 +81,7 @@ mod fn_calls_methods_in_another_impl {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -91,7 +91,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -101,7 +101,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -32,7 +32,7 @@ extern crate point;
mod fn_calls_methods_in_same_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let x = Point { x: 2.0, y: 2.0 };
x.distance_from_origin();
@ -43,7 +43,7 @@ mod fn_calls_methods_in_same_impl {
mod fn_calls_methods_in_another_impl {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn dirty() {
let mut x = Point { x: 2.0, y: 2.0 };
x.translate(3.0, 3.0);
@ -54,7 +54,7 @@ mod fn_calls_methods_in_another_impl {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -64,7 +64,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -74,7 +74,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -50,7 +50,7 @@ mod point {
mod fn_calls_changed_method {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let p = Point { x: 2.0, y: 2.0 };
p.distance_from_origin();
@ -61,7 +61,7 @@ mod fn_calls_changed_method {
mod fn_calls_another_method {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let p = Point { x: 2.0, y: 2.0 };
p.x();
@ -72,7 +72,7 @@ mod fn_calls_another_method {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -82,7 +82,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -92,7 +92,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -61,7 +61,7 @@ mod point {
mod fn_calls_changed_method {
use point::Point;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let p = Point { x: 2.0, y: 2.0 };
p.distance_from_point(None);
@ -72,7 +72,7 @@ mod fn_calls_changed_method {
mod fn_calls_another_method {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn check() {
let p = Point { x: 2.0, y: 2.0 };
p.x();
@ -83,7 +83,7 @@ mod fn_calls_another_method {
mod fn_make_struct {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn make_origin() -> Point {
Point { x: 2.0, y: 2.0 }
}
@ -93,7 +93,7 @@ mod fn_make_struct {
mod fn_read_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn get_x(p: Point) -> f32 {
p.x
}
@ -103,7 +103,7 @@ mod fn_read_field {
mod fn_write_field {
use point::Point;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn inc_x(p: &mut Point) {
p.x += 1.0;
}

View file

@ -35,20 +35,20 @@ mod x {
mod y {
use x;
#[rustc_clean(label="Tables", cfg="cfail2")]
#[rustc_clean(label="TypeckTables", cfg="cfail2")]
#[rustc_clean(label="TransCrateItem", cfg="cfail2")]
pub fn y() {
//[cfail2]~^ ERROR `Tables("y::y")` not found in dep graph, but should be clean
//[cfail2]~^ ERROR `TypeckTables("y::y")` not found in dep graph, but should be clean
//[cfail2]~| ERROR `TransCrateItem("y::y")` not found in dep graph, but should be clean
x::x();
}
}
mod z {
#[rustc_dirty(label="Tables", cfg="cfail2")]
#[rustc_dirty(label="TypeckTables", cfg="cfail2")]
#[rustc_dirty(label="TransCrateItem", cfg="cfail2")]
pub fn z() {
//[cfail2]~^ ERROR `Tables("z::z")` found in dep graph, but should be dirty
//[cfail2]~^ ERROR `TypeckTables("z::z")` found in dep graph, but should be dirty
//[cfail2]~| ERROR `TransCrateItem("z::z")` found in dep graph, but should be dirty
}
}

View file

@ -31,7 +31,7 @@ mod x {
mod y {
use x;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn yyyy() {
x::xxxx();
}
@ -40,7 +40,7 @@ mod y {
mod z {
use y;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn z() {
y::yyyy();
}

View file

@ -22,15 +22,15 @@
extern crate a;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_clean(label="Tables", cfg="rpass3")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass3")]
pub fn use_X() -> u32 {
let x: a::X = 22;
x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="Tables", cfg="rpass3")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass3")]
pub fn use_Y() {
let x: a::Y = 'c';
}

View file

@ -27,7 +27,7 @@ mod x {
}
#[cfg(rpass2)]
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
#[rustc_dirty(label="TransCrateItem", cfg="rpass2")]
pub fn x() {
println!("{}", "2");
@ -37,7 +37,7 @@ mod x {
mod y {
use x;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
#[rustc_clean(label="TransCrateItem", cfg="rpass2")]
pub fn y() {
x::x();
@ -47,7 +47,7 @@ mod y {
mod z {
use y;
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
#[rustc_clean(label="TransCrateItem", cfg="rpass2")]
pub fn z() {
y::y();

View file

@ -31,17 +31,17 @@ pub struct Y {
pub y: char
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_X(x: X) -> u32 {
x.x as u32
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_EmbedX(embed: EmbedX) -> u32 {
embed.x.x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_Y() {
let x: Y = Y { y: 'c' };
}

View file

@ -34,7 +34,7 @@ pub struct Y {
pub y: char
}
#[rustc_dirty(label="Tables", cfg="cfail2")]
#[rustc_dirty(label="TypeckTables", cfg="cfail2")]
pub fn use_X() -> u32 {
let x: X = X { x: 22 };
//[cfail2]~^ ERROR struct `X` has no field named `x`
@ -42,13 +42,13 @@ pub fn use_X() -> u32 {
//[cfail2]~^ ERROR no field `x` on type `X`
}
#[rustc_dirty(label="Tables", cfg="cfail2")]
#[rustc_dirty(label="TypeckTables", cfg="cfail2")]
pub fn use_EmbedX(embed: EmbedX) -> u32 {
embed.x.x as u32
//[cfail2]~^ ERROR no field `x` on type `X`
}
#[rustc_clean(label="Tables", cfg="cfail2")]
#[rustc_clean(label="TypeckTables", cfg="cfail2")]
pub fn use_Y() {
let x: Y = Y { y: 'c' };
}

View file

@ -34,19 +34,19 @@ pub struct Y {
pub y: char
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_X() -> u32 {
let x: X = X { x: 22 };
x.x as u32
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_EmbedX(x: EmbedX) -> u32 {
let x: X = X { x: 22 };
x.x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_Y() {
let x: Y = Y { y: 'c' };
}

View file

@ -18,18 +18,18 @@ extern crate a;
use a::*;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_X() -> u32 {
let x: X = X { x: 22 };
x.x as u32
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_EmbedX(embed: EmbedX) -> u32 {
embed.x.x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_Y() {
let x: Y = Y { y: 'c' };
}

View file

@ -34,19 +34,19 @@ pub struct Y {
pub y: char
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_X() -> u32 {
let x: X = X { x: 22 };
x.x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_EmbedX(x: EmbedX) -> u32 {
let x: X = X { x: 22 };
x.x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_Y() {
let x: Y = Y { y: 'c' };
}

View file

@ -35,17 +35,17 @@ pub struct Y {
pub y: char
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_X(x: X) -> u32 {
x.x as u32
}
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
pub fn use_EmbedX(embed: EmbedX) -> u32 {
embed.x.x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
pub fn use_Y() {
let x: Y = Y { y: 'c' };
}

View file

@ -16,15 +16,15 @@
extern crate a;
#[rustc_dirty(label="Tables", cfg="rpass2")]
#[rustc_clean(label="Tables", cfg="rpass3")]
#[rustc_dirty(label="TypeckTables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass3")]
pub fn use_X() -> u32 {
let x: a::X = 22;
x as u32
}
#[rustc_clean(label="Tables", cfg="rpass2")]
#[rustc_clean(label="Tables", cfg="rpass3")]
#[rustc_clean(label="TypeckTables", cfg="rpass2")]
#[rustc_clean(label="TypeckTables", cfg="rpass3")]
pub fn use_Y() {
let x: a::Y = 'c';
}