rename Tables
to TypeckTables
This commit is contained in:
parent
80b5f98d03
commit
282f7a3c44
52 changed files with 183 additions and 183 deletions
|
@ -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>,
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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),
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
|
||||
|
|
|
@ -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>,
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
|
||||
|
|
|
@ -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> }
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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>
|
||||
}
|
||||
|
||||
|
|
|
@ -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={:?}",
|
||||
|
|
|
@ -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![] }
|
||||
}
|
||||
|
||||
|
|
|
@ -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> {
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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,
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
||||
|
|
|
@ -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(),
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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),
|
||||
};
|
||||
|
|
|
@ -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| {
|
||||
|
|
|
@ -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()
|
||||
};
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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 }
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
|
|
|
@ -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' };
|
||||
}
|
||||
|
|
|
@ -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' };
|
||||
}
|
||||
|
|
|
@ -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' };
|
||||
}
|
||||
|
|
|
@ -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' };
|
||||
}
|
||||
|
|
|
@ -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' };
|
||||
}
|
||||
|
|
|
@ -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' };
|
||||
}
|
||||
|
|
|
@ -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';
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue