Skip to content

Commit bbb0535

Browse files
committed
internal: remove one more needless extern crate
1 parent dbf11b1 commit bbb0535

File tree

12 files changed

+22
-28
lines changed

12 files changed

+22
-28
lines changed

crates/ide/src/doc_links.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ pub(crate) fn external_docs(
113113
let definition = match_ast! {
114114
match node {
115115
ast::NameRef(name_ref) => NameRefClass::classify(&sema, &name_ref).map(|d| d.referenced())?,
116-
ast::Name(name) => NameClass::classify(&sema, &name).map(|d| d.referenced_or_defined(sema.db))?,
116+
ast::Name(name) => NameClass::classify(&sema, &name).map(|d| d.referenced_or_defined())?,
117117
_ => return None,
118118
}
119119
};

crates/ide/src/goto_declaration.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ pub(crate) fn goto_declaration(
2828
name_kind.referenced()
2929
},
3030
ast::Name(name) => {
31-
NameClass::classify(&sema, &name)?.referenced_or_defined(sema.db)
31+
NameClass::classify(&sema, &name)?.referenced_or_defined()
3232
},
3333
_ => return None,
3434
}

crates/ide/src/goto_definition.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,12 @@ pub(crate) fn goto_definition(
6060
reference_definition(&sema, Either::Right(&name_ref))
6161
},
6262
ast::Name(name) => {
63-
let def = NameClass::classify(&sema, &name)?.referenced_or_defined(sema.db);
63+
let def = NameClass::classify(&sema, &name)?.referenced_or_defined();
6464
try_find_trait_item_definition(sema.db, &def)
6565
.or_else(|| def.try_to_nav(sema.db))
6666
},
6767
ast::Lifetime(lt) => if let Some(name_class) = NameClass::classify_lifetime(&sema, &lt) {
68-
let def = name_class.referenced_or_defined(sema.db);
68+
let def = name_class.referenced_or_defined();
6969
def.try_to_nav(sema.db)
7070
} else {
7171
reference_definition(&sema, Either::Left(&lt))

crates/ide/src/goto_implementation.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub(crate) fn goto_implementation(
2929
let node = sema.find_node_at_offset_with_descend(&syntax, position.offset)?;
3030
let def = match &node {
3131
ast::NameLike::Name(name) => {
32-
NameClass::classify(&sema, name).map(|class| class.referenced_or_defined(sema.db))
32+
NameClass::classify(&sema, name).map(|class| class.referenced_or_defined())
3333
}
3434
ast::NameLike::NameRef(name_ref) => {
3535
NameRefClass::classify(&sema, name_ref).map(|class| class.referenced())

crates/ide/src/hover.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ pub(crate) fn hover(
9898
// field pattern shorthands to their definition
9999
ast::Name(name) => NameClass::classify(&sema, &name).and_then(|class| match class {
100100
NameClass::ConstReference(def) => Some(def),
101-
def => def.defined(db),
101+
def => def.defined(),
102102
}),
103103
ast::NameRef(name_ref) => {
104104
NameRefClass::classify(&sema, &name_ref).map(|d| d.referenced())
105105
},
106106
ast::Lifetime(lifetime) => NameClass::classify_lifetime(&sema, &lifetime).map_or_else(
107107
|| NameRefClass::classify_lifetime(&sema, &lifetime).map(|d| d.referenced()),
108-
|d| d.defined(db),
108+
|d| d.defined(),
109109
),
110110

111111
_ => {

crates/ide/src/references.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ pub(crate) fn find_all_refs(
5858

5959
let (def, is_literal_search) =
6060
if let Some(name) = get_name_of_item_declaration(&syntax, position) {
61-
(NameClass::classify(sema, &name)?.referenced_or_defined(sema.db), true)
61+
(NameClass::classify(sema, &name)?.referenced_or_defined(), true)
6262
} else {
6363
(find_def(sema, &syntax, position.offset)?, false)
6464
};
@@ -117,14 +117,12 @@ pub(crate) fn find_def(
117117
) -> Option<Definition> {
118118
let def = match sema.find_node_at_offset_with_descend(syntax, offset)? {
119119
ast::NameLike::NameRef(name_ref) => NameRefClass::classify(sema, &name_ref)?.referenced(),
120-
ast::NameLike::Name(name) => {
121-
NameClass::classify(sema, &name)?.referenced_or_defined(sema.db)
122-
}
120+
ast::NameLike::Name(name) => NameClass::classify(sema, &name)?.referenced_or_defined(),
123121
ast::NameLike::Lifetime(lifetime) => NameRefClass::classify_lifetime(sema, &lifetime)
124122
.map(|class| class.referenced())
125123
.or_else(|| {
126124
NameClass::classify_lifetime(sema, &lifetime)
127-
.map(|class| class.referenced_or_defined(sema.db))
125+
.map(|class| class.referenced_or_defined())
128126
})?,
129127
};
130128
Some(def)

crates/ide/src/rename.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ fn find_definition(
108108
bail!("Renaming aliases is currently unsupported")
109109
}
110110
ast::NameLike::Name(name) => {
111-
NameClass::classify(sema, &name).map(|class| class.referenced_or_defined(sema.db))
111+
NameClass::classify(sema, &name).map(|class| class.referenced_or_defined())
112112
}
113113
ast::NameLike::NameRef(name_ref) => {
114114
if let Some(def) =
@@ -126,8 +126,7 @@ fn find_definition(
126126
ast::NameLike::Lifetime(lifetime) => NameRefClass::classify_lifetime(sema, &lifetime)
127127
.map(|class| class.referenced())
128128
.or_else(|| {
129-
NameClass::classify_lifetime(sema, &lifetime)
130-
.map(|it| it.referenced_or_defined(sema.db))
129+
NameClass::classify_lifetime(sema, &lifetime).map(|it| it.referenced_or_defined())
131130
}),
132131
}
133132
.ok_or_else(|| format_err!("No references found at position"))?;

crates/ide/src/syntax_highlighting/highlight.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ pub(super) fn element(
4646
};
4747

4848
match name_kind {
49-
Some(NameClass::ExternCrate(_)) => SymbolKind::Module.into(),
5049
Some(NameClass::Definition(def)) => {
5150
let mut h = highlight_def(db, krate, def) | HlMod::Definition;
5251
if let Definition::ModuleDef(hir::ModuleDef::Trait(trait_)) = &def {

crates/ide/src/syntax_highlighting/test_data/highlight_extern_crate.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,5 +39,5 @@
3939
.unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
4040
</style>
4141
<pre><code><span class="keyword">extern</span> <span class="keyword">crate</span> <span class="module library">std</span><span class="semicolon">;</span>
42-
<span class="keyword">extern</span> <span class="keyword">crate</span> <span class="module library">alloc</span> <span class="keyword">as</span> <span class="module">abc</span><span class="semicolon">;</span>
42+
<span class="keyword">extern</span> <span class="keyword">crate</span> <span class="module library">alloc</span> <span class="keyword">as</span> <span class="module declaration library">abc</span><span class="semicolon">;</span>
4343
</code></pre>

crates/ide_db/src/defs.rs

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
// FIXME: this badly needs rename/rewrite (matklad, 2020-02-06).
77

88
use hir::{
9-
db::HirDatabase, Crate, Field, GenericParam, HasVisibility, Impl, Label, Local, MacroDef,
10-
Module, ModuleDef, Name, PathResolution, Semantics, Visibility,
9+
Field, GenericParam, HasVisibility, Impl, Label, Local, MacroDef, Module, ModuleDef, Name,
10+
PathResolution, Semantics, Visibility,
1111
};
1212
use syntax::{
1313
ast::{self, AstNode, PathSegmentKind},
@@ -108,7 +108,6 @@ impl Definition {
108108
/// A model special case is `None` constant in pattern.
109109
#[derive(Debug)]
110110
pub enum NameClass {
111-
ExternCrate(Crate),
112111
Definition(Definition),
113112
/// `None` in `if let None = Some(82) {}`.
114113
/// Syntactically, it is a name, but semantically it is a reference.
@@ -124,9 +123,8 @@ pub enum NameClass {
124123

125124
impl NameClass {
126125
/// `Definition` defined by this name.
127-
pub fn defined(self, db: &dyn HirDatabase) -> Option<Definition> {
126+
pub fn defined(self) -> Option<Definition> {
128127
let res = match self {
129-
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
130128
NameClass::Definition(it) => it,
131129
NameClass::ConstReference(_) => return None,
132130
NameClass::PatFieldShorthand { local_def, field_ref: _ } => {
@@ -137,9 +135,8 @@ impl NameClass {
137135
}
138136

139137
/// `Definition` referenced or defined by this name.
140-
pub fn referenced_or_defined(self, db: &dyn HirDatabase) -> Definition {
138+
pub fn referenced_or_defined(self) -> Definition {
141139
match self {
142-
NameClass::ExternCrate(krate) => Definition::ModuleDef(krate.root_module(db).into()),
143140
NameClass::Definition(it) | NameClass::ConstReference(it) => it,
144141
NameClass::PatFieldShorthand { local_def: _, field_ref } => field_ref,
145142
}
@@ -189,8 +186,9 @@ impl NameClass {
189186
Some(NameClass::Definition(name_ref_class.referenced()))
190187
} else {
191188
let extern_crate = it.syntax().parent().and_then(ast::ExternCrate::cast)?;
192-
let resolved = sema.resolve_extern_crate(&extern_crate)?;
193-
Some(NameClass::ExternCrate(resolved))
189+
let krate = sema.resolve_extern_crate(&extern_crate)?;
190+
let root_module = krate.root_module(sema.db);
191+
Some(NameClass::Definition(Definition::ModuleDef(root_module.into())))
194192
}
195193
},
196194
ast::IdentPat(it) => {

crates/ide_db/src/items_locator.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ fn get_name_definition(
142142
candidate_node
143143
};
144144
let name = ast::Name::cast(candidate_name_node)?;
145-
NameClass::classify(sema, &name)?.defined(sema.db)
145+
NameClass::classify(sema, &name)?.defined()
146146
}
147147

148148
fn is_assoc_item(item: ItemInNs, db: &RootDatabase) -> bool {

crates/ide_diagnostics/src/handlers/incorrect_case.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ pub(crate) fn incorrect_case(ctx: &DiagnosticsContext<'_>, d: &hir::IncorrectCas
2929
fn fixes(ctx: &DiagnosticsContext<'_>, d: &hir::IncorrectCase) -> Option<Vec<Assist>> {
3030
let root = ctx.sema.db.parse_or_expand(d.file)?;
3131
let name_node = d.ident.to_node(&root);
32-
let def = NameClass::classify(&ctx.sema, &name_node)?.defined(ctx.sema.db)?;
32+
let def = NameClass::classify(&ctx.sema, &name_node)?.defined()?;
3333

3434
let name_node = InFile::new(d.file, name_node.syntax());
3535
let frange = name_node.original_file_range(ctx.sema.db);

0 commit comments

Comments
 (0)