diff options
| author | Michael Woerister <michaelwoerister@posteo.net> | 2016-02-14 12:30:38 -0500 |
|---|---|---|
| committer | Niko Matsakis <niko@alum.mit.edu> | 2016-03-25 14:07:17 -0400 |
| commit | 3a756fea50382b6beb3b4d2fcc593e59f0eadd8c (patch) | |
| tree | 969400d6916454bf3821abb2e3df9ce04ff998a1 /src | |
| parent | 32a2e9a8e15ee93dbd663fa3849604979df1142f (diff) | |
| download | rust-3a756fea50382b6beb3b4d2fcc593e59f0eadd8c.tar.gz rust-3a756fea50382b6beb3b4d2fcc593e59f0eadd8c.zip | |
Make the definite name of the local crate available in the tcx.
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/middle/ty/context.rs | 10 | ||||
| -rw-r--r-- | src/librustc_driver/driver.rs | 1 | ||||
| -rw-r--r-- | src/librustc_driver/test.rs | 1 |
3 files changed, 10 insertions, 2 deletions
diff --git a/src/librustc/middle/ty/context.rs b/src/librustc/middle/ty/context.rs index 03c13115aea..4e81297a789 100644 --- a/src/librustc/middle/ty/context.rs +++ b/src/librustc/middle/ty/context.rs @@ -43,7 +43,7 @@ use std::hash::{Hash, Hasher}; use std::rc::Rc; use syntax::ast::{self, Name, NodeId}; use syntax::attr; -use syntax::parse::token::special_idents; +use syntax::parse::token::{self, special_idents}; use rustc_front::hir; @@ -415,6 +415,10 @@ pub struct TyCtxt<'tcx> { /// fragmented data to the set of unfragmented pieces that /// constitute it. pub fragment_infos: RefCell<DefIdMap<Vec<ty::FragmentInfo>>>, + + /// The definite name of the current crate after taking into account + /// attributes, commandline parameters, etc. + pub crate_name: token::InternedString, } impl<'tcx> TyCtxt<'tcx> { @@ -511,6 +515,7 @@ impl<'tcx> TyCtxt<'tcx> { region_maps: RegionMaps, lang_items: middle::lang_items::LanguageItems, stability: stability::Index<'tcx>, + crate_name: &str, f: F) -> R where F: FnOnce(&TyCtxt<'tcx>) -> R { @@ -570,7 +575,8 @@ impl<'tcx> TyCtxt<'tcx> { const_qualif_map: RefCell::new(NodeMap()), custom_coerce_unsized_kinds: RefCell::new(DefIdMap()), cast_kinds: RefCell::new(NodeMap()), - fragment_infos: RefCell::new(DefIdMap()) + fragment_infos: RefCell::new(DefIdMap()), + crate_name: token::intern_and_get_ident(crate_name), }, f) } } diff --git a/src/librustc_driver/driver.rs b/src/librustc_driver/driver.rs index b75ccb3f7ee..1af01a41223 100644 --- a/src/librustc_driver/driver.rs +++ b/src/librustc_driver/driver.rs @@ -818,6 +818,7 @@ pub fn phase_3_run_analysis_passes<'tcx, F, R>(sess: &'tcx Session, region_map, lang_items, index, + name, |tcx| { // passes are timed inside typeck try_with_f!(typeck::check_crate(tcx, trait_map), (tcx, None, analysis)); diff --git a/src/librustc_driver/test.rs b/src/librustc_driver/test.rs index 1a5e7cb54f2..111db3b1d38 100644 --- a/src/librustc_driver/test.rs +++ b/src/librustc_driver/test.rs @@ -146,6 +146,7 @@ fn test_env<F>(source_string: &str, region_map, lang_items, index, + "test_crate", |tcx| { let infcx = infer::new_infer_ctxt(tcx, &tcx.tables, |
