Skip to content

Commit 413370b

Browse files
committed
Move rustc_middle::{ty=>}::resolver_outputs
... and add `MainDefinition` to it
1 parent b6237e6 commit 413370b

File tree

12 files changed

+34
-40
lines changed

12 files changed

+34
-40
lines changed

compiler/rustc_ast_lowering/src/item.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ use rustc_hir::def::{DefKind, Res};
1313
use rustc_hir::def_id::{LocalDefId, CRATE_DEF_ID};
1414
use rustc_hir::PredicateOrigin;
1515
use rustc_index::{Idx, IndexSlice, IndexVec};
16-
use rustc_middle::ty::{ResolverAstLowering, TyCtxt};
16+
use rustc_middle::resolver_outputs::ResolverAstLowering;
17+
use rustc_middle::ty::TyCtxt;
1718
use rustc_span::edit_distance::find_best_match_for_name;
1819
use rustc_span::source_map::DesugaringKind;
1920
use rustc_span::symbol::{kw, sym, Ident};

compiler/rustc_ast_lowering/src/lib.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,10 +62,7 @@ use rustc_hir::def_id::{LocalDefId, CRATE_DEF_ID};
6262
use rustc_hir::definitions::DefPathData;
6363
use rustc_hir::{ConstArg, GenericArg, ItemLocalId, ParamName, TraitCandidate};
6464
use rustc_index::{Idx, IndexSlice, IndexVec};
65-
use rustc_middle::{
66-
span_bug,
67-
ty::{ResolverAstLowering, TyCtxt},
68-
};
65+
use rustc_middle::{resolver_outputs::ResolverAstLowering, span_bug, ty::TyCtxt};
6966
use rustc_session::parse::{add_feature_diagnostics, feature_err};
7067
use rustc_span::hygiene::MacroKind;
7168
use rustc_span::source_map::DesugaringKind;

compiler/rustc_ast_lowering/src/lifetime_collector.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@ use super::ResolverAstLoweringExt;
22
use rustc_ast::visit::{self, BoundKind, LifetimeCtxt, Visitor};
33
use rustc_ast::{FnRetTy, GenericBounds, Lifetime, NodeId, PathSegment, PolyTraitRef, Ty, TyKind};
44
use rustc_hir::def::LifetimeRes;
5+
use rustc_middle::resolver_outputs::ResolverAstLowering;
56
use rustc_middle::span_bug;
6-
use rustc_middle::ty::ResolverAstLowering;
77
use rustc_span::symbol::{kw, Ident};
88
use rustc_span::Span;
99

compiler/rustc_interface/src/passes.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ use rustc_lint::{unerased_lint_store, BufferedEarlyLint, EarlyCheckNode, LintSto
1717
use rustc_metadata::creader::CStore;
1818
use rustc_middle::arena::Arena;
1919
use rustc_middle::dep_graph::DepGraph;
20+
use rustc_middle::resolver_outputs::{ResolverAstLowering, ResolverOutputs};
2021
use rustc_middle::ty::query::{ExternProviders, Providers};
2122
use rustc_middle::ty::{self, GlobalCtxt, RegisteredTools, TyCtxt};
2223
use rustc_mir_build as mir_build;
@@ -557,7 +558,7 @@ fn write_out_deps(tcx: TyCtxt<'_>, outputs: &OutputFilenames, out_filenames: &[P
557558
fn resolver_for_lowering<'tcx>(
558559
tcx: TyCtxt<'tcx>,
559560
(): (),
560-
) -> &'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)> {
561+
) -> &'tcx Steal<(ResolverAstLowering, Lrc<ast::Crate>)> {
561562
let arenas = Resolver::arenas();
562563
let _ = tcx.registered_tools(()); // Uses `crate_for_resolver`.
563564
let (krate, pre_configured_attrs) = tcx.crate_for_resolver(()).steal();
@@ -567,7 +568,7 @@ fn resolver_for_lowering<'tcx>(
567568
// Make sure we don't mutate the cstore from here on.
568569
tcx.untracked().cstore.leak();
569570

570-
let ty::ResolverOutputs {
571+
let ResolverOutputs {
571572
global_ctxt: untracked_resolutions,
572573
ast_lowering: untracked_resolver_for_lowering,
573574
} = resolver.into_outputs();

compiler/rustc_middle/src/arena.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,13 @@ macro_rules! arena_types {
3131
[decode] borrowck_result:
3232
rustc_middle::mir::BorrowCheckResult<'tcx>,
3333
[] resolver: rustc_data_structures::steal::Steal<(
34-
rustc_middle::ty::ResolverAstLowering,
34+
rustc_middle::resolver_outputs::ResolverAstLowering,
3535
rustc_data_structures::sync::Lrc<rustc_ast::Crate>,
3636
)>,
3737
[] output_filenames: std::sync::Arc<rustc_session::config::OutputFilenames>,
3838
[] metadata_loader: rustc_data_structures::steal::Steal<Box<rustc_session::cstore::MetadataLoaderDyn>>,
3939
[] crate_for_resolver: rustc_data_structures::steal::Steal<(rustc_ast::Crate, rustc_ast::AttrVec)>,
40-
[] resolutions: rustc_middle::ty::ResolverGlobalCtxt,
40+
[] resolutions: rustc_middle::resolver_outputs::ResolverGlobalCtxt,
4141
[decode] unsafety_check_result: rustc_middle::mir::UnsafetyCheckResult,
4242
[decode] code_region: rustc_middle::mir::coverage::CodeRegion,
4343
[] const_allocs: rustc_middle::mir::interpret::Allocation,

compiler/rustc_middle/src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ pub mod lint;
9898
pub mod metadata;
9999
pub mod middle;
100100
pub mod mir;
101+
pub mod resolver_outputs;
101102
pub mod thir;
102103
pub mod traits;
103104
pub mod ty;

compiler/rustc_middle/src/query/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,13 @@ rustc_queries! {
3737
desc { "perform lints prior to macro expansion" }
3838
}
3939

40-
query resolutions(_: ()) -> &'tcx ty::ResolverGlobalCtxt {
40+
query resolutions(_: ()) -> &'tcx crate::resolver_outputs::ResolverGlobalCtxt {
4141
feedable
4242
no_hash
4343
desc { "getting the resolver outputs" }
4444
}
4545

46-
query resolver_for_lowering(_: ()) -> &'tcx Steal<(ty::ResolverAstLowering, Lrc<ast::Crate>)> {
46+
query resolver_for_lowering(_: ()) -> &'tcx Steal<(crate::resolver_outputs::ResolverAstLowering, Lrc<ast::Crate>)> {
4747
eval_always
4848
no_hash
4949
desc { "getting the resolver for lowering" }

compiler/rustc_middle/src/ty/resolver_outputs.rs renamed to compiler/rustc_middle/src/resolver_outputs.rs

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use rustc_ast::node_id::NodeMap;
33
use rustc_data_structures::fx::{FxHashMap, FxHashSet, FxIndexMap, FxIndexSet};
44
use rustc_data_structures::steal::Steal;
55
use rustc_hir as hir;
6-
use rustc_hir::def::{DocLinkResMap, LifetimeRes, Res};
6+
use rustc_hir::def::{DefKind, DocLinkResMap, LifetimeRes, Res};
77
use rustc_hir::def_id::{CrateNum, DefId, LocalDefId, LocalDefIdMap};
88
use rustc_index::IndexVec;
99
use rustc_session::lint::LintBuffer;
@@ -13,7 +13,7 @@ use rustc_span::{ExpnId, Span};
1313

1414
use crate::metadata::ModChild;
1515
use crate::middle::privacy::EffectiveVisibilities;
16-
use crate::ty::{MainDefinition, Visibility};
16+
use crate::ty::Visibility;
1717

1818
pub struct ResolverOutputs {
1919
pub global_ctxt: ResolverGlobalCtxt,
@@ -77,3 +77,16 @@ pub struct ResolverAstLowering {
7777
/// Lints that were emitted by the resolver and early lints.
7878
pub lint_buffer: Steal<LintBuffer>,
7979
}
80+
81+
#[derive(Clone, Copy, Debug)]
82+
pub struct MainDefinition {
83+
pub res: Res<ast::NodeId>,
84+
pub is_import: bool,
85+
pub span: Span,
86+
}
87+
88+
impl MainDefinition {
89+
pub fn opt_fn_def_id(self) -> Option<DefId> {
90+
if let Res::Def(DefKind::Fn, def_id) = self.res { Some(def_id) } else { None }
91+
}
92+
}

compiler/rustc_middle/src/ty/main_definition.rs

Lines changed: 0 additions & 18 deletions
This file was deleted.

compiler/rustc_middle/src/ty/mod.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,11 @@ mod impls_ty;
7676
mod infer_var_info;
7777
mod instance;
7878
mod list;
79-
mod main_definition;
8079
mod opaque;
8180
mod param_env;
8281
mod parameterized;
8382
mod placeholder;
8483
mod predicate;
85-
mod resolver_outputs;
8684
mod rvalue_scopes;
8785
mod structural_impls;
8886
mod sty;
@@ -138,7 +136,6 @@ pub use self::impl_trait_in_trait_data::ImplTraitInTraitData;
138136
pub use self::infer_var_info::InferVarInfo;
139137
pub use self::instance::{Instance, InstanceDef, ShortInstance, UnusedGenericParams};
140138
pub use self::list::List;
141-
pub use self::main_definition::MainDefinition;
142139
pub use self::opaque::{OpaqueHiddenType, OpaqueTypeKey};
143140
pub use self::param_env::{ParamEnv, ParamEnvAnd};
144141
pub use self::parameterized::ParameterizedOverTcx;
@@ -150,7 +147,6 @@ pub use self::predicate::{
150147
ProjectionPredicate, RegionOutlivesPredicate, SubtypePredicate, ToPredicate, TraitPredicate,
151148
TypeOutlivesPredicate,
152149
};
153-
pub use self::resolver_outputs::{ResolverAstLowering, ResolverGlobalCtxt, ResolverOutputs};
154150
pub use self::rvalue_scopes::RvalueScopes;
155151
pub use self::sty::BoundRegionKind::*;
156152
pub use self::sty::{

compiler/rustc_passes/src/errors.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,8 @@ use rustc_errors::{
1111
};
1212
use rustc_hir::{self as hir, ExprKind, Target};
1313
use rustc_macros::{Diagnostic, LintDiagnostic, Subdiagnostic};
14-
use rustc_middle::ty::{MainDefinition, Ty};
14+
use rustc_middle::resolver_outputs::MainDefinition;
15+
use rustc_middle::ty::Ty;
1516
use rustc_span::{Span, Symbol, DUMMY_SP};
1617

1718
use crate::check_attr::ProcMacroKind;

compiler/rustc_resolve/src/lib.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,11 @@ use rustc_index::IndexVec;
4444
use rustc_metadata::creader::{CStore, CrateLoader};
4545
use rustc_middle::metadata::ModChild;
4646
use rustc_middle::middle::privacy::EffectiveVisibilities;
47+
use rustc_middle::resolver_outputs::{
48+
MainDefinition, ResolverAstLowering, ResolverGlobalCtxt, ResolverOutputs,
49+
};
4750
use rustc_middle::span_bug;
48-
use rustc_middle::ty::{self, MainDefinition, RegisteredTools, TyCtxt};
49-
use rustc_middle::ty::{ResolverGlobalCtxt, ResolverOutputs};
51+
use rustc_middle::ty::{self, RegisteredTools, TyCtxt};
5052
use rustc_query_system::ich::StableHashingContext;
5153
use rustc_session::lint::LintBuffer;
5254
use rustc_span::hygiene::{ExpnId, LocalExpnId, MacroKind, SyntaxContext, Transparency};
@@ -1408,7 +1410,7 @@ impl<'a, 'tcx> Resolver<'a, 'tcx> {
14081410
doc_link_traits_in_scope: self.doc_link_traits_in_scope,
14091411
all_macro_rules: self.all_macro_rules,
14101412
};
1411-
let ast_lowering = ty::ResolverAstLowering {
1413+
let ast_lowering = ResolverAstLowering {
14121414
legacy_const_generic_args: self.legacy_const_generic_args,
14131415
partial_res_map: self.partial_res_map,
14141416
import_res_map: self.import_res_map,

0 commit comments

Comments
 (0)