Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-def/src/signatures.rs')
-rw-r--r--crates/hir-def/src/signatures.rs35
1 files changed, 6 insertions, 29 deletions
diff --git a/crates/hir-def/src/signatures.rs b/crates/hir-def/src/signatures.rs
index 598b2c0314..bf72fafeae 100644
--- a/crates/hir-def/src/signatures.rs
+++ b/crates/hir-def/src/signatures.rs
@@ -20,15 +20,13 @@ use triomphe::Arc;
use crate::{
ConstId, EnumId, EnumVariantId, EnumVariantLoc, ExternBlockId, FunctionId, HasModule, ImplId,
- ItemContainerId, ModuleId, StaticId, StructId, TraitAliasId, TraitId, TypeAliasId, UnionId,
- VariantId,
+ ItemContainerId, ModuleId, StaticId, StructId, TraitId, TypeAliasId, UnionId, VariantId,
attr::Attrs,
db::DefDatabase,
expr_store::{
ExpressionStore, ExpressionStoreSourceMap,
lower::{
- ExprCollector, lower_function, lower_generic_params, lower_trait, lower_trait_alias,
- lower_type_alias,
+ ExprCollector, lower_function, lower_generic_params, lower_trait, lower_type_alias,
},
},
hir::{ExprId, PatId, generics::GenericParams},
@@ -404,6 +402,7 @@ bitflags::bitflags! {
const SKIP_BOXED_SLICE_DURING_METHOD_DISPATCH = 1 << 6;
const RUSTC_PAREN_SUGAR = 1 << 7;
const COINDUCTIVE = 1 << 8;
+ const ALIAS = 1 << 9;
}
}
@@ -428,6 +427,9 @@ impl TraitSignature {
if source.value.unsafe_token().is_some() {
flags.insert(TraitFlags::UNSAFE);
}
+ if source.value.eq_token().is_some() {
+ flags.insert(TraitFlags::ALIAS);
+ }
if attrs.by_key(sym::fundamental).exists() {
flags |= TraitFlags::FUNDAMENTAL;
}
@@ -469,31 +471,6 @@ impl TraitSignature {
}
}
-#[derive(Debug, PartialEq, Eq)]
-pub struct TraitAliasSignature {
- pub name: Name,
- pub generic_params: Arc<GenericParams>,
- pub store: Arc<ExpressionStore>,
-}
-
-impl TraitAliasSignature {
- pub fn query(
- db: &dyn DefDatabase,
- id: TraitAliasId,
- ) -> (Arc<Self>, Arc<ExpressionStoreSourceMap>) {
- let loc = id.lookup(db);
-
- let source = loc.source(db);
- let name = as_name_opt(source.value.name());
- let (store, source_map, generic_params) = lower_trait_alias(db, loc.container, source, id);
-
- (
- Arc::new(TraitAliasSignature { generic_params, store: Arc::new(store), name }),
- Arc::new(source_map),
- )
- }
-}
-
bitflags! {
#[derive(Debug, Clone, Copy, Eq, PartialEq, Default)]
pub struct FnFlags: u16 {