Skip to content

Commit 59a2c16

Browse files
committed
Merge Trait and TraitAlias handing
1 parent 68e7ec9 commit 59a2c16

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

74 files changed

+59
-562
lines changed

crates/hir-def/src/attr.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,6 @@ impl AttrsWithOwner {
554554
AdtId::UnionId(it) => attrs_from_ast_id_loc(db, it),
555555
},
556556
AttrDefId::TraitId(it) => attrs_from_ast_id_loc(db, it),
557-
AttrDefId::TraitAliasId(it) => attrs_from_ast_id_loc(db, it),
558557
AttrDefId::MacroId(it) => match it {
559558
MacroId::Macro2Id(it) => attrs_from_ast_id_loc(db, it),
560559
MacroId::MacroRulesId(it) => attrs_from_ast_id_loc(db, it),
@@ -659,7 +658,6 @@ impl AttrsWithOwner {
659658
AttrDefId::StaticId(id) => any_has_attrs(db, id),
660659
AttrDefId::ConstId(id) => any_has_attrs(db, id),
661660
AttrDefId::TraitId(id) => any_has_attrs(db, id),
662-
AttrDefId::TraitAliasId(id) => any_has_attrs(db, id),
663661
AttrDefId::TypeAliasId(id) => any_has_attrs(db, id),
664662
AttrDefId::MacroId(id) => match id {
665663
MacroId::Macro2Id(id) => any_has_attrs(db, id),

crates/hir-def/src/db.rs

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ use crate::{
1515
EnumVariantId, EnumVariantLoc, ExternBlockId, ExternBlockLoc, ExternCrateId, ExternCrateLoc,
1616
FunctionId, FunctionLoc, GenericDefId, ImplId, ImplLoc, LocalFieldId, Macro2Id, Macro2Loc,
1717
MacroExpander, MacroId, MacroRulesId, MacroRulesLoc, MacroRulesLocFlags, ProcMacroId,
18-
ProcMacroLoc, StaticId, StaticLoc, StructId, StructLoc, TraitAliasId, TraitAliasLoc, TraitId,
18+
ProcMacroLoc, StaticId, StaticLoc, StructId, StructLoc, TraitId,
1919
TraitLoc, TypeAliasId, TypeAliasLoc, UnionId, UnionLoc, UseId, UseLoc, VariantId,
2020
attr::{Attrs, AttrsWithOwner},
2121
expr_store::{
@@ -28,7 +28,7 @@ use crate::{
2828
nameres::crate_def_map,
2929
signatures::{
3030
ConstSignature, EnumSignature, FunctionSignature, ImplSignature, StaticSignature,
31-
StructSignature, TraitAliasSignature, TraitSignature, TypeAliasSignature, UnionSignature,
31+
StructSignature, TraitSignature, TypeAliasSignature, UnionSignature,
3232
},
3333
tt,
3434
visibility::{self, Visibility},
@@ -69,9 +69,6 @@ pub trait InternDatabase: RootQueryDb {
6969
#[salsa::interned]
7070
fn intern_trait(&self, loc: TraitLoc) -> TraitId;
7171

72-
#[salsa::interned]
73-
fn intern_trait_alias(&self, loc: TraitAliasLoc) -> TraitAliasId;
74-
7572
#[salsa::interned]
7673
fn intern_type_alias(&self, loc: TypeAliasLoc) -> TypeAliasId;
7774

@@ -152,11 +149,6 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
152149
self.function_signature_with_source_map(e).0
153150
}
154151

155-
#[salsa::tracked]
156-
fn trait_alias_signature(&self, e: TraitAliasId) -> Arc<TraitAliasSignature> {
157-
self.trait_alias_signature_with_source_map(e).0
158-
}
159-
160152
#[salsa::tracked]
161153
fn type_alias_signature(&self, e: TypeAliasId) -> Arc<TypeAliasSignature> {
162154
self.type_alias_signature_with_source_map(e).0
@@ -210,12 +202,6 @@ pub trait DefDatabase: InternDatabase + ExpandDatabase + SourceDatabase {
210202
e: FunctionId,
211203
) -> (Arc<FunctionSignature>, Arc<ExpressionStoreSourceMap>);
212204

213-
#[salsa::invoke(TraitAliasSignature::query)]
214-
fn trait_alias_signature_with_source_map(
215-
&self,
216-
e: TraitAliasId,
217-
) -> (Arc<TraitAliasSignature>, Arc<ExpressionStoreSourceMap>);
218-
219205
#[salsa::invoke(TypeAliasSignature::query)]
220206
fn type_alias_signature_with_source_map(
221207
&self,

crates/hir-def/src/dyn_map.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pub mod keys {
3434
use crate::{
3535
BlockId, ConstId, EnumId, EnumVariantId, ExternBlockId, ExternCrateId, FieldId, FunctionId,
3636
ImplId, LifetimeParamId, Macro2Id, MacroRulesId, ProcMacroId, StaticId, StructId,
37-
TraitAliasId, TraitId, TypeAliasId, TypeOrConstParamId, UnionId, UseId,
37+
TraitId, TypeAliasId, TypeOrConstParamId, UnionId, UseId,
3838
dyn_map::{DynMap, Policy},
3939
};
4040

@@ -48,7 +48,6 @@ pub mod keys {
4848
pub const IMPL: Key<ast::Impl, ImplId> = Key::new();
4949
pub const EXTERN_BLOCK: Key<ast::ExternBlock, ExternBlockId> = Key::new();
5050
pub const TRAIT: Key<ast::Trait, TraitId> = Key::new();
51-
pub const TRAIT_ALIAS: Key<ast::TraitAlias, TraitAliasId> = Key::new();
5251
pub const STRUCT: Key<ast::Struct, StructId> = Key::new();
5352
pub const UNION: Key<ast::Union, UnionId> = Key::new();
5453
pub const ENUM: Key<ast::Enum, EnumId> = Key::new();

crates/hir-def/src/expr_store/lower.rs

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ use tt::TextRange;
3333

3434
use crate::{
3535
AdtId, BlockId, BlockLoc, DefWithBodyId, FunctionId, GenericDefId, ImplId, MacroId,
36-
ModuleDefId, ModuleId, TraitAliasId, TraitId, TypeAliasId, UnresolvedMacro,
36+
ModuleDefId, ModuleId, TraitId, TypeAliasId, UnresolvedMacro,
3737
builtin_type::BuiltinUint,
3838
db::DefDatabase,
3939
expr_store::{
@@ -252,28 +252,6 @@ pub(crate) fn lower_trait(
252252
(store, source_map, params)
253253
}
254254

255-
pub(crate) fn lower_trait_alias(
256-
db: &dyn DefDatabase,
257-
module: ModuleId,
258-
trait_syntax: InFile<ast::TraitAlias>,
259-
trait_id: TraitAliasId,
260-
) -> (ExpressionStore, ExpressionStoreSourceMap, Arc<GenericParams>) {
261-
let mut expr_collector = ExprCollector::new(db, module, trait_syntax.file_id);
262-
let mut collector = generics::GenericParamsCollector::with_self_param(
263-
&mut expr_collector,
264-
trait_id.into(),
265-
trait_syntax.value.type_bound_list(),
266-
);
267-
collector.lower(
268-
&mut expr_collector,
269-
trait_syntax.value.generic_param_list(),
270-
trait_syntax.value.where_clause(),
271-
);
272-
let params = collector.finish();
273-
let (store, source_map) = expr_collector.store.finish();
274-
(store, source_map, params)
275-
}
276-
277255
pub(crate) fn lower_type_alias(
278256
db: &dyn DefDatabase,
279257
module: ModuleId,

crates/hir-def/src/expr_store/pretty.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,6 @@ pub fn print_signature(db: &dyn DefDatabase, owner: GenericDefId, edition: Editi
183183
}
184184
GenericDefId::ImplId(id) => format!("unimplemented {id:?}"),
185185
GenericDefId::StaticId(id) => format!("unimplemented {id:?}"),
186-
GenericDefId::TraitAliasId(id) => format!("unimplemented {id:?}"),
187186
GenericDefId::TraitId(id) => format!("unimplemented {id:?}"),
188187
GenericDefId::TypeAliasId(id) => format!("unimplemented {id:?}"),
189188
}

crates/hir-def/src/expr_store/tests/signatures.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ fn lower_and_print(#[rust_analyzer::rust_fixture] ra_fixture: &str, expect: Expe
2424
ModuleDefId::ConstId(id) => id.into(),
2525
ModuleDefId::StaticId(id) => id.into(),
2626
ModuleDefId::TraitId(id) => id.into(),
27-
ModuleDefId::TraitAliasId(id) => id.into(),
2827
ModuleDefId::TypeAliasId(id) => id.into(),
2928
ModuleDefId::EnumVariantId(_) => continue,
3029
ModuleDefId::BuiltinType(_) => continue,
@@ -51,7 +50,6 @@ fn lower_and_print(#[rust_analyzer::rust_fixture] ra_fixture: &str, expect: Expe
5150

5251
GenericDefId::ImplId(_id) => (),
5352
GenericDefId::StaticId(_id) => (),
54-
GenericDefId::TraitAliasId(_id) => (),
5553
GenericDefId::TraitId(_id) => (),
5654
GenericDefId::TypeAliasId(_id) => (),
5755
}

crates/hir-def/src/hir/generics.rs

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,6 @@ impl GenericParams {
203203
}
204204
GenericDefId::ImplId(impl_id) => db.impl_signature(impl_id).generic_params.clone(),
205205
GenericDefId::StaticId(_) => EMPTY.clone(),
206-
GenericDefId::TraitAliasId(trait_alias_id) => {
207-
db.trait_alias_signature(trait_alias_id).generic_params.clone()
208-
}
209206
GenericDefId::TraitId(trait_id) => db.trait_signature(trait_id).generic_params.clone(),
210207
GenericDefId::TypeAliasId(type_alias_id) => {
211208
db.type_alias_signature(type_alias_id).generic_params.clone()
@@ -246,10 +243,6 @@ impl GenericParams {
246243
let sig = db.static_signature(id);
247244
(EMPTY.clone(), sig.store.clone())
248245
}
249-
GenericDefId::TraitAliasId(id) => {
250-
let sig = db.trait_alias_signature(id);
251-
(sig.generic_params.clone(), sig.store.clone())
252-
}
253246
GenericDefId::TraitId(id) => {
254247
let sig = db.trait_signature(id);
255248
(sig.generic_params.clone(), sig.store.clone())
@@ -294,10 +287,6 @@ impl GenericParams {
294287
let (sig, sm) = db.static_signature_with_source_map(id);
295288
(EMPTY.clone(), sig.store.clone(), sm)
296289
}
297-
GenericDefId::TraitAliasId(id) => {
298-
let (sig, sm) = db.trait_alias_signature_with_source_map(id);
299-
(sig.generic_params.clone(), sig.store.clone(), sm)
300-
}
301290
GenericDefId::TraitId(id) => {
302291
let (sig, sm) = db.trait_signature_with_source_map(id);
303292
(sig.generic_params.clone(), sig.store.clone(), sm)

crates/hir-def/src/item_scope.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -872,7 +872,6 @@ impl PerNs {
872872
PerNs::values(def, v, import.and_then(ImportOrExternCrate::import_or_glob))
873873
}
874874
ModuleDefId::TraitId(_) => PerNs::types(def, v, import),
875-
ModuleDefId::TraitAliasId(_) => PerNs::types(def, v, import),
876875
ModuleDefId::TypeAliasId(_) => PerNs::types(def, v, import),
877876
ModuleDefId::BuiltinType(_) => PerNs::types(def, v, import),
878877
ModuleDefId::MacroId(mac) => PerNs::macros(mac, v, import),

crates/hir-def/src/item_tree.rs

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,6 @@ enum SmallModItem {
276276
Static(Static),
277277
Struct(Struct),
278278
Trait(Trait),
279-
TraitAlias(TraitAlias),
280279
TypeAlias(TypeAlias),
281280
Union(Union),
282281
}
@@ -404,7 +403,6 @@ ModItemId ->
404403
Static in small_data -> ast::Static,
405404
Struct in small_data -> ast::Struct,
406405
Trait in small_data -> ast::Trait,
407-
TraitAlias in small_data -> ast::TraitAlias,
408406
TypeAlias in small_data -> ast::TypeAlias,
409407
Union in small_data -> ast::Union,
410408
Use in big_data -> ast::Use,
@@ -583,12 +581,6 @@ pub struct Trait {
583581
pub(crate) visibility: RawVisibilityId,
584582
}
585583

586-
#[derive(Debug, Clone, Eq, PartialEq)]
587-
pub struct TraitAlias {
588-
pub name: Name,
589-
pub(crate) visibility: RawVisibilityId,
590-
}
591-
592584
#[derive(Debug, Clone, Eq, PartialEq)]
593585
pub struct Impl {}
594586

crates/hir-def/src/item_tree/lower.rs

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ use crate::{
2323
BigModItem, Const, Enum, ExternBlock, ExternCrate, FieldsShape, Function, Impl,
2424
ImportAlias, Interned, ItemTree, ItemTreeAstId, Macro2, MacroCall, MacroRules, Mod,
2525
ModItemId, ModKind, ModPath, RawAttrs, RawVisibility, RawVisibilityId, SmallModItem,
26-
Static, Struct, StructKind, Trait, TraitAlias, TypeAlias, Union, Use, UseTree, UseTreeKind,
26+
Static, Struct, StructKind, Trait, TypeAlias, Union, Use, UseTree, UseTreeKind,
2727
VisibilityExplicitness,
2828
},
2929
};
@@ -134,7 +134,6 @@ impl<'a> Ctx<'a> {
134134
ast::Item::Const(ast) => self.lower_const(ast).into(),
135135
ast::Item::Module(ast) => self.lower_module(ast)?.into(),
136136
ast::Item::Trait(ast) => self.lower_trait(ast)?.into(),
137-
ast::Item::TraitAlias(ast) => self.lower_trait_alias(ast)?.into(),
138137
ast::Item::Impl(ast) => self.lower_impl(ast).into(),
139138
ast::Item::Use(ast) => self.lower_use(ast)?.into(),
140139
ast::Item::ExternCrate(ast) => self.lower_extern_crate(ast)?.into(),
@@ -267,19 +266,6 @@ impl<'a> Ctx<'a> {
267266
Some(ast_id)
268267
}
269268

270-
fn lower_trait_alias(
271-
&mut self,
272-
trait_alias_def: &ast::TraitAlias,
273-
) -> Option<ItemTreeAstId<TraitAlias>> {
274-
let name = trait_alias_def.name()?.as_name();
275-
let visibility = self.lower_visibility(trait_alias_def);
276-
let ast_id = self.source_ast_id_map.ast_id(trait_alias_def);
277-
278-
let alias = TraitAlias { name, visibility };
279-
self.tree.small_data.insert(ast_id.upcast(), SmallModItem::TraitAlias(alias));
280-
Some(ast_id)
281-
}
282-
283269
fn lower_impl(&mut self, impl_def: &ast::Impl) -> ItemTreeAstId<Impl> {
284270
let ast_id = self.source_ast_id_map.ast_id(impl_def);
285271
// Note that trait impls don't get implicit `Self` unlike traits, because here they are a

0 commit comments

Comments
 (0)