From ab559f170ee02e3bdd9aeeb55933bb143b520c34 Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 30 Oct 2019 19:10:53 +0300 Subject: move hygiene to hir_expand --- crates/ra_hir_def/src/attr.rs | 3 ++- crates/ra_hir_def/src/hygiene.rs | 40 ------------------------------------ crates/ra_hir_def/src/lib.rs | 1 - crates/ra_hir_def/src/nameres/raw.rs | 6 ++---- crates/ra_hir_def/src/path.rs | 3 ++- 5 files changed, 6 insertions(+), 47 deletions(-) delete mode 100644 crates/ra_hir_def/src/hygiene.rs (limited to 'crates/ra_hir_def') diff --git a/crates/ra_hir_def/src/attr.rs b/crates/ra_hir_def/src/attr.rs index 71f92adc2..0e961ca12 100644 --- a/crates/ra_hir_def/src/attr.rs +++ b/crates/ra_hir_def/src/attr.rs @@ -2,6 +2,7 @@ use std::sync::Arc; +use hir_expand::hygiene::Hygiene; use mbe::ast_to_token_tree; use ra_cfg::CfgOptions; use ra_syntax::{ @@ -10,7 +11,7 @@ use ra_syntax::{ }; use tt::Subtree; -use crate::{hygiene::Hygiene, path::Path}; +use crate::path::Path; #[derive(Debug, Clone, PartialEq, Eq)] pub struct Attr { diff --git a/crates/ra_hir_def/src/hygiene.rs b/crates/ra_hir_def/src/hygiene.rs deleted file mode 100644 index 94de2c57c..000000000 --- a/crates/ra_hir_def/src/hygiene.rs +++ /dev/null @@ -1,40 +0,0 @@ -//! This modules handles hygiene information. -//! -//! Specifically, `ast` + `Hygiene` allows you to create a `Name`. Note that, at -//! this moment, this is horribly incomplete and handles only `$crate`. -// Should this be moved to `hir_expand`? Seems like it. - -use hir_expand::{ - db::AstDatabase, - either::Either, - name::{AsName, Name}, - HirFileId, -}; -use ra_db::CrateId; -use ra_syntax::ast; - -#[derive(Debug)] -pub struct Hygiene { - // This is what `$crate` expands to - def_crate: Option, -} - -impl Hygiene { - pub fn new(db: &impl AstDatabase, file_id: HirFileId) -> Hygiene { - Hygiene { def_crate: file_id.macro_crate(db) } - } - - pub(crate) fn new_unhygienic() -> Hygiene { - Hygiene { def_crate: None } - } - - // FIXME: this should just return name - pub(crate) fn name_ref_to_name(&self, name_ref: ast::NameRef) -> Either { - if let Some(def_crate) = self.def_crate { - if name_ref.text() == "$crate" { - return Either::B(def_crate); - } - } - Either::A(name_ref.as_name()) - } -} diff --git a/crates/ra_hir_def/src/lib.rs b/crates/ra_hir_def/src/lib.rs index 5135dda56..7a6c7b301 100644 --- a/crates/ra_hir_def/src/lib.rs +++ b/crates/ra_hir_def/src/lib.rs @@ -11,7 +11,6 @@ pub mod db; pub mod attr; pub mod path; pub mod type_ref; -pub mod hygiene; // FIXME: this should be private pub mod nameres; diff --git a/crates/ra_hir_def/src/nameres/raw.rs b/crates/ra_hir_def/src/nameres/raw.rs index 56831e409..86c05d602 100644 --- a/crates/ra_hir_def/src/nameres/raw.rs +++ b/crates/ra_hir_def/src/nameres/raw.rs @@ -6,6 +6,7 @@ use hir_expand::{ ast_id_map::AstIdMap, db::AstDatabase, either::Either, + hygiene::Hygiene, name::{AsName, Name}, }; use ra_arena::{impl_arena_id, map::ArenaMap, Arena, RawId}; @@ -14,10 +15,7 @@ use ra_syntax::{ AstNode, AstPtr, SourceFile, }; -use crate::{ - attr::Attr, db::DefDatabase2, hygiene::Hygiene, path::Path, FileAstId, HirFileId, ModuleSource, - Source, -}; +use crate::{attr::Attr, db::DefDatabase2, path::Path, FileAstId, HirFileId, ModuleSource, Source}; /// `RawItems` is a set of top-level items in a file (except for impls). /// diff --git a/crates/ra_hir_def/src/path.rs b/crates/ra_hir_def/src/path.rs index d0b842a6b..ddabc7ca6 100644 --- a/crates/ra_hir_def/src/path.rs +++ b/crates/ra_hir_def/src/path.rs @@ -4,6 +4,7 @@ use std::{iter, sync::Arc}; use hir_expand::{ either::Either, + hygiene::Hygiene, name::{self, AsName, Name}, }; use ra_db::CrateId; @@ -12,7 +13,7 @@ use ra_syntax::{ AstNode, }; -use crate::{hygiene::Hygiene, type_ref::TypeRef, Source}; +use crate::{type_ref::TypeRef, Source}; #[derive(Debug, Clone, PartialEq, Eq, Hash)] pub struct Path { -- cgit v1.2.3