mirror of
https://github.com/rust-lang/rust-analyzer
synced 2025-01-13 13:48:50 +00:00
Hygiene is an internal implementation detail of the compiler
This commit is contained in:
parent
e346a9c5e1
commit
9faf8dd69a
4 changed files with 12 additions and 7 deletions
|
@ -96,7 +96,7 @@ pub use {
|
||||||
visibility::Visibility,
|
visibility::Visibility,
|
||||||
},
|
},
|
||||||
hir_expand::{
|
hir_expand::{
|
||||||
name::{known, AsName, Name},
|
name::{known, Name},
|
||||||
ExpandResult, HirFileId, InFile, MacroCallId, MacroCallLoc, /* FIXME */ MacroDefId,
|
ExpandResult, HirFileId, InFile, MacroCallId, MacroCallLoc, /* FIXME */ MacroDefId,
|
||||||
MacroFile, Origin,
|
MacroFile, Origin,
|
||||||
},
|
},
|
||||||
|
@ -106,7 +106,10 @@ pub use {
|
||||||
// These are negative re-exports: pub using these names is forbidden, they
|
// These are negative re-exports: pub using these names is forbidden, they
|
||||||
// should remain private to hir internals.
|
// should remain private to hir internals.
|
||||||
#[allow(unused)]
|
#[allow(unused)]
|
||||||
use {hir_def::path::Path, hir_expand::hygiene::Hygiene};
|
use {
|
||||||
|
hir_def::path::Path,
|
||||||
|
hir_expand::{hygiene::Hygiene, name::AsName},
|
||||||
|
};
|
||||||
|
|
||||||
/// hir::Crate describes a single crate. It's the main interface with which
|
/// hir::Crate describes a single crate. It's the main interface with which
|
||||||
/// a crate's dependencies interact. Mostly, it should be just a proxy for the
|
/// a crate's dependencies interact. Mostly, it should be just a proxy for the
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use std::iter;
|
use std::iter;
|
||||||
|
|
||||||
use either::Either;
|
use either::Either;
|
||||||
use hir::{AsName, Module, ModuleDef, Name, Variant};
|
use hir::{Module, ModuleDef, Name, Variant};
|
||||||
use ide_db::{
|
use ide_db::{
|
||||||
defs::Definition,
|
defs::Definition,
|
||||||
helpers::{
|
helpers::{
|
||||||
|
@ -133,7 +133,7 @@ fn existing_definition(db: &RootDatabase, variant_name: &ast::Name, variant: &Va
|
||||||
),
|
),
|
||||||
_ => false,
|
_ => false,
|
||||||
})
|
})
|
||||||
.any(|(name, _)| name == variant_name.as_name())
|
.any(|(name, _)| name.to_string() == variant_name.to_string())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn insert_import(
|
fn insert_import(
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
use std::iter;
|
use std::iter;
|
||||||
|
|
||||||
use hir::{AsAssocItem, AsName};
|
use hir::AsAssocItem;
|
||||||
use ide_db::helpers::{import_assets::ImportCandidate, mod_path_to_ast};
|
use ide_db::helpers::{import_assets::ImportCandidate, mod_path_to_ast};
|
||||||
use ide_db::RootDatabase;
|
use ide_db::RootDatabase;
|
||||||
use syntax::{
|
use syntax::{
|
||||||
|
@ -160,7 +160,9 @@ fn find_trait_method(
|
||||||
) -> Option<hir::Function> {
|
) -> Option<hir::Function> {
|
||||||
if let Some(hir::AssocItem::Function(method)) =
|
if let Some(hir::AssocItem::Function(method)) =
|
||||||
trait_.items(db).into_iter().find(|item: &hir::AssocItem| {
|
trait_.items(db).into_iter().find(|item: &hir::AssocItem| {
|
||||||
item.name(db).map(|name| name == trait_method_name.as_name()).unwrap_or(false)
|
item.name(db)
|
||||||
|
.map(|name| name.to_string() == trait_method_name.to_string())
|
||||||
|
.unwrap_or(false)
|
||||||
})
|
})
|
||||||
{
|
{
|
||||||
Some(method)
|
Some(method)
|
||||||
|
|
|
@ -46,7 +46,7 @@ This is *the* entry point, but it front-loads a lot of complexity, so its fine t
|
||||||
|
|
||||||
`crates/rust-analyzer/src/handlers.rs` implements all LSP requests and is a great place to start if you are already familiar with LSP.
|
`crates/rust-analyzer/src/handlers.rs` implements all LSP requests and is a great place to start if you are already familiar with LSP.
|
||||||
|
|
||||||
`Analysis` and `AnalysisHost` types define the main API.
|
`Analysis` and `AnalysisHost` types define the main API for consumers of IDE services.
|
||||||
|
|
||||||
## Code Map
|
## Code Map
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue