From dc4a4ada5822bf90ca271afbbdfb26079eb66d9c Mon Sep 17 00:00:00 2001 From: Niko Matsakis Date: Tue, 1 Sep 2015 12:35:05 -0400 Subject: [PATCH] move LOCAL_CRATE to cstore --- src/librustc/metadata/cstore.rs | 4 ++++ src/librustc/metadata/decoder.rs | 3 ++- src/librustc/metadata/encoder.rs | 3 ++- src/librustc/middle/astencode.rs | 3 ++- src/librustc/middle/def.rs | 3 ++- src/librustc/middle/def_id.rs | 5 +---- src/librustc/middle/reachable.rs | 3 ++- src/librustc/middle/stability.rs | 3 ++- src/librustc/middle/traits/coherence.rs | 3 ++- src/librustc/middle/traits/select.rs | 3 ++- src/librustc/middle/ty/mod.rs | 3 ++- src/librustc_borrowck/borrowck/fragments.rs | 3 ++- src/librustc_trans/save/mod.rs | 3 ++- src/librustc_trans/trans/base.rs | 3 ++- src/librustc_trans/trans/callee.rs | 3 ++- src/librustc_trans/trans/consts.rs | 3 ++- src/librustc_typeck/astconv.rs | 3 ++- src/librustc_typeck/check/callee.rs | 3 ++- src/librustc_typeck/check/dropck.rs | 3 ++- src/librustc_typeck/check/mod.rs | 3 ++- src/librustc_typeck/coherence/mod.rs | 3 ++- src/librustc_typeck/coherence/orphan.rs | 3 ++- src/librustc_typeck/coherence/overlap.rs | 3 ++- src/librustc_typeck/collect.rs | 3 ++- src/librustc_typeck/variance.rs | 3 ++- src/librustdoc/clean/mod.rs | 3 ++- src/librustdoc/html/format.rs | 3 ++- src/librustdoc/html/render.rs | 1 + 28 files changed, 56 insertions(+), 29 deletions(-) diff --git a/src/librustc/metadata/cstore.rs b/src/librustc/metadata/cstore.rs index 5f60fa8ff40..915027041bc 100644 --- a/src/librustc/metadata/cstore.rs +++ b/src/librustc/metadata/cstore.rs @@ -109,6 +109,10 @@ pub struct CStore { pub intr: Rc, } +/// Item definitions in the currently-compiled crate would have the CrateNum +/// LOCAL_CRATE in their DefId. +pub const LOCAL_CRATE: ast::CrateNum = 0; + impl CStore { pub fn new(intr: Rc) -> CStore { CStore { diff --git a/src/librustc/metadata/decoder.rs b/src/librustc/metadata/decoder.rs index 77863ee3c87..2e7a49b25fe 100644 --- a/src/librustc/metadata/decoder.rs +++ b/src/librustc/metadata/decoder.rs @@ -20,6 +20,7 @@ use rustc_front::hir; use back::svh::Svh; use metadata::cstore::crate_metadata; +use metadata::cstore::LOCAL_CRATE; use metadata::common::*; use metadata::csearch::MethodInfo; use metadata::csearch; @@ -29,7 +30,7 @@ use metadata::index; use metadata::inline::InlinedItem; use metadata::tydecode::TyDecoder; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::lang_items; use middle::subst; use middle::ty::{ImplContainer, TraitContainer}; diff --git a/src/librustc/metadata/encoder.rs b/src/librustc/metadata/encoder.rs index 0d83103e0bb..126626e3a20 100644 --- a/src/librustc/metadata/encoder.rs +++ b/src/librustc/metadata/encoder.rs @@ -17,12 +17,13 @@ use back::svh::Svh; use session::config; use metadata::common::*; use metadata::cstore; +use metadata::cstore::LOCAL_CRATE; use metadata::decoder; use metadata::tyencode; use metadata::index::{self, IndexEntry}; use metadata::inline::InlinedItemRef; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::dependency_format::Linkage; use middle::stability; use middle::ty::{self, Ty}; diff --git a/src/librustc/middle/astencode.rs b/src/librustc/middle/astencode.rs index 270734a21e2..96fb649dd45 100644 --- a/src/librustc/middle/astencode.rs +++ b/src/librustc/middle/astencode.rs @@ -19,6 +19,7 @@ use rustc_front::fold::Folder; use metadata::common as c; use metadata::cstore as cstore; +use metadata::cstore::LOCAL_CRATE; use session::Session; use metadata::decoder; use metadata::encoder as e; @@ -31,7 +32,7 @@ use middle::ty::adjustment; use middle::ty::cast; use middle::check_const::ConstQualif; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::privacy::{AllPublic, LastMod}; use middle::region; use middle::subst; diff --git a/src/librustc/middle/def.rs b/src/librustc/middle/def.rs index 86133aad672..abd7ed88275 100644 --- a/src/librustc/middle/def.rs +++ b/src/librustc/middle/def.rs @@ -10,7 +10,8 @@ pub use self::Def::*; -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::privacy::LastPrivate; use middle::subst::ParamSpace; use util::nodemap::NodeMap; diff --git a/src/librustc/middle/def_id.rs b/src/librustc/middle/def_id.rs index 2966339f0a4..95a593f876f 100644 --- a/src/librustc/middle/def_id.rs +++ b/src/librustc/middle/def_id.rs @@ -8,6 +8,7 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +use metadata::cstore::LOCAL_CRATE; use middle::ty; use syntax::ast::{CrateNum, NodeId}; use std::fmt; @@ -56,7 +57,3 @@ impl DefId { } -/// Item definitions in the currently-compiled crate would have the CrateNum -/// LOCAL_CRATE in their DefId. -pub const LOCAL_CRATE: CrateNum = 0; - diff --git a/src/librustc/middle/reachable.rs b/src/librustc/middle/reachable.rs index 017c8f1e42b..bbf310b65c3 100644 --- a/src/librustc/middle/reachable.rs +++ b/src/librustc/middle/reachable.rs @@ -16,8 +16,9 @@ // reachable as well. use front::map as ast_map; +use metadata::cstore::LOCAL_CRATE; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::ty; use middle::privacy; use session::config; diff --git a/src/librustc/middle/stability.rs b/src/librustc/middle/stability.rs index 596686f32cb..b9f5ea863ff 100644 --- a/src/librustc/middle/stability.rs +++ b/src/librustc/middle/stability.rs @@ -13,8 +13,9 @@ use session::Session; use lint; +use metadata::cstore::LOCAL_CRATE; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::ty; use middle::privacy::PublicItems; use metadata::csearch; diff --git a/src/librustc/middle/traits/coherence.rs b/src/librustc/middle/traits/coherence.rs index 87939c45d67..a3795a32afc 100644 --- a/src/librustc/middle/traits/coherence.rs +++ b/src/librustc/middle/traits/coherence.rs @@ -17,7 +17,8 @@ use super::PredicateObligation; use super::project; use super::util; -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::subst::{Subst, Substs, TypeSpace}; use middle::ty::{self, ToPolyTraitRef, Ty}; use middle::infer::{self, InferCtxt}; diff --git a/src/librustc/middle/traits/select.rs b/src/librustc/middle/traits/select.rs index 6f422018c13..5e12e77435a 100644 --- a/src/librustc/middle/traits/select.rs +++ b/src/librustc/middle/traits/select.rs @@ -37,7 +37,8 @@ use super::{VtableImplData, VtableObjectData, VtableBuiltinData, use super::object_safety; use super::util; -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::infer; use middle::infer::{InferCtxt, TypeFreshener}; use middle::subst::{Subst, Substs, TypeSpace}; diff --git a/src/librustc/middle/ty/mod.rs b/src/librustc/middle/ty/mod.rs index 7ec39619d9c..fdec25a82b1 100644 --- a/src/librustc/middle/ty/mod.rs +++ b/src/librustc/middle/ty/mod.rs @@ -22,9 +22,10 @@ pub use self::LvaluePreference::*; use front::map as ast_map; use front::map::LinkedPath; use metadata::csearch; +use metadata::cstore::LOCAL_CRATE; use middle; use middle::def::{self, ExportMap}; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::lang_items::{FnTraitLangItem, FnMutTraitLangItem, FnOnceTraitLangItem}; use middle::subst::{self, ParamSpace, Subst, Substs, VecPerParamSpace}; use middle::traits; diff --git a/src/librustc_borrowck/borrowck/fragments.rs b/src/librustc_borrowck/borrowck/fragments.rs index cecbeacadec..4766fd0cfb7 100644 --- a/src/librustc_borrowck/borrowck/fragments.rs +++ b/src/librustc_borrowck/borrowck/fragments.rs @@ -20,7 +20,8 @@ use borrowck::LoanPathKind::{LpVar, LpUpvar, LpDowncast, LpExtend}; use borrowck::LoanPathElem::{LpDeref, LpInterior}; use borrowck::move_data::InvalidMovePathIndex; use borrowck::move_data::{MoveData, MovePathIndex}; -use rustc::middle::def_id::{DefId, LOCAL_CRATE}; +use rustc::metadata::cstore::LOCAL_CRATE; +use rustc::middle::def_id::{DefId}; use rustc::middle::ty; use rustc::middle::mem_categorization as mc; diff --git a/src/librustc_trans/save/mod.rs b/src/librustc_trans/save/mod.rs index afd16bea6d7..61d8a2191a7 100644 --- a/src/librustc_trans/save/mod.rs +++ b/src/librustc_trans/save/mod.rs @@ -8,9 +8,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. +use metadata::cstore::LOCAL_CRATE; use middle::ty; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use std::env; use std::fs::{self, File}; diff --git a/src/librustc_trans/trans/base.rs b/src/librustc_trans/trans/base.rs index 528b8f9e532..8ec2a83ce90 100644 --- a/src/librustc_trans/trans/base.rs +++ b/src/librustc_trans/trans/base.rs @@ -35,9 +35,10 @@ use lint; use llvm::{BasicBlockRef, Linkage, ValueRef, Vector, get_param}; use llvm; use metadata::{csearch, encoder, loader}; +use metadata::cstore::LOCAL_CRATE; use middle::astencode; use middle::cfg; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::lang_items::{LangItem, ExchangeMallocFnLangItem, StartFnLangItem}; use middle::weak_lang_items; use middle::pat_util::simple_name; diff --git a/src/librustc_trans/trans/callee.rs b/src/librustc_trans/trans/callee.rs index cfa77d57bf6..1704a8010dd 100644 --- a/src/librustc_trans/trans/callee.rs +++ b/src/librustc_trans/trans/callee.rs @@ -22,8 +22,9 @@ use arena::TypedArena; use back::link; use session; use llvm::{self, ValueRef, get_params}; +use metadata::cstore::LOCAL_CRATE; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::infer::normalize_associated_type; use middle::subst; use middle::subst::{Substs}; diff --git a/src/librustc_trans/trans/consts.rs b/src/librustc_trans/trans/consts.rs index 5988f95aedf..41d29e0dbd8 100644 --- a/src/librustc_trans/trans/consts.rs +++ b/src/librustc_trans/trans/consts.rs @@ -13,6 +13,7 @@ use back::abi; use llvm; use llvm::{ConstFCmp, ConstICmp, SetLinkage, SetUnnamedAddr}; use llvm::{InternalLinkage, ValueRef, Bool, True}; +use metadata::cstore::LOCAL_CRATE; use middle::{check_const, def}; use middle::const_eval::{self, ConstVal}; use middle::const_eval::{const_int_checked_neg, const_uint_checked_neg}; @@ -25,7 +26,7 @@ use middle::const_eval::{const_int_checked_shl, const_uint_checked_shl}; use middle::const_eval::{const_int_checked_shr, const_uint_checked_shr}; use middle::const_eval::EvalHint::ExprTypeChecked; use middle::const_eval::eval_const_expr_partial; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use trans::{adt, closure, debuginfo, expr, inline, machine}; use trans::base::{self, push_ctxt}; use trans::common::*; diff --git a/src/librustc_typeck/astconv.rs b/src/librustc_typeck/astconv.rs index 7b2bbbcc4a9..846ddf2f26a 100644 --- a/src/librustc_typeck/astconv.rs +++ b/src/librustc_typeck/astconv.rs @@ -48,11 +48,12 @@ //! case but `&a` in the second. Basically, defaults that appear inside //! an rptr (`&r.T`) use the region `r` that appears in the rptr. +use metadata::cstore::LOCAL_CRATE; use middle::astconv_util::{prim_ty_to_ty, prohibit_type_params, prohibit_projection}; use middle::const_eval::{self, ConstVal}; use middle::const_eval::EvalHint::UncheckedExprHint; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::resolve_lifetime as rl; use middle::privacy::{AllPublic, LastMod}; use middle::subst::{FnSpace, TypeSpace, SelfSpace, Subst, Substs, ParamSpace}; diff --git a/src/librustc_typeck/check/callee.rs b/src/librustc_typeck/check/callee.rs index 948b7dd1561..dcecec7007d 100644 --- a/src/librustc_typeck/check/callee.rs +++ b/src/librustc_typeck/check/callee.rs @@ -25,7 +25,8 @@ use super::UnresolvedTypeAction; use super::write_call; use CrateCtxt; -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::infer; use middle::ty::{self, LvaluePreference, Ty}; use syntax::codemap::Span; diff --git a/src/librustc_typeck/check/dropck.rs b/src/librustc_typeck/check/dropck.rs index a8c77f863b7..d847f481142 100644 --- a/src/librustc_typeck/check/dropck.rs +++ b/src/librustc_typeck/check/dropck.rs @@ -10,7 +10,8 @@ use check::regionck::{self, Rcx}; -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::free_region::FreeRegionMap; use middle::infer; use middle::region; diff --git a/src/librustc_typeck/check/mod.rs b/src/librustc_typeck/check/mod.rs index e62f5b82e7a..59da69d3696 100644 --- a/src/librustc_typeck/check/mod.rs +++ b/src/librustc_typeck/check/mod.rs @@ -83,9 +83,10 @@ use self::TupleArgumentsFlag::*; use astconv::{self, ast_region_to_region, ast_ty_to_ty, AstConv, PathParamMode}; use check::_match::pat_ctxt; use fmt_macros::{Parser, Piece, Position}; +use metadata::cstore::LOCAL_CRATE; use middle::astconv_util::prohibit_type_params; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use middle::infer; use middle::infer::type_variable; use middle::pat_util::{self, pat_id_map}; diff --git a/src/librustc_typeck/coherence/mod.rs b/src/librustc_typeck/coherence/mod.rs index 714bd1d2bc5..5c3c95ba4d2 100644 --- a/src/librustc_typeck/coherence/mod.rs +++ b/src/librustc_typeck/coherence/mod.rs @@ -16,7 +16,8 @@ // mappings. That mapping code resides here. -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::lang_items::UnsizeTraitLangItem; use middle::subst::{self, Subst}; use middle::traits; diff --git a/src/librustc_typeck/coherence/orphan.rs b/src/librustc_typeck/coherence/orphan.rs index 43ae33ac596..4f1c958b6dd 100644 --- a/src/librustc_typeck/coherence/orphan.rs +++ b/src/librustc_typeck/coherence/orphan.rs @@ -11,7 +11,8 @@ //! Orphan checker: every impl either implements a trait defined in this //! crate or pertains to a type defined in this crate. -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::traits; use middle::ty; use syntax::ast; diff --git a/src/librustc_typeck/coherence/overlap.rs b/src/librustc_typeck/coherence/overlap.rs index 55b5f665d11..f257dfb62c9 100644 --- a/src/librustc_typeck/coherence/overlap.rs +++ b/src/librustc_typeck/coherence/overlap.rs @@ -11,7 +11,8 @@ //! Overlap: No two impls for the same trait are implemented for the //! same type. -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::traits; use middle::ty; use middle::infer::{self, new_infer_ctxt}; diff --git a/src/librustc_typeck/collect.rs b/src/librustc_typeck/collect.rs index a59e6f54c81..2c9f273d703 100644 --- a/src/librustc_typeck/collect.rs +++ b/src/librustc_typeck/collect.rs @@ -65,8 +65,9 @@ There are some shortcomings in this design: */ use astconv::{self, AstConv, ty_of_arg, ast_ty_to_ty, ast_region_to_region}; +use metadata::cstore::LOCAL_CRATE; use middle::def; -use middle::def_id::{DefId, LOCAL_CRATE}; +use middle::def_id::DefId; use constrained_type_params as ctp; use middle::lang_items::SizedTraitLangItem; use middle::free_region::FreeRegionMap; diff --git a/src/librustc_typeck/variance.rs b/src/librustc_typeck/variance.rs index 229c52a4e5e..4220e258ca5 100644 --- a/src/librustc_typeck/variance.rs +++ b/src/librustc_typeck/variance.rs @@ -266,7 +266,8 @@ use self::ParamKind::*; use arena; use arena::TypedArena; -use middle::def_id::{DefId, LOCAL_CRATE}; +use metadata::cstore::LOCAL_CRATE; +use middle::def_id::DefId; use middle::resolve_lifetime as rl; use middle::subst; use middle::subst::{ParamSpace, FnSpace, TypeSpace, SelfSpace, VecPerParamSpace}; diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs index 89020b011a9..4ecaa46fb45 100644 --- a/src/librustdoc/clean/mod.rs +++ b/src/librustdoc/clean/mod.rs @@ -36,10 +36,11 @@ use syntax::ptr::P; use rustc_trans::back::link; use rustc::metadata::cstore; +use rustc::metadata::cstore::LOCAL_CRATE; use rustc::metadata::csearch; use rustc::metadata::decoder; use rustc::middle::def; -use rustc::middle::def_id::{DefId, LOCAL_CRATE}; +use rustc::middle::def_id::DefId; use rustc::middle::subst::{self, ParamSpace, VecPerParamSpace}; use rustc::middle::ty; use rustc::middle::stability; diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index 947ae3abd8d..f1c3e97a900 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -18,7 +18,8 @@ use std::fmt; use std::iter::repeat; -use rustc::middle::def_id::{DefId, LOCAL_CRATE}; +use rustc::metadata::cstore::LOCAL_CRATE; +use rustc::middle::def_id::DefId; use syntax::abi::Abi; use syntax::ast; use rustc_front::hir; diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index b34f1a01a2b..509e6c7df77 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -53,6 +53,7 @@ use externalfiles::ExternalHtml; use serialize::json::{self, ToJson}; use syntax::{abi, ast, attr}; +use rustc::metadata::cstore::LOCAL_CRATE; use rustc::middle::def_id::{DefId, LOCAL_CRATE}; use rustc::util::nodemap::NodeSet; use rustc_front::hir;