1
1
//! Attributes & documentation for hir types.
2
2
use hir_def:: {
3
3
attr:: Attrs ,
4
- db:: DefDatabase ,
5
4
docs:: Documentation ,
6
5
resolver:: { HasResolver , Resolver } ,
7
6
AdtId , AttrDefId , FunctionId , GenericDefId , ModuleId , StaticId , TraitId , VariantId ,
@@ -62,18 +61,20 @@ macro_rules! impl_has_attrs_adt {
62
61
impl_has_attrs_adt ! [ Struct , Union , Enum ] ;
63
62
64
63
impl Resolvable for ModuleDef {
65
- fn resolver < D : DefDatabase + HirDatabase > ( & self , db : & D ) -> Option < Resolver > {
64
+ fn resolver ( & self , db : & dyn HirDatabase ) -> Option < Resolver > {
66
65
Some ( match self {
67
- ModuleDef :: Module ( m) => ModuleId :: from ( m. clone ( ) ) . resolver ( db) ,
68
- ModuleDef :: Function ( f) => FunctionId :: from ( f. clone ( ) ) . resolver ( db) ,
69
- ModuleDef :: Adt ( adt) => AdtId :: from ( adt. clone ( ) ) . resolver ( db) ,
66
+ ModuleDef :: Module ( m) => ModuleId :: from ( m. clone ( ) ) . resolver ( db. upcast ( ) ) ,
67
+ ModuleDef :: Function ( f) => FunctionId :: from ( f. clone ( ) ) . resolver ( db. upcast ( ) ) ,
68
+ ModuleDef :: Adt ( adt) => AdtId :: from ( adt. clone ( ) ) . resolver ( db. upcast ( ) ) ,
70
69
ModuleDef :: EnumVariant ( ev) => {
71
- GenericDefId :: from ( GenericDef :: from ( ev. clone ( ) ) ) . resolver ( db)
70
+ GenericDefId :: from ( GenericDef :: from ( ev. clone ( ) ) ) . resolver ( db. upcast ( ) )
72
71
}
73
- ModuleDef :: Const ( c) => GenericDefId :: from ( GenericDef :: from ( c. clone ( ) ) ) . resolver ( db) ,
74
- ModuleDef :: Static ( s) => StaticId :: from ( s. clone ( ) ) . resolver ( db) ,
75
- ModuleDef :: Trait ( t) => TraitId :: from ( t. clone ( ) ) . resolver ( db) ,
76
- ModuleDef :: TypeAlias ( t) => ModuleId :: from ( t. module ( db) ) . resolver ( db) ,
72
+ ModuleDef :: Const ( c) => {
73
+ GenericDefId :: from ( GenericDef :: from ( c. clone ( ) ) ) . resolver ( db. upcast ( ) )
74
+ }
75
+ ModuleDef :: Static ( s) => StaticId :: from ( s. clone ( ) ) . resolver ( db. upcast ( ) ) ,
76
+ ModuleDef :: Trait ( t) => TraitId :: from ( t. clone ( ) ) . resolver ( db. upcast ( ) ) ,
77
+ ModuleDef :: TypeAlias ( t) => ModuleId :: from ( t. module ( db) ) . resolver ( db. upcast ( ) ) ,
77
78
// FIXME: This should be a resolver relative to `std/core`
78
79
ModuleDef :: BuiltinType ( _t) => None ?,
79
80
} )
@@ -85,8 +86,8 @@ impl Resolvable for ModuleDef {
85
86
}
86
87
87
88
impl Resolvable for TypeParam {
88
- fn resolver < D : DefDatabase + HirDatabase > ( & self , db : & D ) -> Option < Resolver > {
89
- Some ( ModuleId :: from ( self . module ( db) ) . resolver ( db) )
89
+ fn resolver ( & self , db : & dyn HirDatabase ) -> Option < Resolver > {
90
+ Some ( ModuleId :: from ( self . module ( db) ) . resolver ( db. upcast ( ) ) )
90
91
}
91
92
92
93
fn try_into_module_def ( self ) -> Option < ModuleDef > {
@@ -95,8 +96,8 @@ impl Resolvable for TypeParam {
95
96
}
96
97
97
98
impl Resolvable for MacroDef {
98
- fn resolver < D : DefDatabase + HirDatabase > ( & self , db : & D ) -> Option < Resolver > {
99
- Some ( ModuleId :: from ( self . module ( db) ?) . resolver ( db) )
99
+ fn resolver ( & self , db : & dyn HirDatabase ) -> Option < Resolver > {
100
+ Some ( ModuleId :: from ( self . module ( db) ?) . resolver ( db. upcast ( ) ) )
100
101
}
101
102
102
103
fn try_into_module_def ( self ) -> Option < ModuleDef > {
@@ -105,8 +106,8 @@ impl Resolvable for MacroDef {
105
106
}
106
107
107
108
impl Resolvable for Field {
108
- fn resolver < D : DefDatabase + HirDatabase > ( & self , db : & D ) -> Option < Resolver > {
109
- Some ( VariantId :: from ( self . parent_def ( db) ) . resolver ( db) )
109
+ fn resolver ( & self , db : & dyn HirDatabase ) -> Option < Resolver > {
110
+ Some ( VariantId :: from ( self . parent_def ( db) ) . resolver ( db. upcast ( ) ) )
110
111
}
111
112
112
113
fn try_into_module_def ( self ) -> Option < ModuleDef > {
@@ -115,8 +116,8 @@ impl Resolvable for Field {
115
116
}
116
117
117
118
impl Resolvable for ImplDef {
118
- fn resolver < D : DefDatabase + HirDatabase > ( & self , db : & D ) -> Option < Resolver > {
119
- Some ( ModuleId :: from ( self . module ( db) ) . resolver ( db) )
119
+ fn resolver ( & self , db : & dyn HirDatabase ) -> Option < Resolver > {
120
+ Some ( ModuleId :: from ( self . module ( db) ) . resolver ( db. upcast ( ) ) )
120
121
}
121
122
122
123
fn try_into_module_def ( self ) -> Option < ModuleDef > {
@@ -125,8 +126,8 @@ impl Resolvable for ImplDef {
125
126
}
126
127
127
128
impl Resolvable for Local {
128
- fn resolver < D : DefDatabase + HirDatabase > ( & self , db : & D ) -> Option < Resolver > {
129
- Some ( ModuleId :: from ( self . module ( db) ) . resolver ( db) )
129
+ fn resolver ( & self , db : & dyn HirDatabase ) -> Option < Resolver > {
130
+ Some ( ModuleId :: from ( self . module ( db) ) . resolver ( db. upcast ( ) ) )
130
131
}
131
132
132
133
fn try_into_module_def ( self ) -> Option < ModuleDef > {
0 commit comments