@@ -11,6 +11,7 @@ use hir_def::{
1111 builtin_type:: BuiltinType ,
1212 docs:: Documentation ,
1313 expr:: { BindingAnnotation , Pat , PatId } ,
14+ nameres:: ModuleSource ,
1415 per_ns:: PerNs ,
1516 resolver:: HasResolver ,
1617 type_ref:: { Mutability , TypeRef } ,
@@ -21,11 +22,11 @@ use hir_def::{
2122use hir_expand:: {
2223 diagnostics:: DiagnosticSink ,
2324 name:: { self , AsName } ,
24- AstId , MacroDefId ,
25+ MacroDefId ,
2526} ;
2627use hir_ty:: expr:: ExprValidator ;
27- use ra_db:: { CrateId , Edition , FileId , FilePosition } ;
28- use ra_syntax:: { ast, AstNode , SyntaxNode } ;
28+ use ra_db:: { CrateId , Edition } ;
29+ use ra_syntax:: ast;
2930
3031use crate :: {
3132 db:: { DefDatabase , HirDatabase } ,
@@ -79,64 +80,6 @@ impl Crate {
7980 }
8081}
8182
82- pub enum ModuleSource {
83- SourceFile ( ast:: SourceFile ) ,
84- Module ( ast:: Module ) ,
85- }
86-
87- impl ModuleSource {
88- pub fn new (
89- db : & impl DefDatabase ,
90- file_id : Option < FileId > ,
91- decl_id : Option < AstId < ast:: Module > > ,
92- ) -> ModuleSource {
93- match ( file_id, decl_id) {
94- ( Some ( file_id) , _) => {
95- let source_file = db. parse ( file_id) . tree ( ) ;
96- ModuleSource :: SourceFile ( source_file)
97- }
98- ( None , Some ( item_id) ) => {
99- let module = item_id. to_node ( db) ;
100- assert ! ( module. item_list( ) . is_some( ) , "expected inline module" ) ;
101- ModuleSource :: Module ( module)
102- }
103- ( None , None ) => panic ! ( ) ,
104- }
105- }
106-
107- // FIXME: this methods do not belong here
108- pub fn from_position ( db : & impl DefDatabase , position : FilePosition ) -> ModuleSource {
109- let parse = db. parse ( position. file_id ) ;
110- match & ra_syntax:: algo:: find_node_at_offset :: < ast:: Module > (
111- parse. tree ( ) . syntax ( ) ,
112- position. offset ,
113- ) {
114- Some ( m) if !m. has_semi ( ) => ModuleSource :: Module ( m. clone ( ) ) ,
115- _ => {
116- let source_file = parse. tree ( ) ;
117- ModuleSource :: SourceFile ( source_file)
118- }
119- }
120- }
121-
122- pub fn from_child_node ( db : & impl DefDatabase , child : InFile < & SyntaxNode > ) -> ModuleSource {
123- if let Some ( m) =
124- child. value . ancestors ( ) . filter_map ( ast:: Module :: cast) . find ( |it| !it. has_semi ( ) )
125- {
126- ModuleSource :: Module ( m)
127- } else {
128- let file_id = child. file_id . original_file ( db) ;
129- let source_file = db. parse ( file_id) . tree ( ) ;
130- ModuleSource :: SourceFile ( source_file)
131- }
132- }
133-
134- pub fn from_file_id ( db : & impl DefDatabase , file_id : FileId ) -> ModuleSource {
135- let source_file = db. parse ( file_id) . tree ( ) ;
136- ModuleSource :: SourceFile ( source_file)
137- }
138- }
139-
14083#[ derive( Debug , Clone , Copy , PartialEq , Eq , Hash ) ]
14184pub struct Module {
14285 pub ( crate ) id : ModuleId ,
0 commit comments