Skip to content

Commit 6fdd6f6

Browse files
Move unused trait functions to inherent functions
1 parent 5aec365 commit 6fdd6f6

File tree

9 files changed

+81
-101
lines changed

9 files changed

+81
-101
lines changed

src/Cargo.lock

+1
Original file line numberDiff line numberDiff line change
@@ -2366,6 +2366,7 @@ name = "rustc_metadata_utils"
23662366
version = "0.0.0"
23672367
dependencies = [
23682368
"rustc 0.0.0",
2369+
"syntax 0.0.0",
23692370
"syntax_pos 0.0.0",
23702371
]
23712372

src/librustc/middle/cstore.rs

-18
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
//! are *mostly* used as a part of that interface, but these should
2323
//! probably get a better home if someone can find one.
2424
25-
use hir::def;
2625
use hir::def_id::{CrateNum, DefId, LOCAL_CRATE};
2726
use hir::map as hir_map;
2827
use hir::map::definitions::{DefKey, DefPathTable};
@@ -34,8 +33,6 @@ use session::search_paths::PathKind;
3433
use std::any::Any;
3534
use std::path::{Path, PathBuf};
3635
use syntax::ast;
37-
use syntax::edition::Edition;
38-
use syntax::ext::base::SyntaxExtension;
3936
use syntax::symbol::Symbol;
4037
use syntax_pos::Span;
4138
use rustc_target::spec::Target;
@@ -140,11 +137,6 @@ pub struct ForeignModule {
140137
pub def_id: DefId,
141138
}
142139

143-
pub enum LoadedMacro {
144-
MacroDef(ast::Item),
145-
ProcMacro(Lrc<SyntaxExtension>),
146-
}
147-
148140
#[derive(Copy, Clone, Debug)]
149141
pub struct ExternCrate {
150142
pub src: ExternCrateSource,
@@ -221,28 +213,18 @@ pub trait MetadataLoader {
221213
pub trait CrateStore {
222214
fn crate_data_as_rc_any(&self, krate: CrateNum) -> Lrc<dyn Any>;
223215

224-
// access to the metadata loader
225-
fn metadata_loader(&self) -> &dyn MetadataLoader;
226-
227216
// resolve
228217
fn def_key(&self, def: DefId) -> DefKey;
229218
fn def_path(&self, def: DefId) -> hir_map::DefPath;
230219
fn def_path_hash(&self, def: DefId) -> hir_map::DefPathHash;
231220
fn def_path_table(&self, cnum: CrateNum) -> Lrc<DefPathTable>;
232221

233222
// "queries" used in resolve that aren't tracked for incremental compilation
234-
fn export_macros_untracked(&self, cnum: CrateNum);
235-
fn dep_kind_untracked(&self, cnum: CrateNum) -> DepKind;
236223
fn crate_name_untracked(&self, cnum: CrateNum) -> Symbol;
237224
fn crate_disambiguator_untracked(&self, cnum: CrateNum) -> CrateDisambiguator;
238225
fn crate_hash_untracked(&self, cnum: CrateNum) -> Svh;
239-
fn crate_edition_untracked(&self, cnum: CrateNum) -> Edition;
240-
fn struct_field_names_untracked(&self, def: DefId) -> Vec<ast::Name>;
241-
fn item_children_untracked(&self, did: DefId, sess: &Session) -> Vec<def::Export>;
242-
fn load_macro_untracked(&self, did: DefId, sess: &Session) -> LoadedMacro;
243226
fn extern_mod_stmt_cnum_untracked(&self, emod_id: ast::NodeId) -> Option<CrateNum>;
244227
fn item_generics_cloned_untracked(&self, def: DefId, sess: &Session) -> ty::Generics;
245-
fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssociatedItem;
246228
fn postorder_cnums_untracked(&self) -> Vec<CrateNum>;
247229

248230
// This is basically a 1-based range of ints, which is a little

src/librustc_driver/lib.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@ use rustc::session::filesearch;
7878
use rustc::session::{early_error, early_warn};
7979
use rustc::lint::Lint;
8080
use rustc::lint;
81-
use rustc::middle::cstore::CrateStore;
8281
use rustc_metadata::locator;
8382
use rustc_metadata::cstore::CStore;
8483
use rustc_metadata::dynamic_lib::DynamicLibrary;
@@ -1002,7 +1001,7 @@ impl RustcDefaultCalls {
10021001
let mut v = Vec::new();
10031002
locator::list_file_metadata(&sess.target.target,
10041003
path,
1005-
cstore.metadata_loader(),
1004+
&*cstore.metadata_loader,
10061005
&mut v)
10071006
.unwrap();
10081007
println!("{}", String::from_utf8(v).unwrap());

src/librustc_metadata/cstore.rs

+5
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,11 @@ pub struct CStore {
9393
pub metadata_loader: Box<dyn MetadataLoader + Sync>,
9494
}
9595

96+
pub enum LoadedMacro {
97+
MacroDef(ast::Item),
98+
ProcMacro(Lrc<SyntaxExtension>),
99+
}
100+
96101
impl CStore {
97102
pub fn new(metadata_loader: Box<dyn MetadataLoader + Sync>) -> CStore {
98103
CStore {

src/librustc_metadata/cstore_impl.rs

+71-78
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use cstore;
11+
use cstore::{self, LoadedMacro};
1212
use encoder;
1313
use link_args;
1414
use native_libs;
@@ -17,8 +17,8 @@ use schema;
1717

1818
use rustc::ty::query::QueryConfig;
1919
use rustc::middle::cstore::{CrateStore, DepKind,
20-
MetadataLoader, LinkMeta,
21-
LoadedMacro, EncodedMetadata, NativeLibraryKind};
20+
LinkMeta,
21+
EncodedMetadata, NativeLibraryKind};
2222
use rustc::middle::exported_symbols::ExportedSymbol;
2323
use rustc::middle::stability::DeprecationEntry;
2424
use rustc::hir::def;
@@ -411,102 +411,37 @@ pub fn provide<'tcx>(providers: &mut Providers<'tcx>) {
411411
};
412412
}
413413

414-
impl CrateStore for cstore::CStore {
415-
fn crate_data_as_rc_any(&self, krate: CrateNum) -> Lrc<dyn Any> {
416-
self.get_crate_data(krate)
417-
}
418-
419-
fn metadata_loader(&self) -> &dyn MetadataLoader {
420-
&*self.metadata_loader
421-
}
422-
423-
fn item_generics_cloned_untracked(&self, def: DefId, sess: &Session) -> ty::Generics {
424-
self.get_crate_data(def.krate).get_generics(def.index, sess)
425-
}
426-
427-
fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssociatedItem
428-
{
429-
self.get_crate_data(def.krate).get_associated_item(def.index)
430-
}
431-
432-
fn dep_kind_untracked(&self, cnum: CrateNum) -> DepKind
433-
{
434-
let data = self.get_crate_data(cnum);
435-
let r = *data.dep_kind.lock();
436-
r
437-
}
438-
439-
fn export_macros_untracked(&self, cnum: CrateNum) {
414+
impl cstore::CStore {
415+
pub fn export_macros_untracked(&self, cnum: CrateNum) {
440416
let data = self.get_crate_data(cnum);
441417
let mut dep_kind = data.dep_kind.lock();
442418
if *dep_kind == DepKind::UnexportedMacrosOnly {
443419
*dep_kind = DepKind::MacrosOnly;
444420
}
445421
}
446422

447-
fn crate_name_untracked(&self, cnum: CrateNum) -> Symbol
448-
{
449-
self.get_crate_data(cnum).name
450-
}
451-
452-
fn crate_disambiguator_untracked(&self, cnum: CrateNum) -> CrateDisambiguator
453-
{
454-
self.get_crate_data(cnum).root.disambiguator
455-
}
456-
457-
fn crate_hash_untracked(&self, cnum: CrateNum) -> hir::svh::Svh
458-
{
459-
self.get_crate_data(cnum).root.hash
423+
pub fn dep_kind_untracked(&self, cnum: CrateNum) -> DepKind {
424+
let data = self.get_crate_data(cnum);
425+
let r = *data.dep_kind.lock();
426+
r
460427
}
461428

462-
fn crate_edition_untracked(&self, cnum: CrateNum) -> Edition
463-
{
429+
pub fn crate_edition_untracked(&self, cnum: CrateNum) -> Edition {
464430
self.get_crate_data(cnum).root.edition
465431
}
466432

467-
/// Returns the `DefKey` for a given `DefId`. This indicates the
468-
/// parent `DefId` as well as some idea of what kind of data the
469-
/// `DefId` refers to.
470-
fn def_key(&self, def: DefId) -> DefKey {
471-
// Note: loading the def-key (or def-path) for a def-id is not
472-
// a *read* of its metadata. This is because the def-id is
473-
// really just an interned shorthand for a def-path, which is the
474-
// canonical name for an item.
475-
//
476-
// self.dep_graph.read(DepNode::MetaData(def));
477-
self.get_crate_data(def.krate).def_key(def.index)
478-
}
479-
480-
fn def_path(&self, def: DefId) -> DefPath {
481-
// See `Note` above in `def_key()` for why this read is
482-
// commented out:
483-
//
484-
// self.dep_graph.read(DepNode::MetaData(def));
485-
self.get_crate_data(def.krate).def_path(def.index)
486-
}
487-
488-
fn def_path_hash(&self, def: DefId) -> DefPathHash {
489-
self.get_crate_data(def.krate).def_path_hash(def.index)
490-
}
491-
492-
fn def_path_table(&self, cnum: CrateNum) -> Lrc<DefPathTable> {
493-
self.get_crate_data(cnum).def_path_table.clone()
494-
}
495-
496-
fn struct_field_names_untracked(&self, def: DefId) -> Vec<ast::Name>
497-
{
433+
pub fn struct_field_names_untracked(&self, def: DefId) -> Vec<ast::Name> {
498434
self.get_crate_data(def.krate).get_struct_field_names(def.index)
499435
}
500436

501-
fn item_children_untracked(&self, def_id: DefId, sess: &Session) -> Vec<def::Export>
502-
{
437+
pub fn item_children_untracked(&self, def_id: DefId, sess: &Session) -> Vec<def::Export> {
503438
let mut result = vec![];
504439
self.get_crate_data(def_id.krate)
505440
.each_child_of_item(def_id.index, |child| result.push(child), sess);
506441
result
507442
}
508443

509-
fn load_macro_untracked(&self, id: DefId, sess: &Session) -> LoadedMacro {
444+
pub fn load_macro_untracked(&self, id: DefId, sess: &Session) -> LoadedMacro {
510445
let data = self.get_crate_data(id.krate);
511446
if let Some(ref proc_macros) = data.proc_macros {
512447
return LoadedMacro::ProcMacro(proc_macros[id.index.to_proc_macro_index()].1.clone());
@@ -555,6 +490,64 @@ impl CrateStore for cstore::CStore {
555490
})
556491
}
557492

493+
pub fn associated_item_cloned_untracked(&self, def: DefId) -> ty::AssociatedItem {
494+
self.get_crate_data(def.krate).get_associated_item(def.index)
495+
}
496+
}
497+
498+
impl CrateStore for cstore::CStore {
499+
fn crate_data_as_rc_any(&self, krate: CrateNum) -> Lrc<dyn Any> {
500+
self.get_crate_data(krate)
501+
}
502+
503+
fn item_generics_cloned_untracked(&self, def: DefId, sess: &Session) -> ty::Generics {
504+
self.get_crate_data(def.krate).get_generics(def.index, sess)
505+
}
506+
507+
fn crate_name_untracked(&self, cnum: CrateNum) -> Symbol
508+
{
509+
self.get_crate_data(cnum).name
510+
}
511+
512+
fn crate_disambiguator_untracked(&self, cnum: CrateNum) -> CrateDisambiguator
513+
{
514+
self.get_crate_data(cnum).root.disambiguator
515+
}
516+
517+
fn crate_hash_untracked(&self, cnum: CrateNum) -> hir::svh::Svh
518+
{
519+
self.get_crate_data(cnum).root.hash
520+
}
521+
522+
/// Returns the `DefKey` for a given `DefId`. This indicates the
523+
/// parent `DefId` as well as some idea of what kind of data the
524+
/// `DefId` refers to.
525+
fn def_key(&self, def: DefId) -> DefKey {
526+
// Note: loading the def-key (or def-path) for a def-id is not
527+
// a *read* of its metadata. This is because the def-id is
528+
// really just an interned shorthand for a def-path, which is the
529+
// canonical name for an item.
530+
//
531+
// self.dep_graph.read(DepNode::MetaData(def));
532+
self.get_crate_data(def.krate).def_key(def.index)
533+
}
534+
535+
fn def_path(&self, def: DefId) -> DefPath {
536+
// See `Note` above in `def_key()` for why this read is
537+
// commented out:
538+
//
539+
// self.dep_graph.read(DepNode::MetaData(def));
540+
self.get_crate_data(def.krate).def_path(def.index)
541+
}
542+
543+
fn def_path_hash(&self, def: DefId) -> DefPathHash {
544+
self.get_crate_data(def.krate).def_path_hash(def.index)
545+
}
546+
547+
fn def_path_table(&self, cnum: CrateNum) -> Lrc<DefPathTable> {
548+
self.get_crate_data(cnum).def_path_table.clone()
549+
}
550+
558551
fn crates_untracked(&self) -> Vec<CrateNum>
559552
{
560553
let mut result = vec![];

src/librustc_metadata_utils/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,5 @@ crate-type = ["dylib"]
1010

1111
[dependencies]
1212
rustc = { path = "../librustc" }
13+
syntax = { path = "../libsyntax" }
1314
syntax_pos = { path = "../libsyntax_pos" }

src/librustc_resolve/build_reduced_graph.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ use {PerNS, Resolver, ResolverArenas};
2121
use Namespace::{self, TypeNS, ValueNS, MacroNS};
2222
use {resolve_error, resolve_struct_error, ResolutionError};
2323

24-
use rustc::middle::cstore::LoadedMacro;
2524
use rustc::hir::def::*;
2625
use rustc::hir::def_id::{BUILTIN_MACROS_CRATE, CRATE_DEF_INDEX, LOCAL_CRATE, DefId};
2726
use rustc::ty;
2827
use rustc::middle::cstore::CrateStore;
28+
use rustc_metadata::cstore::LoadedMacro;
2929

3030
use std::cell::Cell;
3131
use rustc_data_structures::sync::Lrc;

src/librustc_resolve/resolve_imports.rs

-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ use rustc::hir::def_id::{CRATE_DEF_INDEX, DefId};
2525
use rustc::hir::def::*;
2626
use rustc::session::DiagnosticMessageId;
2727
use rustc::util::nodemap::{FxHashMap, FxHashSet};
28-
use rustc::middle::cstore::CrateStore;
2928

3029
use syntax::ast::{Ident, Name, NodeId, CRATE_NODE_ID};
3130
use syntax::ext::base::Determinacy::{self, Determined, Undetermined};

src/librustdoc/clean/inline.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ use syntax_pos::Span;
1919
use rustc::hir;
2020
use rustc::hir::def::{Def, CtorKind};
2121
use rustc::hir::def_id::DefId;
22-
use rustc::middle::cstore::{CrateStore, LoadedMacro};
22+
use rustc_metadata::cstore::LoadedMacro;
2323
use rustc::ty;
2424
use rustc::util::nodemap::FxHashSet;
2525

0 commit comments

Comments
 (0)