Skip to content

Commit d7478a3

Browse files
committed
Auto merge of #153183 - JonathanBrouwer:rollup-APFHc2s, r=JonathanBrouwer
Rollup of 12 pull requests Successful merges: - rust-lang/rust#151143 (explicit tail calls: support indirect arguments) - rust-lang/rust#153012 (Stop using `LinkedGraph` in `lexical_region_resolve`) - rust-lang/rust#153175 (Clarify a confusing green-path function) - rust-lang/rust#153179 (Force a CI LLVM stamp bump) - rust-lang/rust#150828 (Improved security section in rustdoc for `current_exe`) - rust-lang/rust#152673 (rustc_public: rewrite `bridge_impl` to reduce boilerplate) - rust-lang/rust#152674 (rustc_public: remove the `CrateDefItems` trait) - rust-lang/rust#153073 (Fix mem::conjure_zst panic message to use any::type_name instead) - rust-lang/rust#153117 (Remove mutation from macro path URL construction) - rust-lang/rust#153128 (Recover feature lang_items for emscripten) - rust-lang/rust#153138 (Print path root when printing path) - rust-lang/rust#153159 (Work around a false `err.emit();` type error in rust-analyzer)
2 parents 73bed05 + 69509b9 commit d7478a3

3 files changed

Lines changed: 42 additions & 51 deletions

File tree

rustc_public/src/crate_def.rs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
//! such as, a function, a trait, an enum, and any other definitions.
33
44
use crate::ty::{GenericArgs, Span, Ty, index_impl};
5-
use crate::{AssocItems, Crate, Symbol, ThreadLocalIndex, with};
5+
use crate::{Crate, Symbol, ThreadLocalIndex, with};
66

77
/// A unique identification number for each item accessible for the current compilation unit.
88
#[derive(Clone, Copy, PartialEq, Eq, Hash)]
@@ -111,14 +111,6 @@ pub trait CrateDefType: CrateDef {
111111
}
112112
}
113113

114-
/// A trait for retrieving all items from a definition within a crate.
115-
pub trait CrateDefItems: CrateDef {
116-
/// Retrieve all associated items from a definition.
117-
fn associated_items(&self) -> AssocItems {
118-
with(|cx| cx.associated_items(self.def_id()))
119-
}
120-
}
121-
122114
#[derive(Clone, Debug, PartialEq, Eq)]
123115
pub struct Attribute {
124116
value: String,
@@ -174,9 +166,3 @@ macro_rules! crate_def_with_ty {
174166
impl CrateDefType for $name {}
175167
};
176168
}
177-
178-
macro_rules! impl_crate_def_items {
179-
( $name:ident $(;)? ) => {
180-
impl CrateDefItems for $name {}
181-
};
182-
}

rustc_public/src/lib.rs

Lines changed: 31 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ pub mod rustc_internal;
3030
use serde::Serialize;
3131

3232
use crate::compiler_interface::with;
33-
pub use crate::crate_def::{CrateDef, CrateDefItems, CrateDefType, DefId};
33+
pub use crate::crate_def::{CrateDef, CrateDefType, DefId};
3434
pub use crate::error::*;
3535
use crate::mir::mono::StaticDef;
3636
use crate::mir::{Body, Mutability};
@@ -238,35 +238,40 @@ pub fn opaque<T: Debug>(value: &T) -> Opaque {
238238
}
239239

240240
macro_rules! bridge_impl {
241-
($name: ident, $ty: ty) => {
242-
impl rustc_public_bridge::bridge::$name<compiler_interface::BridgeTys> for $ty {
243-
fn new(def: crate::DefId) -> Self {
244-
Self(def)
241+
( $( $name:ident, $ty:ty ),* $(,)? ) => {
242+
$(
243+
impl rustc_public_bridge::bridge::$name<compiler_interface::BridgeTys> for $ty {
244+
fn new(def: crate::DefId) -> Self {
245+
Self(def)
246+
}
245247
}
246-
}
248+
)*
247249
};
248250
}
249251

250-
bridge_impl!(CrateItem, crate::CrateItem);
251-
bridge_impl!(AdtDef, crate::ty::AdtDef);
252-
bridge_impl!(ForeignModuleDef, crate::ty::ForeignModuleDef);
253-
bridge_impl!(ForeignDef, crate::ty::ForeignDef);
254-
bridge_impl!(FnDef, crate::ty::FnDef);
255-
bridge_impl!(ClosureDef, crate::ty::ClosureDef);
256-
bridge_impl!(CoroutineDef, crate::ty::CoroutineDef);
257-
bridge_impl!(CoroutineClosureDef, crate::ty::CoroutineClosureDef);
258-
bridge_impl!(AliasDef, crate::ty::AliasDef);
259-
bridge_impl!(ParamDef, crate::ty::ParamDef);
260-
bridge_impl!(BrNamedDef, crate::ty::BrNamedDef);
261-
bridge_impl!(TraitDef, crate::ty::TraitDef);
262-
bridge_impl!(GenericDef, crate::ty::GenericDef);
263-
bridge_impl!(ConstDef, crate::ty::ConstDef);
264-
bridge_impl!(ImplDef, crate::ty::ImplDef);
265-
bridge_impl!(RegionDef, crate::ty::RegionDef);
266-
bridge_impl!(CoroutineWitnessDef, crate::ty::CoroutineWitnessDef);
267-
bridge_impl!(AssocDef, crate::ty::AssocDef);
268-
bridge_impl!(OpaqueDef, crate::ty::OpaqueDef);
269-
bridge_impl!(StaticDef, crate::mir::mono::StaticDef);
252+
#[rustfmt::skip]
253+
bridge_impl!(
254+
CrateItem, crate::CrateItem,
255+
AdtDef, crate::ty::AdtDef,
256+
ForeignModuleDef, crate::ty::ForeignModuleDef,
257+
ForeignDef, crate::ty::ForeignDef,
258+
FnDef, crate::ty::FnDef,
259+
ClosureDef, crate::ty::ClosureDef,
260+
CoroutineDef, crate::ty::CoroutineDef,
261+
CoroutineClosureDef, crate::ty::CoroutineClosureDef,
262+
AliasDef, crate::ty::AliasDef,
263+
ParamDef, crate::ty::ParamDef,
264+
BrNamedDef, crate::ty::BrNamedDef,
265+
TraitDef, crate::ty::TraitDef,
266+
GenericDef, crate::ty::GenericDef,
267+
ConstDef, crate::ty::ConstDef,
268+
ImplDef, crate::ty::ImplDef,
269+
RegionDef, crate::ty::RegionDef,
270+
CoroutineWitnessDef, crate::ty::CoroutineWitnessDef,
271+
AssocDef, crate::ty::AssocDef,
272+
OpaqueDef, crate::ty::OpaqueDef,
273+
StaticDef, crate::mir::mono::StaticDef
274+
);
270275

271276
impl rustc_public_bridge::bridge::Prov<compiler_interface::BridgeTys> for crate::ty::Prov {
272277
fn new(aid: crate::mir::alloc::AllocId) -> Self {

rustc_public/src/ty.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@ use super::abi::ReprOptions;
77
use super::mir::{Body, Mutability, Safety};
88
use super::{DefId, Error, Symbol, with};
99
use crate::abi::{FnAbi, Layout};
10-
use crate::crate_def::{CrateDef, CrateDefItems, CrateDefType};
10+
use crate::crate_def::{CrateDef, CrateDefType};
1111
use crate::mir::alloc::{AllocId, read_target_int, read_target_uint};
1212
use crate::mir::mono::StaticDef;
1313
use crate::target::MachineInfo;
14-
use crate::{Filename, IndexedVal, Opaque, ThreadLocalIndex};
14+
use crate::{AssocItems, Filename, IndexedVal, Opaque, ThreadLocalIndex};
1515

1616
#[derive(Copy, Clone, Eq, PartialEq, Hash)]
1717
pub struct Ty(usize, ThreadLocalIndex);
@@ -943,14 +943,14 @@ crate_def! {
943943
pub TraitDef;
944944
}
945945

946-
impl_crate_def_items! {
947-
TraitDef;
948-
}
949-
950946
impl TraitDef {
951947
pub fn declaration(trait_def: &TraitDef) -> TraitDecl {
952948
with(|cx| cx.trait_decl(trait_def))
953949
}
950+
951+
pub fn associated_items(&self) -> AssocItems {
952+
with(|cx| cx.associated_items(self.def_id()))
953+
}
954954
}
955955

956956
crate_def! {
@@ -969,15 +969,15 @@ crate_def! {
969969
pub ImplDef;
970970
}
971971

972-
impl_crate_def_items! {
973-
ImplDef;
974-
}
975-
976972
impl ImplDef {
977973
/// Retrieve information about this implementation.
978974
pub fn trait_impl(&self) -> ImplTrait {
979975
with(|cx| cx.trait_impl(self))
980976
}
977+
978+
pub fn associated_items(&self) -> AssocItems {
979+
with(|cx| cx.associated_items(self.def_id()))
980+
}
981981
}
982982

983983
crate_def! {

0 commit comments

Comments
 (0)