Skip to content

Commit 5e78036

Browse files
bors[bot]matklad
andauthored
Merge #3379
3379: Rename ast::ImplBlock -> ast::ImplDef r=matklad a=matklad bors r+ 🤖 Co-authored-by: Aleksey Kladov <[email protected]>
2 parents e913206 + a1e1869 commit 5e78036

Some content is hidden

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

69 files changed

+218
-224
lines changed

crates/ra_assists/src/ast_transform.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,9 @@ impl<'a> SubstituteTypeParams<'a> {
4040
db: &'a RootDatabase,
4141
// FIXME: there's implicit invariant that `trait_` and `source_scope` match...
4242
trait_: hir::Trait,
43-
impl_block: ast::ImplBlock,
43+
impl_def: ast::ImplDef,
4444
) -> SubstituteTypeParams<'a> {
45-
let substs = get_syntactic_substs(impl_block).unwrap_or_default();
45+
let substs = get_syntactic_substs(impl_def).unwrap_or_default();
4646
let generic_def: hir::GenericDef = trait_.into();
4747
let substs_by_param: FxHashMap<_, _> = generic_def
4848
.params(db)
@@ -59,8 +59,8 @@ impl<'a> SubstituteTypeParams<'a> {
5959

6060
// FIXME: It would probably be nicer if we could get this via HIR (i.e. get the
6161
// trait ref, and then go from the types in the substs back to the syntax)
62-
fn get_syntactic_substs(impl_block: ast::ImplBlock) -> Option<Vec<ast::TypeRef>> {
63-
let target_trait = impl_block.target_trait()?;
62+
fn get_syntactic_substs(impl_def: ast::ImplDef) -> Option<Vec<ast::TypeRef>> {
63+
let target_trait = impl_def.target_trait()?;
6464
let path_type = match target_trait {
6565
ast::TypeRef::PathType(path) => path,
6666
_ => return None,

crates/ra_assists/src/handlers/add_missing_impl_members.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ fn add_missing_impl_members_inner(
101101
label: &'static str,
102102
) -> Option<Assist> {
103103
let _p = ra_prof::profile("add_missing_impl_members_inner");
104-
let impl_node = ctx.find_node_at_offset::<ast::ImplBlock>()?;
104+
let impl_node = ctx.find_node_at_offset::<ast::ImplDef>()?;
105105
let impl_item_list = impl_node.item_list()?;
106106

107107
let trait_ = resolve_target_trait(&ctx.sema, &impl_node)?;
@@ -257,7 +257,7 @@ impl Foo for S {
257257
}
258258

259259
#[test]
260-
fn test_empty_impl_block() {
260+
fn test_empty_impl_def() {
261261
check_assist(
262262
add_missing_impl_members,
263263
"
@@ -308,7 +308,7 @@ impl<U> Foo<U> for S {
308308
}
309309

310310
#[test]
311-
fn test_cursor_after_empty_impl_block() {
311+
fn test_cursor_after_empty_impl_def() {
312312
check_assist(
313313
add_missing_impl_members,
314314
"

crates/ra_assists/src/handlers/add_new.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,14 @@ pub(crate) fn add_new(ctx: AssistCtx) -> Option<Assist> {
4141
};
4242

4343
// Return early if we've found an existing new fn
44-
let impl_block = find_struct_impl(&ctx, &strukt)?;
44+
let impl_def = find_struct_impl(&ctx, &strukt)?;
4545

4646
ctx.add_assist(AssistId("add_new"), "Add default constructor", |edit| {
4747
edit.target(strukt.syntax().text_range());
4848

4949
let mut buf = String::with_capacity(512);
5050

51-
if impl_block.is_some() {
51+
if impl_def.is_some() {
5252
buf.push('\n');
5353
}
5454

@@ -71,10 +71,10 @@ pub(crate) fn add_new(ctx: AssistCtx) -> Option<Assist> {
7171

7272
buf.push_str("} }");
7373

74-
let (start_offset, end_offset) = impl_block
75-
.and_then(|impl_block| {
74+
let (start_offset, end_offset) = impl_def
75+
.and_then(|impl_def| {
7676
buf.push('\n');
77-
let start = impl_block
77+
let start = impl_def
7878
.syntax()
7979
.descendants_with_tokens()
8080
.find(|t| t.kind() == T!['{'])?
@@ -128,15 +128,15 @@ fn generate_impl_text(strukt: &ast::StructDef, code: &str) -> String {
128128
//
129129
// FIXME: change the new fn checking to a more semantic approach when that's more
130130
// viable (e.g. we process proc macros, etc)
131-
fn find_struct_impl(ctx: &AssistCtx, strukt: &ast::StructDef) -> Option<Option<ast::ImplBlock>> {
131+
fn find_struct_impl(ctx: &AssistCtx, strukt: &ast::StructDef) -> Option<Option<ast::ImplDef>> {
132132
let db = ctx.db;
133133
let module = strukt.syntax().ancestors().find(|node| {
134134
ast::Module::can_cast(node.kind()) || ast::SourceFile::can_cast(node.kind())
135135
})?;
136136

137137
let struct_def = ctx.sema.to_def(strukt)?;
138138

139-
let block = module.descendants().filter_map(ast::ImplBlock::cast).find_map(|impl_blk| {
139+
let block = module.descendants().filter_map(ast::ImplDef::cast).find_map(|impl_blk| {
140140
let blk = ctx.sema.to_def(&impl_blk)?;
141141

142142
// FIXME: handle e.g. `struct S<T>; impl<U> S<U> {}`
@@ -164,7 +164,7 @@ fn find_struct_impl(ctx: &AssistCtx, strukt: &ast::StructDef) -> Option<Option<a
164164
Some(block)
165165
}
166166

167-
fn has_new_fn(imp: &ast::ImplBlock) -> bool {
167+
fn has_new_fn(imp: &ast::ImplDef) -> bool {
168168
if let Some(il) = imp.item_list() {
169169
for item in il.impl_items() {
170170
if let ast::ImplItem::FnDef(f) = item {

crates/ra_assists/src/handlers/move_bounds.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ pub(crate) fn move_bounds_to_where_clause(ctx: AssistCtx) -> Option<Assist> {
3737
let anchor: SyntaxElement = match parent.kind() {
3838
FN_DEF => ast::FnDef::cast(parent)?.body()?.syntax().clone().into(),
3939
TRAIT_DEF => ast::TraitDef::cast(parent)?.item_list()?.syntax().clone().into(),
40-
IMPL_BLOCK => ast::ImplBlock::cast(parent)?.item_list()?.syntax().clone().into(),
40+
IMPL_DEF => ast::ImplDef::cast(parent)?.item_list()?.syntax().clone().into(),
4141
ENUM_DEF => ast::EnumDef::cast(parent)?.variant_list()?.syntax().clone().into(),
4242
STRUCT_DEF => parent
4343
.children_with_tokens()

crates/ra_assists/src/utils.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,14 @@ pub use insert_use::insert_use_statement;
1313

1414
pub fn get_missing_impl_items(
1515
sema: &Semantics<RootDatabase>,
16-
impl_block: &ast::ImplBlock,
16+
impl_def: &ast::ImplDef,
1717
) -> Vec<hir::AssocItem> {
1818
// Names must be unique between constants and functions. However, type aliases
1919
// may share the same name as a function or constant.
2020
let mut impl_fns_consts = FxHashSet::default();
2121
let mut impl_type = FxHashSet::default();
2222

23-
if let Some(item_list) = impl_block.item_list() {
23+
if let Some(item_list) = impl_def.item_list() {
2424
for item in item_list.impl_items() {
2525
match item {
2626
ast::ImplItem::FnDef(f) => {
@@ -44,7 +44,7 @@ pub fn get_missing_impl_items(
4444
}
4545
}
4646

47-
resolve_target_trait(sema, impl_block).map_or(vec![], |target_trait| {
47+
resolve_target_trait(sema, impl_def).map_or(vec![], |target_trait| {
4848
target_trait
4949
.items(sema.db)
5050
.iter()
@@ -65,9 +65,9 @@ pub fn get_missing_impl_items(
6565

6666
pub(crate) fn resolve_target_trait(
6767
sema: &Semantics<RootDatabase>,
68-
impl_block: &ast::ImplBlock,
68+
impl_def: &ast::ImplDef,
6969
) -> Option<hir::Trait> {
70-
let ast_path = impl_block
70+
let ast_path = impl_def
7171
.target_trait()
7272
.map(|it| it.syntax().clone())
7373
.and_then(ast::PathType::cast)?

crates/ra_assists/src/utils/insert_use.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
//! Handle syntactic aspects of inserting a new `use`.
2+
// FIXME: rewrite according to the plan, outlined in
3+
// https://github.com/rust-analyzer/rust-analyzer/issues/3301#issuecomment-592931553
24

35
use hir::{self, ModPath};
46
use ra_syntax::{

crates/ra_hir/src/code_model.rs

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -229,8 +229,8 @@ impl Module {
229229
}
230230
}
231231

232-
for impl_block in self.impl_blocks(db) {
233-
for item in impl_block.items(db) {
232+
for impl_def in self.impl_defs(db) {
233+
for item in impl_def.items(db) {
234234
if let AssocItem::Function(f) = item {
235235
f.diagnostics(db, sink);
236236
}
@@ -243,9 +243,9 @@ impl Module {
243243
def_map[self.id.local_id].scope.declarations().map(ModuleDef::from).collect()
244244
}
245245

246-
pub fn impl_blocks(self, db: &impl DefDatabase) -> Vec<ImplBlock> {
246+
pub fn impl_defs(self, db: &impl DefDatabase) -> Vec<ImplDef> {
247247
let def_map = db.crate_def_map(self.id.krate);
248-
def_map[self.id.local_id].scope.impls().map(ImplBlock::from).collect()
248+
def_map[self.id.local_id].scope.impls().map(ImplDef::from).collect()
249249
}
250250

251251
pub(crate) fn with_module_id(self, module_id: LocalModuleId) -> Module {
@@ -686,7 +686,7 @@ pub enum AssocItem {
686686
}
687687
pub enum AssocItemContainer {
688688
Trait(Trait),
689-
ImplBlock(ImplBlock),
689+
ImplDef(ImplDef),
690690
}
691691
pub trait AsAssocItem {
692692
fn as_assoc_item(self, db: &impl DefDatabase) -> Option<AssocItem>;
@@ -736,7 +736,7 @@ impl AssocItem {
736736
};
737737
match container {
738738
AssocContainerId::TraitId(id) => AssocItemContainer::Trait(id.into()),
739-
AssocContainerId::ImplId(id) => AssocItemContainer::ImplBlock(id.into()),
739+
AssocContainerId::ImplId(id) => AssocItemContainer::ImplDef(id.into()),
740740
AssocContainerId::ContainerId(_) => panic!("invalid AssocItem"),
741741
}
742742
}
@@ -748,7 +748,7 @@ pub enum GenericDef {
748748
Adt(Adt),
749749
Trait(Trait),
750750
TypeAlias(TypeAlias),
751-
ImplBlock(ImplBlock),
751+
ImplDef(ImplDef),
752752
// enum variants cannot have generics themselves, but their parent enums
753753
// can, and this makes some code easier to write
754754
EnumVariant(EnumVariant),
@@ -760,7 +760,7 @@ impl_froms!(
760760
Adt(Struct, Enum, Union),
761761
Trait,
762762
TypeAlias,
763-
ImplBlock,
763+
ImplDef,
764764
EnumVariant,
765765
Const
766766
);
@@ -850,20 +850,20 @@ impl TypeParam {
850850
}
851851
}
852852

853-
// FIXME: rename from `ImplBlock` to `Impl`
853+
// FIXME: rename from `ImplDef` to `Impl`
854854
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
855-
pub struct ImplBlock {
855+
pub struct ImplDef {
856856
pub(crate) id: ImplId,
857857
}
858858

859-
impl ImplBlock {
860-
pub fn all_in_crate(db: &impl HirDatabase, krate: Crate) -> Vec<ImplBlock> {
859+
impl ImplDef {
860+
pub fn all_in_crate(db: &impl HirDatabase, krate: Crate) -> Vec<ImplDef> {
861861
let impls = db.impls_in_crate(krate.id);
862862
impls.all_impls().map(Self::from).collect()
863863
}
864-
pub fn for_trait(db: &impl HirDatabase, krate: Crate, trait_: Trait) -> Vec<ImplBlock> {
864+
pub fn for_trait(db: &impl HirDatabase, krate: Crate, trait_: Trait) -> Vec<ImplDef> {
865865
let impls = db.impls_in_crate(krate.id);
866-
impls.lookup_impl_blocks_for_trait(trait_.id).map(Self::from).collect()
866+
impls.lookup_impl_defs_for_trait(trait_.id).map(Self::from).collect()
867867
}
868868

869869
pub fn target_trait(&self, db: &impl DefDatabase) -> Option<TypeRef> {
@@ -1077,7 +1077,7 @@ impl Type {
10771077
}
10781078

10791079
// This would be nicer if it just returned an iterator, but that runs into
1080-
// lifetime problems, because we need to borrow temp `CrateImplBlocks`.
1080+
// lifetime problems, because we need to borrow temp `CrateImplDefs`.
10811081
pub fn iterate_impl_items<T>(
10821082
self,
10831083
db: &impl HirDatabase,
@@ -1087,8 +1087,8 @@ impl Type {
10871087
for krate in self.ty.value.def_crates(db, krate.id)? {
10881088
let impls = db.impls_in_crate(krate);
10891089

1090-
for impl_block in impls.lookup_impl_blocks(&self.ty.value) {
1091-
for &item in db.impl_data(impl_block).items.iter() {
1090+
for impl_def in impls.lookup_impl_defs(&self.ty.value) {
1091+
for &item in db.impl_data(impl_def).items.iter() {
10921092
if let Some(result) = callback(item.into()) {
10931093
return Some(result);
10941094
}
@@ -1196,7 +1196,7 @@ pub enum ScopeDef {
11961196
ModuleDef(ModuleDef),
11971197
MacroDef(MacroDef),
11981198
GenericParam(TypeParam),
1199-
ImplSelfType(ImplBlock),
1199+
ImplSelfType(ImplDef),
12001200
AdtSelfType(Adt),
12011201
Local(Local),
12021202
Unknown,

crates/ra_hir/src/from_id.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ from_id![
3939
(hir_def::StaticId, crate::Static),
4040
(hir_def::ConstId, crate::Const),
4141
(hir_def::FunctionId, crate::Function),
42-
(hir_def::ImplId, crate::ImplBlock),
42+
(hir_def::ImplId, crate::ImplDef),
4343
(hir_def::TypeParamId, crate::TypeParam),
4444
(hir_expand::MacroDefId, crate::MacroDef)
4545
];
@@ -145,7 +145,7 @@ impl From<GenericDef> for GenericDefId {
145145
GenericDef::Adt(it) => GenericDefId::AdtId(it.into()),
146146
GenericDef::Trait(it) => GenericDefId::TraitId(it.id),
147147
GenericDef::TypeAlias(it) => GenericDefId::TypeAliasId(it.id),
148-
GenericDef::ImplBlock(it) => GenericDefId::ImplId(it.id),
148+
GenericDef::ImplDef(it) => GenericDefId::ImplId(it.id),
149149
GenericDef::EnumVariant(it) => {
150150
GenericDefId::EnumVariantId(EnumVariantId { parent: it.parent.id, local_id: it.id })
151151
}

crates/ra_hir/src/has_source.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use hir_def::{
99
use ra_syntax::ast;
1010

1111
use crate::{
12-
db::DefDatabase, Const, Enum, EnumVariant, FieldSource, Function, ImplBlock, MacroDef, Module,
12+
db::DefDatabase, Const, Enum, EnumVariant, FieldSource, Function, ImplDef, MacroDef, Module,
1313
Static, Struct, StructField, Trait, TypeAlias, TypeParam, Union,
1414
};
1515

@@ -111,9 +111,9 @@ impl HasSource for MacroDef {
111111
}
112112
}
113113
}
114-
impl HasSource for ImplBlock {
115-
type Ast = ast::ImplBlock;
116-
fn source(self, db: &impl DefDatabase) -> InFile<ast::ImplBlock> {
114+
impl HasSource for ImplDef {
115+
type Ast = ast::ImplDef;
116+
fn source(self, db: &impl DefDatabase) -> InFile<ast::ImplDef> {
117117
self.id.lookup(db).source(db)
118118
}
119119
}

crates/ra_hir/src/lib.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ pub use crate::{
4141
code_model::{
4242
Adt, AsAssocItem, AssocItem, AssocItemContainer, AttrDef, Const, Crate, CrateDependency,
4343
DefWithBody, Docs, Enum, EnumVariant, FieldSource, Function, GenericDef, HasAttrs,
44-
HasVisibility, ImplBlock, Local, MacroDef, Module, ModuleDef, ScopeDef, Static, Struct,
44+
HasVisibility, ImplDef, Local, MacroDef, Module, ModuleDef, ScopeDef, Static, Struct,
4545
StructField, Trait, Type, TypeAlias, TypeParam, Union, VariantDef,
4646
},
4747
has_source::HasSource,

0 commit comments

Comments
 (0)