diff options
72 files changed, 895 insertions, 953 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model.rs index 970b78412..49030ce67 100644 --- a/crates/ra_hir/src/code_model_api.rs +++ b/crates/ra_hir/src/code_model.rs | |||
@@ -1,15 +1,15 @@ | |||
1 | use std::sync::Arc; | 1 | use std::sync::Arc; |
2 | 2 | ||
3 | use ra_db::{CrateId, SourceRootId, Edition}; | 3 | use ra_db::{CrateId, SourceRootId, Edition, FileId}; |
4 | use ra_syntax::{ast::self, TreeArc}; | 4 | use ra_syntax::{ast::{self, NameOwner, TypeAscriptionOwner}, TreeArc}; |
5 | 5 | ||
6 | use crate::{ | 6 | use crate::{ |
7 | Name, Ty, HirFileId, Either, | 7 | Name, AsName, AstId, Ty, HirFileId, Either, |
8 | HirDatabase, DefDatabase, | 8 | HirDatabase, DefDatabase, |
9 | type_ref::TypeRef, | 9 | type_ref::TypeRef, |
10 | nameres::{ModuleScope, Namespace, ImportId, CrateModuleId}, | 10 | nameres::{ModuleScope, Namespace, ImportId, CrateModuleId}, |
11 | expr::{Body, BodySourceMap, validation::ExprValidator}, | 11 | expr::{Body, BodySourceMap, validation::ExprValidator}, |
12 | ty::{ TraitRef, InferenceResult}, | 12 | ty::{TraitRef, InferenceResult}, |
13 | adt::{EnumVariantId, StructFieldId, VariantDef}, | 13 | adt::{EnumVariantId, StructFieldId, VariantDef}, |
14 | generics::HasGenericParams, | 14 | generics::HasGenericParams, |
15 | docs::{Documentation, Docs, docs_from_ast}, | 15 | docs::{Documentation, Docs, docs_from_ast}, |
@@ -18,6 +18,7 @@ use crate::{ | |||
18 | resolve::Resolver, | 18 | resolve::Resolver, |
19 | diagnostics::{DiagnosticSink}, | 19 | diagnostics::{DiagnosticSink}, |
20 | traits::{TraitItem, TraitData}, | 20 | traits::{TraitItem, TraitData}, |
21 | type_ref::Mutability, | ||
21 | }; | 22 | }; |
22 | 23 | ||
23 | /// hir::Crate describes a single crate. It's the main interface with which | 24 | /// hir::Crate describes a single crate. It's the main interface with which |
@@ -35,19 +36,28 @@ pub struct CrateDependency { | |||
35 | } | 36 | } |
36 | 37 | ||
37 | impl Crate { | 38 | impl Crate { |
38 | pub fn crate_id(&self) -> CrateId { | 39 | pub fn crate_id(self) -> CrateId { |
39 | self.crate_id | 40 | self.crate_id |
40 | } | 41 | } |
41 | 42 | ||
42 | pub fn dependencies(&self, db: &impl DefDatabase) -> Vec<CrateDependency> { | 43 | pub fn dependencies(self, db: &impl DefDatabase) -> Vec<CrateDependency> { |
43 | self.dependencies_impl(db) | 44 | db.crate_graph() |
45 | .dependencies(self.crate_id) | ||
46 | .map(|dep| { | ||
47 | let krate = Crate { crate_id: dep.crate_id() }; | ||
48 | let name = dep.as_name(); | ||
49 | CrateDependency { krate, name } | ||
50 | }) | ||
51 | .collect() | ||
44 | } | 52 | } |
45 | 53 | ||
46 | pub fn root_module(&self, db: &impl DefDatabase) -> Option<Module> { | 54 | pub fn root_module(self, db: &impl DefDatabase) -> Option<Module> { |
47 | self.root_module_impl(db) | 55 | let module_id = db.crate_def_map(self).root(); |
56 | let module = Module { krate: self, module_id }; | ||
57 | Some(module) | ||
48 | } | 58 | } |
49 | 59 | ||
50 | pub fn edition(&self, db: &impl DefDatabase) -> Edition { | 60 | pub fn edition(self, db: &impl DefDatabase) -> Edition { |
51 | let crate_graph = db.crate_graph(); | 61 | let crate_graph = db.crate_graph(); |
52 | crate_graph.edition(self.crate_id) | 62 | crate_graph.edition(self.crate_id) |
53 | } | 63 | } |
@@ -98,29 +108,66 @@ pub enum ModuleSource { | |||
98 | Module(TreeArc<ast::Module>), | 108 | Module(TreeArc<ast::Module>), |
99 | } | 109 | } |
100 | 110 | ||
111 | impl ModuleSource { | ||
112 | pub(crate) fn new( | ||
113 | db: &impl DefDatabase, | ||
114 | file_id: Option<FileId>, | ||
115 | decl_id: Option<AstId<ast::Module>>, | ||
116 | ) -> ModuleSource { | ||
117 | match (file_id, decl_id) { | ||
118 | (Some(file_id), _) => { | ||
119 | let source_file = db.parse(file_id); | ||
120 | ModuleSource::SourceFile(source_file) | ||
121 | } | ||
122 | (None, Some(item_id)) => { | ||
123 | let module = item_id.to_node(db); | ||
124 | assert!(module.item_list().is_some(), "expected inline module"); | ||
125 | ModuleSource::Module(module.to_owned()) | ||
126 | } | ||
127 | (None, None) => panic!(), | ||
128 | } | ||
129 | } | ||
130 | } | ||
131 | |||
101 | impl Module { | 132 | impl Module { |
102 | /// Name of this module. | 133 | /// Name of this module. |
103 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { | 134 | pub fn name(self, db: &impl HirDatabase) -> Option<Name> { |
104 | self.name_impl(db) | 135 | let def_map = db.crate_def_map(self.krate); |
136 | let parent = def_map[self.module_id].parent?; | ||
137 | def_map[parent].children.iter().find_map(|(name, module_id)| { | ||
138 | if *module_id == self.module_id { | ||
139 | Some(name.clone()) | ||
140 | } else { | ||
141 | None | ||
142 | } | ||
143 | }) | ||
105 | } | 144 | } |
106 | 145 | ||
107 | /// Returns a node which defines this module. That is, a file or a `mod foo {}` with items. | 146 | /// Returns a node which defines this module. That is, a file or a `mod foo {}` with items. |
108 | pub fn definition_source(&self, db: &impl DefDatabase) -> (HirFileId, ModuleSource) { | 147 | pub fn definition_source(self, db: &impl DefDatabase) -> (HirFileId, ModuleSource) { |
109 | self.definition_source_impl(db) | 148 | let def_map = db.crate_def_map(self.krate); |
149 | let decl_id = def_map[self.module_id].declaration; | ||
150 | let file_id = def_map[self.module_id].definition; | ||
151 | let module_source = ModuleSource::new(db, file_id, decl_id); | ||
152 | let file_id = file_id.map(HirFileId::from).unwrap_or_else(|| decl_id.unwrap().file_id()); | ||
153 | (file_id, module_source) | ||
110 | } | 154 | } |
111 | 155 | ||
112 | /// Returns a node which declares this module, either a `mod foo;` or a `mod foo {}`. | 156 | /// Returns a node which declares this module, either a `mod foo;` or a `mod foo {}`. |
113 | /// `None` for the crate root. | 157 | /// `None` for the crate root. |
114 | pub fn declaration_source( | 158 | pub fn declaration_source( |
115 | &self, | 159 | self, |
116 | db: &impl HirDatabase, | 160 | db: &impl HirDatabase, |
117 | ) -> Option<(HirFileId, TreeArc<ast::Module>)> { | 161 | ) -> Option<(HirFileId, TreeArc<ast::Module>)> { |
118 | self.declaration_source_impl(db) | 162 | let def_map = db.crate_def_map(self.krate); |
163 | let decl = def_map[self.module_id].declaration?; | ||
164 | let ast = decl.to_node(db); | ||
165 | Some((decl.file_id(), ast)) | ||
119 | } | 166 | } |
120 | 167 | ||
121 | /// Returns the syntax of the last path segment corresponding to this import | 168 | /// Returns the syntax of the last path segment corresponding to this import |
122 | pub fn import_source( | 169 | pub fn import_source( |
123 | &self, | 170 | self, |
124 | db: &impl HirDatabase, | 171 | db: &impl HirDatabase, |
125 | import: ImportId, | 172 | import: ImportId, |
126 | ) -> Either<TreeArc<ast::UseTree>, TreeArc<ast::ExternCrateItem>> { | 173 | ) -> Either<TreeArc<ast::UseTree>, TreeArc<ast::ExternCrateItem>> { |
@@ -130,33 +177,44 @@ impl Module { | |||
130 | } | 177 | } |
131 | 178 | ||
132 | /// Returns the crate this module is part of. | 179 | /// Returns the crate this module is part of. |
133 | pub fn krate(&self, _db: &impl DefDatabase) -> Option<Crate> { | 180 | pub fn krate(self, _db: &impl DefDatabase) -> Option<Crate> { |
134 | Some(self.krate) | 181 | Some(self.krate) |
135 | } | 182 | } |
136 | 183 | ||
137 | /// Topmost parent of this module. Every module has a `crate_root`, but some | 184 | /// Topmost parent of this module. Every module has a `crate_root`, but some |
138 | /// might be missing `krate`. This can happen if a module's file is not included | 185 | /// might be missing `krate`. This can happen if a module's file is not included |
139 | /// in the module tree of any target in `Cargo.toml`. | 186 | /// in the module tree of any target in `Cargo.toml`. |
140 | pub fn crate_root(&self, db: &impl DefDatabase) -> Module { | 187 | pub fn crate_root(self, db: &impl DefDatabase) -> Module { |
141 | self.crate_root_impl(db) | 188 | let def_map = db.crate_def_map(self.krate); |
189 | self.with_module_id(def_map.root()) | ||
142 | } | 190 | } |
143 | 191 | ||
144 | /// Finds a child module with the specified name. | 192 | /// Finds a child module with the specified name. |
145 | pub fn child(&self, db: &impl HirDatabase, name: &Name) -> Option<Module> { | 193 | pub fn child(self, db: &impl HirDatabase, name: &Name) -> Option<Module> { |
146 | self.child_impl(db, name) | 194 | let def_map = db.crate_def_map(self.krate); |
195 | let child_id = def_map[self.module_id].children.get(name)?; | ||
196 | Some(self.with_module_id(*child_id)) | ||
147 | } | 197 | } |
148 | 198 | ||
149 | /// Iterates over all child modules. | 199 | /// Iterates over all child modules. |
150 | pub fn children(&self, db: &impl DefDatabase) -> impl Iterator<Item = Module> { | 200 | pub fn children(self, db: &impl DefDatabase) -> impl Iterator<Item = Module> { |
151 | self.children_impl(db) | 201 | let def_map = db.crate_def_map(self.krate); |
202 | let children = def_map[self.module_id] | ||
203 | .children | ||
204 | .iter() | ||
205 | .map(|(_, module_id)| self.with_module_id(*module_id)) | ||
206 | .collect::<Vec<_>>(); | ||
207 | children.into_iter() | ||
152 | } | 208 | } |
153 | 209 | ||
154 | /// Finds a parent module. | 210 | /// Finds a parent module. |
155 | pub fn parent(&self, db: &impl DefDatabase) -> Option<Module> { | 211 | pub fn parent(self, db: &impl DefDatabase) -> Option<Module> { |
156 | self.parent_impl(db) | 212 | let def_map = db.crate_def_map(self.krate); |
213 | let parent_id = def_map[self.module_id].parent?; | ||
214 | Some(self.with_module_id(parent_id)) | ||
157 | } | 215 | } |
158 | 216 | ||
159 | pub fn path_to_root(&self, db: &impl HirDatabase) -> Vec<Module> { | 217 | pub fn path_to_root(self, db: &impl HirDatabase) -> Vec<Module> { |
160 | let mut res = vec![self.clone()]; | 218 | let mut res = vec![self.clone()]; |
161 | let mut curr = self.clone(); | 219 | let mut curr = self.clone(); |
162 | while let Some(next) = curr.parent(db) { | 220 | while let Some(next) = curr.parent(db) { |
@@ -167,11 +225,11 @@ impl Module { | |||
167 | } | 225 | } |
168 | 226 | ||
169 | /// Returns a `ModuleScope`: a set of items, visible in this module. | 227 | /// Returns a `ModuleScope`: a set of items, visible in this module. |
170 | pub fn scope(&self, db: &impl HirDatabase) -> ModuleScope { | 228 | pub fn scope(self, db: &impl HirDatabase) -> ModuleScope { |
171 | db.crate_def_map(self.krate)[self.module_id].scope.clone() | 229 | db.crate_def_map(self.krate)[self.module_id].scope.clone() |
172 | } | 230 | } |
173 | 231 | ||
174 | pub fn diagnostics(&self, db: &impl HirDatabase, sink: &mut DiagnosticSink) { | 232 | pub fn diagnostics(self, db: &impl HirDatabase, sink: &mut DiagnosticSink) { |
175 | db.crate_def_map(self.krate).add_diagnostics(db, self.module_id, sink); | 233 | db.crate_def_map(self.krate).add_diagnostics(db, self.module_id, sink); |
176 | for decl in self.declarations(db) { | 234 | for decl in self.declarations(db) { |
177 | match decl { | 235 | match decl { |
@@ -191,7 +249,7 @@ impl Module { | |||
191 | } | 249 | } |
192 | } | 250 | } |
193 | 251 | ||
194 | pub(crate) fn resolver(&self, db: &impl DefDatabase) -> Resolver { | 252 | pub(crate) fn resolver(self, db: &impl DefDatabase) -> Resolver { |
195 | let def_map = db.crate_def_map(self.krate); | 253 | let def_map = db.crate_def_map(self.krate); |
196 | Resolver::default().push_module_scope(def_map, self.module_id) | 254 | Resolver::default().push_module_scope(def_map, self.module_id) |
197 | } | 255 | } |
@@ -216,6 +274,10 @@ impl Module { | |||
216 | .map(|(impl_id, _)| ImplBlock::from_id(self, impl_id)) | 274 | .map(|(impl_id, _)| ImplBlock::from_id(self, impl_id)) |
217 | .collect() | 275 | .collect() |
218 | } | 276 | } |
277 | |||
278 | fn with_module_id(&self, module_id: CrateModuleId) -> Module { | ||
279 | Module { module_id, krate: self.krate } | ||
280 | } | ||
219 | } | 281 | } |
220 | 282 | ||
221 | impl Docs for Module { | 283 | impl Docs for Module { |
@@ -269,49 +331,49 @@ pub struct Struct { | |||
269 | } | 331 | } |
270 | 332 | ||
271 | impl Struct { | 333 | impl Struct { |
272 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { | 334 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { |
273 | self.id.source(db) | 335 | self.id.source(db) |
274 | } | 336 | } |
275 | 337 | ||
276 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 338 | pub fn module(self, db: &impl HirDatabase) -> Module { |
277 | self.id.module(db) | 339 | self.id.module(db) |
278 | } | 340 | } |
279 | 341 | ||
280 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { | 342 | pub fn name(self, db: &impl HirDatabase) -> Option<Name> { |
281 | db.struct_data(*self).name.clone() | 343 | db.struct_data(self).name.clone() |
282 | } | 344 | } |
283 | 345 | ||
284 | pub fn fields(&self, db: &impl HirDatabase) -> Vec<StructField> { | 346 | pub fn fields(self, db: &impl HirDatabase) -> Vec<StructField> { |
285 | db.struct_data(*self) | 347 | db.struct_data(self) |
286 | .variant_data | 348 | .variant_data |
287 | .fields() | 349 | .fields() |
288 | .into_iter() | 350 | .into_iter() |
289 | .flat_map(|it| it.iter()) | 351 | .flat_map(|it| it.iter()) |
290 | .map(|(id, _)| StructField { parent: (*self).into(), id }) | 352 | .map(|(id, _)| StructField { parent: self.into(), id }) |
291 | .collect() | 353 | .collect() |
292 | } | 354 | } |
293 | 355 | ||
294 | pub fn field(&self, db: &impl HirDatabase, name: &Name) -> Option<StructField> { | 356 | pub fn field(self, db: &impl HirDatabase, name: &Name) -> Option<StructField> { |
295 | db.struct_data(*self) | 357 | db.struct_data(self) |
296 | .variant_data | 358 | .variant_data |
297 | .fields() | 359 | .fields() |
298 | .into_iter() | 360 | .into_iter() |
299 | .flat_map(|it| it.iter()) | 361 | .flat_map(|it| it.iter()) |
300 | .find(|(_id, data)| data.name == *name) | 362 | .find(|(_id, data)| data.name == *name) |
301 | .map(|(id, _)| StructField { parent: (*self).into(), id }) | 363 | .map(|(id, _)| StructField { parent: self.into(), id }) |
302 | } | 364 | } |
303 | 365 | ||
304 | pub fn ty(&self, db: &impl HirDatabase) -> Ty { | 366 | pub fn ty(self, db: &impl HirDatabase) -> Ty { |
305 | db.type_for_def((*self).into(), Namespace::Types) | 367 | db.type_for_def(self.into(), Namespace::Types) |
306 | } | 368 | } |
307 | 369 | ||
308 | pub fn constructor_ty(&self, db: &impl HirDatabase) -> Ty { | 370 | pub fn constructor_ty(self, db: &impl HirDatabase) -> Ty { |
309 | db.type_for_def((*self).into(), Namespace::Values) | 371 | db.type_for_def(self.into(), Namespace::Values) |
310 | } | 372 | } |
311 | 373 | ||
312 | // FIXME move to a more general type | 374 | // FIXME move to a more general type |
313 | /// Builds a resolver for type references inside this struct. | 375 | /// Builds a resolver for type references inside this struct. |
314 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 376 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
315 | // take the outer scope... | 377 | // take the outer scope... |
316 | let r = self.module(db).resolver(db); | 378 | let r = self.module(db).resolver(db); |
317 | // ...and add generic params, if present | 379 | // ...and add generic params, if present |
@@ -333,21 +395,21 @@ pub struct Union { | |||
333 | } | 395 | } |
334 | 396 | ||
335 | impl Union { | 397 | impl Union { |
336 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { | 398 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::StructDef>) { |
337 | self.id.source(db) | 399 | self.id.source(db) |
338 | } | 400 | } |
339 | 401 | ||
340 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { | 402 | pub fn name(self, db: &impl HirDatabase) -> Option<Name> { |
341 | db.struct_data(Struct { id: self.id }).name.clone() | 403 | db.struct_data(Struct { id: self.id }).name.clone() |
342 | } | 404 | } |
343 | 405 | ||
344 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 406 | pub fn module(self, db: &impl HirDatabase) -> Module { |
345 | self.id.module(db) | 407 | self.id.module(db) |
346 | } | 408 | } |
347 | 409 | ||
348 | // FIXME move to a more general type | 410 | // FIXME move to a more general type |
349 | /// Builds a resolver for type references inside this union. | 411 | /// Builds a resolver for type references inside this union. |
350 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 412 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
351 | // take the outer scope... | 413 | // take the outer scope... |
352 | let r = self.module(db).resolver(db); | 414 | let r = self.module(db).resolver(db); |
353 | // ...and add generic params, if present | 415 | // ...and add generic params, if present |
@@ -369,41 +431,37 @@ pub struct Enum { | |||
369 | } | 431 | } |
370 | 432 | ||
371 | impl Enum { | 433 | impl Enum { |
372 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::EnumDef>) { | 434 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::EnumDef>) { |
373 | self.id.source(db) | 435 | self.id.source(db) |
374 | } | 436 | } |
375 | 437 | ||
376 | pub fn module(&self, db: &impl HirDatabase) -> Module { | 438 | pub fn module(self, db: &impl HirDatabase) -> Module { |
377 | self.id.module(db) | 439 | self.id.module(db) |
378 | } | 440 | } |
379 | 441 | ||
380 | pub fn name(&self, db: &impl HirDatabase) -> Option<Name> { | 442 | pub fn name(self, db: &impl HirDatabase) -> Option<Name> { |
381 | db.enum_data(*self).name.clone() | 443 | db.enum_data(self).name.clone() |
382 | } | 444 | } |
383 | 445 | ||
384 | pub fn variants(&self, db: &impl DefDatabase) -> Vec<EnumVariant> { | 446 | pub fn variants(self, db: &impl DefDatabase) -> Vec<EnumVariant> { |
385 | db.enum_data(*self) | 447 | db.enum_data(self).variants.iter().map(|(id, _)| EnumVariant { parent: self, id }).collect() |
386 | .variants | ||
387 | .iter() | ||
388 | .map(|(id, _)| EnumVariant { parent: *self, id }) | ||
389 | .collect() | ||
390 | } | 448 | } |
391 | 449 | ||
392 | pub fn variant(&self, db: &impl DefDatabase, name: &Name) -> Option<EnumVariant> { | 450 | pub fn variant(self, db: &impl DefDatabase, name: &Name) -> Option<EnumVariant> { |
393 | db.enum_data(*self) | 451 | db.enum_data(self) |
394 | .variants | 452 | .variants |
395 | .iter() | 453 | .iter() |
396 | .find(|(_id, data)| data.name.as_ref() == Some(name)) | 454 | .find(|(_id, data)| data.name.as_ref() == Some(name)) |
397 | .map(|(id, _)| EnumVariant { parent: *self, id }) | 455 | .map(|(id, _)| EnumVariant { parent: self, id }) |
398 | } | 456 | } |
399 | 457 | ||
400 | pub fn ty(&self, db: &impl HirDatabase) -> Ty { | 458 | pub fn ty(self, db: &impl HirDatabase) -> Ty { |
401 | db.type_for_def((*self).into(), Namespace::Types) | 459 | db.type_for_def(self.into(), Namespace::Types) |
402 | } | 460 | } |
403 | 461 | ||
404 | // FIXME: move to a more general type | 462 | // FIXME: move to a more general type |
405 | /// Builds a resolver for type references inside this struct. | 463 | /// Builds a resolver for type references inside this struct. |
406 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 464 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
407 | // take the outer scope... | 465 | // take the outer scope... |
408 | let r = self.module(db).resolver(db); | 466 | let r = self.module(db).resolver(db); |
409 | // ...and add generic params, if present | 467 | // ...and add generic params, if present |
@@ -476,16 +534,16 @@ pub enum DefWithBody { | |||
476 | impl_froms!(DefWithBody: Function, Const, Static); | 534 | impl_froms!(DefWithBody: Function, Const, Static); |
477 | 535 | ||
478 | impl DefWithBody { | 536 | impl DefWithBody { |
479 | pub fn infer(&self, db: &impl HirDatabase) -> Arc<InferenceResult> { | 537 | pub fn infer(self, db: &impl HirDatabase) -> Arc<InferenceResult> { |
480 | db.infer(*self) | 538 | db.infer(self) |
481 | } | 539 | } |
482 | 540 | ||
483 | pub fn body(&self, db: &impl HirDatabase) -> Arc<Body> { | 541 | pub fn body(self, db: &impl HirDatabase) -> Arc<Body> { |
484 | db.body_hir(*self) | 542 | db.body_hir(self) |
485 | } | 543 | } |
486 | 544 | ||
487 | pub fn body_source_map(&self, db: &impl HirDatabase) -> Arc<BodySourceMap> { | 545 | pub fn body_source_map(self, db: &impl HirDatabase) -> Arc<BodySourceMap> { |
488 | db.body_with_source_map(*self).1 | 546 | db.body_with_source_map(self).1 |
489 | } | 547 | } |
490 | 548 | ||
491 | /// Builds a resolver for code inside this item. | 549 | /// Builds a resolver for code inside this item. |
@@ -515,6 +573,44 @@ pub struct FnSignature { | |||
515 | } | 573 | } |
516 | 574 | ||
517 | impl FnSignature { | 575 | impl FnSignature { |
576 | pub(crate) fn fn_signature_query(db: &impl DefDatabase, func: Function) -> Arc<FnSignature> { | ||
577 | let (_, node) = func.source(db); | ||
578 | let name = node.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); | ||
579 | let mut params = Vec::new(); | ||
580 | let mut has_self_param = false; | ||
581 | if let Some(param_list) = node.param_list() { | ||
582 | if let Some(self_param) = param_list.self_param() { | ||
583 | let self_type = if let Some(type_ref) = self_param.ascribed_type() { | ||
584 | TypeRef::from_ast(type_ref) | ||
585 | } else { | ||
586 | let self_type = TypeRef::Path(Name::self_type().into()); | ||
587 | match self_param.kind() { | ||
588 | ast::SelfParamKind::Owned => self_type, | ||
589 | ast::SelfParamKind::Ref => { | ||
590 | TypeRef::Reference(Box::new(self_type), Mutability::Shared) | ||
591 | } | ||
592 | ast::SelfParamKind::MutRef => { | ||
593 | TypeRef::Reference(Box::new(self_type), Mutability::Mut) | ||
594 | } | ||
595 | } | ||
596 | }; | ||
597 | params.push(self_type); | ||
598 | has_self_param = true; | ||
599 | } | ||
600 | for param in param_list.params() { | ||
601 | let type_ref = TypeRef::from_ast_opt(param.ascribed_type()); | ||
602 | params.push(type_ref); | ||
603 | } | ||
604 | } | ||
605 | let ret_type = if let Some(type_ref) = node.ret_type().and_then(|rt| rt.type_ref()) { | ||
606 | TypeRef::from_ast(type_ref) | ||
607 | } else { | ||
608 | TypeRef::unit() | ||
609 | }; | ||
610 | |||
611 | let sig = FnSignature { name, params, ret_type, has_self_param }; | ||
612 | Arc::new(sig) | ||
613 | } | ||
518 | pub fn name(&self) -> &Name { | 614 | pub fn name(&self) -> &Name { |
519 | &self.name | 615 | &self.name |
520 | } | 616 | } |
@@ -535,50 +631,50 @@ impl FnSignature { | |||
535 | } | 631 | } |
536 | 632 | ||
537 | impl Function { | 633 | impl Function { |
538 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::FnDef>) { | 634 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::FnDef>) { |
539 | self.id.source(db) | 635 | self.id.source(db) |
540 | } | 636 | } |
541 | 637 | ||
542 | pub fn module(&self, db: &impl DefDatabase) -> Module { | 638 | pub fn module(self, db: &impl DefDatabase) -> Module { |
543 | self.id.module(db) | 639 | self.id.module(db) |
544 | } | 640 | } |
545 | 641 | ||
546 | pub fn name(&self, db: &impl HirDatabase) -> Name { | 642 | pub fn name(self, db: &impl HirDatabase) -> Name { |
547 | self.signature(db).name.clone() | 643 | self.signature(db).name.clone() |
548 | } | 644 | } |
549 | 645 | ||
550 | pub(crate) fn body_source_map(&self, db: &impl HirDatabase) -> Arc<BodySourceMap> { | 646 | pub(crate) fn body_source_map(self, db: &impl HirDatabase) -> Arc<BodySourceMap> { |
551 | db.body_with_source_map((*self).into()).1 | 647 | db.body_with_source_map(self.into()).1 |
552 | } | 648 | } |
553 | 649 | ||
554 | pub fn body(&self, db: &impl HirDatabase) -> Arc<Body> { | 650 | pub fn body(self, db: &impl HirDatabase) -> Arc<Body> { |
555 | db.body_hir((*self).into()) | 651 | db.body_hir(self.into()) |
556 | } | 652 | } |
557 | 653 | ||
558 | pub fn ty(&self, db: &impl HirDatabase) -> Ty { | 654 | pub fn ty(self, db: &impl HirDatabase) -> Ty { |
559 | db.type_for_def((*self).into(), Namespace::Values) | 655 | db.type_for_def(self.into(), Namespace::Values) |
560 | } | 656 | } |
561 | 657 | ||
562 | pub fn signature(&self, db: &impl HirDatabase) -> Arc<FnSignature> { | 658 | pub fn signature(self, db: &impl HirDatabase) -> Arc<FnSignature> { |
563 | db.fn_signature(*self) | 659 | db.fn_signature(self) |
564 | } | 660 | } |
565 | 661 | ||
566 | pub fn infer(&self, db: &impl HirDatabase) -> Arc<InferenceResult> { | 662 | pub fn infer(self, db: &impl HirDatabase) -> Arc<InferenceResult> { |
567 | db.infer((*self).into()) | 663 | db.infer(self.into()) |
568 | } | 664 | } |
569 | 665 | ||
570 | /// The containing impl block, if this is a method. | 666 | /// The containing impl block, if this is a method. |
571 | pub fn impl_block(&self, db: &impl DefDatabase) -> Option<ImplBlock> { | 667 | pub fn impl_block(self, db: &impl DefDatabase) -> Option<ImplBlock> { |
572 | let module_impls = db.impls_in_module(self.module(db)); | 668 | let module_impls = db.impls_in_module(self.module(db)); |
573 | ImplBlock::containing(module_impls, (*self).into()) | 669 | ImplBlock::containing(module_impls, self.into()) |
574 | } | 670 | } |
575 | 671 | ||
576 | /// The containing trait, if this is a trait method definition. | 672 | /// The containing trait, if this is a trait method definition. |
577 | pub fn parent_trait(&self, db: &impl DefDatabase) -> Option<Trait> { | 673 | pub fn parent_trait(self, db: &impl DefDatabase) -> Option<Trait> { |
578 | db.trait_items_index(self.module(db)).get_parent_trait((*self).into()) | 674 | db.trait_items_index(self.module(db)).get_parent_trait(self.into()) |
579 | } | 675 | } |
580 | 676 | ||
581 | pub fn container(&self, db: &impl DefDatabase) -> Option<Container> { | 677 | pub fn container(self, db: &impl DefDatabase) -> Option<Container> { |
582 | if let Some(impl_block) = self.impl_block(db) { | 678 | if let Some(impl_block) = self.impl_block(db) { |
583 | Some(impl_block.into()) | 679 | Some(impl_block.into()) |
584 | } else if let Some(trait_) = self.parent_trait(db) { | 680 | } else if let Some(trait_) = self.parent_trait(db) { |
@@ -590,7 +686,7 @@ impl Function { | |||
590 | 686 | ||
591 | // FIXME: move to a more general type for 'body-having' items | 687 | // FIXME: move to a more general type for 'body-having' items |
592 | /// Builds a resolver for code inside this item. | 688 | /// Builds a resolver for code inside this item. |
593 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 689 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
594 | // take the outer scope... | 690 | // take the outer scope... |
595 | let r = self.container(db).map_or_else(|| self.module(db).resolver(db), |c| c.resolver(db)); | 691 | let r = self.container(db).map_or_else(|| self.module(db).resolver(db), |c| c.resolver(db)); |
596 | // ...and add generic params, if present | 692 | // ...and add generic params, if present |
@@ -599,10 +695,10 @@ impl Function { | |||
599 | r | 695 | r |
600 | } | 696 | } |
601 | 697 | ||
602 | pub fn diagnostics(&self, db: &impl HirDatabase, sink: &mut DiagnosticSink) { | 698 | pub fn diagnostics(self, db: &impl HirDatabase, sink: &mut DiagnosticSink) { |
603 | let infer = self.infer(db); | 699 | let infer = self.infer(db); |
604 | infer.add_diagnostics(db, *self, sink); | 700 | infer.add_diagnostics(db, self, sink); |
605 | let mut validator = ExprValidator::new(*self, infer, sink); | 701 | let mut validator = ExprValidator::new(self, infer, sink); |
606 | validator.validate_body(db); | 702 | validator.validate_body(db); |
607 | } | 703 | } |
608 | } | 704 | } |
@@ -619,31 +715,31 @@ pub struct Const { | |||
619 | } | 715 | } |
620 | 716 | ||
621 | impl Const { | 717 | impl Const { |
622 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::ConstDef>) { | 718 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::ConstDef>) { |
623 | self.id.source(db) | 719 | self.id.source(db) |
624 | } | 720 | } |
625 | 721 | ||
626 | pub fn module(&self, db: &impl DefDatabase) -> Module { | 722 | pub fn module(self, db: &impl DefDatabase) -> Module { |
627 | self.id.module(db) | 723 | self.id.module(db) |
628 | } | 724 | } |
629 | 725 | ||
630 | pub fn signature(&self, db: &impl HirDatabase) -> Arc<ConstSignature> { | 726 | pub fn signature(self, db: &impl HirDatabase) -> Arc<ConstSignature> { |
631 | db.const_signature(*self) | 727 | db.const_signature(self) |
632 | } | 728 | } |
633 | 729 | ||
634 | pub fn infer(&self, db: &impl HirDatabase) -> Arc<InferenceResult> { | 730 | pub fn infer(self, db: &impl HirDatabase) -> Arc<InferenceResult> { |
635 | db.infer((*self).into()) | 731 | db.infer(self.into()) |
636 | } | 732 | } |
637 | 733 | ||
638 | /// The containing impl block, if this is a method. | 734 | /// The containing impl block, if this is a method. |
639 | pub fn impl_block(&self, db: &impl DefDatabase) -> Option<ImplBlock> { | 735 | pub fn impl_block(self, db: &impl DefDatabase) -> Option<ImplBlock> { |
640 | let module_impls = db.impls_in_module(self.module(db)); | 736 | let module_impls = db.impls_in_module(self.module(db)); |
641 | ImplBlock::containing(module_impls, (*self).into()) | 737 | ImplBlock::containing(module_impls, self.into()) |
642 | } | 738 | } |
643 | 739 | ||
644 | // FIXME: move to a more general type for 'body-having' items | 740 | // FIXME: move to a more general type for 'body-having' items |
645 | /// Builds a resolver for code inside this item. | 741 | /// Builds a resolver for code inside this item. |
646 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 742 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
647 | // take the outer scope... | 743 | // take the outer scope... |
648 | let r = self | 744 | let r = self |
649 | .impl_block(db) | 745 | .impl_block(db) |
@@ -674,6 +770,29 @@ impl ConstSignature { | |||
674 | pub fn type_ref(&self) -> &TypeRef { | 770 | pub fn type_ref(&self) -> &TypeRef { |
675 | &self.type_ref | 771 | &self.type_ref |
676 | } | 772 | } |
773 | |||
774 | pub(crate) fn const_signature_query( | ||
775 | db: &impl DefDatabase, | ||
776 | konst: Const, | ||
777 | ) -> Arc<ConstSignature> { | ||
778 | let (_, node) = konst.source(db); | ||
779 | const_signature_for(&*node) | ||
780 | } | ||
781 | |||
782 | pub(crate) fn static_signature_query( | ||
783 | db: &impl DefDatabase, | ||
784 | konst: Static, | ||
785 | ) -> Arc<ConstSignature> { | ||
786 | let (_, node) = konst.source(db); | ||
787 | const_signature_for(&*node) | ||
788 | } | ||
789 | } | ||
790 | |||
791 | fn const_signature_for<N: NameOwner + TypeAscriptionOwner>(node: &N) -> Arc<ConstSignature> { | ||
792 | let name = node.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); | ||
793 | let type_ref = TypeRef::from_ast_opt(node.ascribed_type()); | ||
794 | let sig = ConstSignature { name, type_ref }; | ||
795 | Arc::new(sig) | ||
677 | } | 796 | } |
678 | 797 | ||
679 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] | 798 | #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] |
@@ -682,26 +801,26 @@ pub struct Static { | |||
682 | } | 801 | } |
683 | 802 | ||
684 | impl Static { | 803 | impl Static { |
685 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::StaticDef>) { | 804 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::StaticDef>) { |
686 | self.id.source(db) | 805 | self.id.source(db) |
687 | } | 806 | } |
688 | 807 | ||
689 | pub fn module(&self, db: &impl DefDatabase) -> Module { | 808 | pub fn module(self, db: &impl DefDatabase) -> Module { |
690 | self.id.module(db) | 809 | self.id.module(db) |
691 | } | 810 | } |
692 | 811 | ||
693 | pub fn signature(&self, db: &impl HirDatabase) -> Arc<ConstSignature> { | 812 | pub fn signature(self, db: &impl HirDatabase) -> Arc<ConstSignature> { |
694 | db.static_signature(*self) | 813 | db.static_signature(self) |
695 | } | 814 | } |
696 | 815 | ||
697 | /// Builds a resolver for code inside this item. | 816 | /// Builds a resolver for code inside this item. |
698 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 817 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
699 | // take the outer scope... | 818 | // take the outer scope... |
700 | self.module(db).resolver(db) | 819 | self.module(db).resolver(db) |
701 | } | 820 | } |
702 | 821 | ||
703 | pub fn infer(&self, db: &impl HirDatabase) -> Arc<InferenceResult> { | 822 | pub fn infer(self, db: &impl HirDatabase) -> Arc<InferenceResult> { |
704 | db.infer((*self).into()) | 823 | db.infer(self.into()) |
705 | } | 824 | } |
706 | } | 825 | } |
707 | 826 | ||
@@ -717,11 +836,11 @@ pub struct Trait { | |||
717 | } | 836 | } |
718 | 837 | ||
719 | impl Trait { | 838 | impl Trait { |
720 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::TraitDef>) { | 839 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::TraitDef>) { |
721 | self.id.source(db) | 840 | self.id.source(db) |
722 | } | 841 | } |
723 | 842 | ||
724 | pub fn module(&self, db: &impl DefDatabase) -> Module { | 843 | pub fn module(self, db: &impl DefDatabase) -> Module { |
725 | self.id.module(db) | 844 | self.id.module(db) |
726 | } | 845 | } |
727 | 846 | ||
@@ -745,7 +864,7 @@ impl Trait { | |||
745 | self.trait_data(db).is_auto() | 864 | self.trait_data(db).is_auto() |
746 | } | 865 | } |
747 | 866 | ||
748 | pub(crate) fn resolver(&self, db: &impl DefDatabase) -> Resolver { | 867 | pub(crate) fn resolver(self, db: &impl DefDatabase) -> Resolver { |
749 | let r = self.module(db).resolver(db); | 868 | let r = self.module(db).resolver(db); |
750 | // add generic params, if present | 869 | // add generic params, if present |
751 | let p = self.generic_params(db); | 870 | let p = self.generic_params(db); |
@@ -766,26 +885,26 @@ pub struct TypeAlias { | |||
766 | } | 885 | } |
767 | 886 | ||
768 | impl TypeAlias { | 887 | impl TypeAlias { |
769 | pub fn source(&self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::TypeAliasDef>) { | 888 | pub fn source(self, db: &impl DefDatabase) -> (HirFileId, TreeArc<ast::TypeAliasDef>) { |
770 | self.id.source(db) | 889 | self.id.source(db) |
771 | } | 890 | } |
772 | 891 | ||
773 | pub fn module(&self, db: &impl DefDatabase) -> Module { | 892 | pub fn module(self, db: &impl DefDatabase) -> Module { |
774 | self.id.module(db) | 893 | self.id.module(db) |
775 | } | 894 | } |
776 | 895 | ||
777 | /// The containing impl block, if this is a method. | 896 | /// The containing impl block, if this is a method. |
778 | pub fn impl_block(&self, db: &impl DefDatabase) -> Option<ImplBlock> { | 897 | pub fn impl_block(self, db: &impl DefDatabase) -> Option<ImplBlock> { |
779 | let module_impls = db.impls_in_module(self.module(db)); | 898 | let module_impls = db.impls_in_module(self.module(db)); |
780 | ImplBlock::containing(module_impls, (*self).into()) | 899 | ImplBlock::containing(module_impls, self.into()) |
781 | } | 900 | } |
782 | 901 | ||
783 | /// The containing trait, if this is a trait method definition. | 902 | /// The containing trait, if this is a trait method definition. |
784 | pub fn parent_trait(&self, db: &impl DefDatabase) -> Option<Trait> { | 903 | pub fn parent_trait(self, db: &impl DefDatabase) -> Option<Trait> { |
785 | db.trait_items_index(self.module(db)).get_parent_trait((*self).into()) | 904 | db.trait_items_index(self.module(db)).get_parent_trait(self.into()) |
786 | } | 905 | } |
787 | 906 | ||
788 | pub fn container(&self, db: &impl DefDatabase) -> Option<Container> { | 907 | pub fn container(self, db: &impl DefDatabase) -> Option<Container> { |
789 | if let Some(impl_block) = self.impl_block(db) { | 908 | if let Some(impl_block) = self.impl_block(db) { |
790 | Some(impl_block.into()) | 909 | Some(impl_block.into()) |
791 | } else if let Some(trait_) = self.parent_trait(db) { | 910 | } else if let Some(trait_) = self.parent_trait(db) { |
@@ -800,7 +919,7 @@ impl TypeAlias { | |||
800 | } | 919 | } |
801 | 920 | ||
802 | /// Builds a resolver for the type references in this type alias. | 921 | /// Builds a resolver for the type references in this type alias. |
803 | pub(crate) fn resolver(&self, db: &impl HirDatabase) -> Resolver { | 922 | pub(crate) fn resolver(self, db: &impl HirDatabase) -> Resolver { |
804 | // take the outer scope... | 923 | // take the outer scope... |
805 | let r = self | 924 | let r = self |
806 | .impl_block(db) | 925 | .impl_block(db) |
@@ -826,7 +945,7 @@ pub enum Container { | |||
826 | impl_froms!(Container: Trait, ImplBlock); | 945 | impl_froms!(Container: Trait, ImplBlock); |
827 | 946 | ||
828 | impl Container { | 947 | impl Container { |
829 | pub(crate) fn resolver(&self, db: &impl DefDatabase) -> Resolver { | 948 | pub(crate) fn resolver(self, db: &impl DefDatabase) -> Resolver { |
830 | match self { | 949 | match self { |
831 | Container::Trait(trait_) => trait_.resolver(db), | 950 | Container::Trait(trait_) => trait_.resolver(db), |
832 | Container::ImplBlock(impl_block) => impl_block.resolver(db), | 951 | Container::ImplBlock(impl_block) => impl_block.resolver(db), |
diff --git a/crates/ra_hir/src/code_model_impl.rs b/crates/ra_hir/src/code_model_impl.rs deleted file mode 100644 index 24df9a113..000000000 --- a/crates/ra_hir/src/code_model_impl.rs +++ /dev/null | |||
@@ -1,4 +0,0 @@ | |||
1 | mod krate; // `crate` is invalid ident :( | ||
2 | mod konst; // `const` is invalid ident :( | ||
3 | mod module; | ||
4 | pub(crate) mod function; | ||
diff --git a/crates/ra_hir/src/code_model_impl/function.rs b/crates/ra_hir/src/code_model_impl/function.rs deleted file mode 100644 index f8bd0f784..000000000 --- a/crates/ra_hir/src/code_model_impl/function.rs +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
1 | use std::sync::Arc; | ||
2 | |||
3 | use ra_syntax::ast::{self, NameOwner, TypeAscriptionOwner}; | ||
4 | |||
5 | use crate::{ | ||
6 | Name, AsName, Function, FnSignature, | ||
7 | type_ref::{TypeRef, Mutability}, | ||
8 | DefDatabase, | ||
9 | }; | ||
10 | |||
11 | impl FnSignature { | ||
12 | pub(crate) fn fn_signature_query(db: &impl DefDatabase, func: Function) -> Arc<FnSignature> { | ||
13 | let (_, node) = func.source(db); | ||
14 | let name = node.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); | ||
15 | let mut params = Vec::new(); | ||
16 | let mut has_self_param = false; | ||
17 | if let Some(param_list) = node.param_list() { | ||
18 | if let Some(self_param) = param_list.self_param() { | ||
19 | let self_type = if let Some(type_ref) = self_param.ascribed_type() { | ||
20 | TypeRef::from_ast(type_ref) | ||
21 | } else { | ||
22 | let self_type = TypeRef::Path(Name::self_type().into()); | ||
23 | match self_param.kind() { | ||
24 | ast::SelfParamKind::Owned => self_type, | ||
25 | ast::SelfParamKind::Ref => { | ||
26 | TypeRef::Reference(Box::new(self_type), Mutability::Shared) | ||
27 | } | ||
28 | ast::SelfParamKind::MutRef => { | ||
29 | TypeRef::Reference(Box::new(self_type), Mutability::Mut) | ||
30 | } | ||
31 | } | ||
32 | }; | ||
33 | params.push(self_type); | ||
34 | has_self_param = true; | ||
35 | } | ||
36 | for param in param_list.params() { | ||
37 | let type_ref = TypeRef::from_ast_opt(param.ascribed_type()); | ||
38 | params.push(type_ref); | ||
39 | } | ||
40 | } | ||
41 | let ret_type = if let Some(type_ref) = node.ret_type().and_then(|rt| rt.type_ref()) { | ||
42 | TypeRef::from_ast(type_ref) | ||
43 | } else { | ||
44 | TypeRef::unit() | ||
45 | }; | ||
46 | |||
47 | let sig = FnSignature { name, params, ret_type, has_self_param }; | ||
48 | Arc::new(sig) | ||
49 | } | ||
50 | } | ||
diff --git a/crates/ra_hir/src/code_model_impl/konst.rs b/crates/ra_hir/src/code_model_impl/konst.rs deleted file mode 100644 index db4e5ce5c..000000000 --- a/crates/ra_hir/src/code_model_impl/konst.rs +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | use std::sync::Arc; | ||
2 | |||
3 | use ra_syntax::ast::{NameOwner, TypeAscriptionOwner}; | ||
4 | |||
5 | use crate::{ | ||
6 | Name, AsName, Const, ConstSignature, Static, | ||
7 | type_ref::{TypeRef}, | ||
8 | DefDatabase, | ||
9 | }; | ||
10 | |||
11 | fn const_signature_for<N: NameOwner + TypeAscriptionOwner>(node: &N) -> Arc<ConstSignature> { | ||
12 | let name = node.name().map(|n| n.as_name()).unwrap_or_else(Name::missing); | ||
13 | let type_ref = TypeRef::from_ast_opt(node.ascribed_type()); | ||
14 | let sig = ConstSignature { name, type_ref }; | ||
15 | Arc::new(sig) | ||
16 | } | ||
17 | |||
18 | impl ConstSignature { | ||
19 | pub(crate) fn const_signature_query( | ||
20 | db: &impl DefDatabase, | ||
21 | konst: Const, | ||
22 | ) -> Arc<ConstSignature> { | ||
23 | let (_, node) = konst.source(db); | ||
24 | const_signature_for(&*node) | ||
25 | } | ||
26 | |||
27 | pub(crate) fn static_signature_query( | ||
28 | db: &impl DefDatabase, | ||
29 | konst: Static, | ||
30 | ) -> Arc<ConstSignature> { | ||
31 | let (_, node) = konst.source(db); | ||
32 | const_signature_for(&*node) | ||
33 | } | ||
34 | } | ||
diff --git a/crates/ra_hir/src/code_model_impl/krate.rs b/crates/ra_hir/src/code_model_impl/krate.rs deleted file mode 100644 index 914414fc3..000000000 --- a/crates/ra_hir/src/code_model_impl/krate.rs +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
1 | use crate::{ | ||
2 | Crate, CrateDependency, AsName, Module, DefDatabase, | ||
3 | }; | ||
4 | |||
5 | impl Crate { | ||
6 | pub(crate) fn dependencies_impl(&self, db: &impl DefDatabase) -> Vec<CrateDependency> { | ||
7 | let crate_graph = db.crate_graph(); | ||
8 | crate_graph | ||
9 | .dependencies(self.crate_id) | ||
10 | .map(|dep| { | ||
11 | let krate = Crate { crate_id: dep.crate_id() }; | ||
12 | let name = dep.as_name(); | ||
13 | CrateDependency { krate, name } | ||
14 | }) | ||
15 | .collect() | ||
16 | } | ||
17 | pub(crate) fn root_module_impl(&self, db: &impl DefDatabase) -> Option<Module> { | ||
18 | let module_id = db.crate_def_map(*self).root(); | ||
19 | let module = Module { krate: *self, module_id }; | ||
20 | Some(module) | ||
21 | } | ||
22 | } | ||
diff --git a/crates/ra_hir/src/code_model_impl/module.rs b/crates/ra_hir/src/code_model_impl/module.rs deleted file mode 100644 index 5c2ea73ce..000000000 --- a/crates/ra_hir/src/code_model_impl/module.rs +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
1 | use ra_db::FileId; | ||
2 | use ra_syntax::{ast, TreeArc}; | ||
3 | |||
4 | use crate::{ | ||
5 | Module, ModuleSource, Name, AstId, | ||
6 | nameres::CrateModuleId, | ||
7 | HirDatabase, DefDatabase, | ||
8 | HirFileId, | ||
9 | }; | ||
10 | |||
11 | impl ModuleSource { | ||
12 | pub(crate) fn new( | ||
13 | db: &impl DefDatabase, | ||
14 | file_id: Option<FileId>, | ||
15 | decl_id: Option<AstId<ast::Module>>, | ||
16 | ) -> ModuleSource { | ||
17 | match (file_id, decl_id) { | ||
18 | (Some(file_id), _) => { | ||
19 | let source_file = db.parse(file_id); | ||
20 | ModuleSource::SourceFile(source_file) | ||
21 | } | ||
22 | (None, Some(item_id)) => { | ||
23 | let module = item_id.to_node(db); | ||
24 | assert!(module.item_list().is_some(), "expected inline module"); | ||
25 | ModuleSource::Module(module.to_owned()) | ||
26 | } | ||
27 | (None, None) => panic!(), | ||
28 | } | ||
29 | } | ||
30 | } | ||
31 | |||
32 | impl Module { | ||
33 | fn with_module_id(&self, module_id: CrateModuleId) -> Module { | ||
34 | Module { module_id, krate: self.krate } | ||
35 | } | ||
36 | |||
37 | pub(crate) fn name_impl(&self, db: &impl HirDatabase) -> Option<Name> { | ||
38 | let def_map = db.crate_def_map(self.krate); | ||
39 | let parent = def_map[self.module_id].parent?; | ||
40 | def_map[parent].children.iter().find_map(|(name, module_id)| { | ||
41 | if *module_id == self.module_id { | ||
42 | Some(name.clone()) | ||
43 | } else { | ||
44 | None | ||
45 | } | ||
46 | }) | ||
47 | } | ||
48 | |||
49 | pub(crate) fn definition_source_impl( | ||
50 | &self, | ||
51 | db: &impl DefDatabase, | ||
52 | ) -> (HirFileId, ModuleSource) { | ||
53 | let def_map = db.crate_def_map(self.krate); | ||
54 | let decl_id = def_map[self.module_id].declaration; | ||
55 | let file_id = def_map[self.module_id].definition; | ||
56 | let module_source = ModuleSource::new(db, file_id, decl_id); | ||
57 | let file_id = file_id.map(HirFileId::from).unwrap_or_else(|| decl_id.unwrap().file_id()); | ||
58 | (file_id, module_source) | ||
59 | } | ||
60 | |||
61 | pub(crate) fn declaration_source_impl( | ||
62 | &self, | ||
63 | db: &impl HirDatabase, | ||
64 | ) -> Option<(HirFileId, TreeArc<ast::Module>)> { | ||
65 | let def_map = db.crate_def_map(self.krate); | ||
66 | let decl = def_map[self.module_id].declaration?; | ||
67 | let ast = decl.to_node(db); | ||
68 | Some((decl.file_id(), ast)) | ||
69 | } | ||
70 | |||
71 | pub(crate) fn crate_root_impl(&self, db: &impl DefDatabase) -> Module { | ||
72 | let def_map = db.crate_def_map(self.krate); | ||
73 | self.with_module_id(def_map.root()) | ||
74 | } | ||
75 | |||
76 | /// Finds a child module with the specified name. | ||
77 | pub(crate) fn child_impl(&self, db: &impl HirDatabase, name: &Name) -> Option<Module> { | ||
78 | let def_map = db.crate_def_map(self.krate); | ||
79 | let child_id = def_map[self.module_id].children.get(name)?; | ||
80 | Some(self.with_module_id(*child_id)) | ||
81 | } | ||
82 | |||
83 | /// Iterates over all child modules. | ||
84 | pub(crate) fn children_impl(&self, db: &impl DefDatabase) -> impl Iterator<Item = Module> { | ||
85 | let def_map = db.crate_def_map(self.krate); | ||
86 | let children = def_map[self.module_id] | ||
87 | .children | ||
88 | .iter() | ||
89 | .map(|(_, module_id)| self.with_module_id(*module_id)) | ||
90 | .collect::<Vec<_>>(); | ||
91 | children.into_iter() | ||
92 | } | ||
93 | |||
94 | pub(crate) fn parent_impl(&self, db: &impl DefDatabase) -> Option<Module> { | ||
95 | let def_map = db.crate_def_map(self.krate); | ||
96 | let parent_id = def_map[self.module_id].parent?; | ||
97 | Some(self.with_module_id(parent_id)) | ||
98 | } | ||
99 | } | ||
diff --git a/crates/ra_hir/src/impl_block.rs b/crates/ra_hir/src/impl_block.rs index 51fa491c3..637f6ab83 100644 --- a/crates/ra_hir/src/impl_block.rs +++ b/crates/ra_hir/src/impl_block.rs | |||
@@ -15,7 +15,7 @@ use crate::{ | |||
15 | resolve::Resolver, | 15 | resolve::Resolver, |
16 | ty::Ty, | 16 | ty::Ty, |
17 | generics::HasGenericParams, | 17 | generics::HasGenericParams, |
18 | code_model_api::{Module, ModuleSource} | 18 | code_model::{Module, ModuleSource} |
19 | }; | 19 | }; |
20 | 20 | ||
21 | #[derive(Debug, Default, PartialEq, Eq)] | 21 | #[derive(Debug, Default, PartialEq, Eq)] |
diff --git a/crates/ra_hir/src/lib.rs b/crates/ra_hir/src/lib.rs index 0135644db..fe2d4adee 100644 --- a/crates/ra_hir/src/lib.rs +++ b/crates/ra_hir/src/lib.rs | |||
@@ -42,8 +42,7 @@ mod docs; | |||
42 | mod resolve; | 42 | mod resolve; |
43 | pub mod diagnostics; | 43 | pub mod diagnostics; |
44 | 44 | ||
45 | mod code_model_api; | 45 | mod code_model; |
46 | mod code_model_impl; | ||
47 | 46 | ||
48 | #[cfg(test)] | 47 | #[cfg(test)] |
49 | mod marks; | 48 | mod marks; |
@@ -73,7 +72,7 @@ pub use self::{ | |||
73 | source_binder::{SourceAnalyzer, PathResolution, ScopeEntryWithSyntax,MacroByExampleDef}, | 72 | source_binder::{SourceAnalyzer, PathResolution, ScopeEntryWithSyntax,MacroByExampleDef}, |
74 | }; | 73 | }; |
75 | 74 | ||
76 | pub use self::code_model_api::{ | 75 | pub use self::code_model::{ |
77 | Crate, CrateDependency, | 76 | Crate, CrateDependency, |
78 | DefWithBody, | 77 | DefWithBody, |
79 | Module, ModuleDef, ModuleSource, | 78 | Module, ModuleDef, ModuleSource, |
diff --git a/crates/ra_hir/src/resolve.rs b/crates/ra_hir/src/resolve.rs index 3874e28bf..fedfe2fee 100644 --- a/crates/ra_hir/src/resolve.rs +++ b/crates/ra_hir/src/resolve.rs | |||
@@ -5,7 +5,7 @@ use rustc_hash::{FxHashMap, FxHashSet}; | |||
5 | 5 | ||
6 | use crate::{ | 6 | use crate::{ |
7 | ModuleDef, Trait, | 7 | ModuleDef, Trait, |
8 | code_model_api::Crate, | 8 | code_model::Crate, |
9 | MacroDefId, | 9 | MacroDefId, |
10 | db::HirDatabase, | 10 | db::HirDatabase, |
11 | name::{Name, KnownName}, | 11 | name::{Name, KnownName}, |
diff --git a/crates/ra_ide_api/src/completion/complete_dot.rs b/crates/ra_ide_api/src/completion/complete_dot.rs index 2e8084699..5bf289c63 100644 --- a/crates/ra_ide_api/src/completion/complete_dot.rs +++ b/crates/ra_ide_api/src/completion/complete_dot.rs | |||
@@ -66,16 +66,18 @@ mod tests { | |||
66 | } | 66 | } |
67 | ", | 67 | ", |
68 | ), | 68 | ), |
69 | @r###"[ | 69 | @r###" |
70 | CompletionItem { | 70 | â‹®[ |
71 | label: "the_field", | 71 | â‹® CompletionItem { |
72 | source_range: [94; 94), | 72 | â‹® label: "the_field", |
73 | delete: [94; 94), | 73 | â‹® source_range: [94; 94), |
74 | insert: "the_field", | 74 | â‹® delete: [94; 94), |
75 | kind: Field, | 75 | â‹® insert: "the_field", |
76 | detail: "u32" | 76 | â‹® kind: Field, |
77 | } | 77 | â‹® detail: "u32", |
78 | ]"### | 78 | â‹® }, |
79 | â‹®] | ||
80 | "### | ||
79 | ); | 81 | ); |
80 | } | 82 | } |
81 | 83 | ||
@@ -95,27 +97,29 @@ mod tests { | |||
95 | } | 97 | } |
96 | ", | 98 | ", |
97 | ), | 99 | ), |
98 | @r###"[ | 100 | @r###" |
99 | CompletionItem { | 101 | â‹®[ |
100 | label: "foo", | 102 | â‹® CompletionItem { |
101 | source_range: [187; 187), | 103 | â‹® label: "foo", |
102 | delete: [187; 187), | 104 | â‹® source_range: [187; 187), |
103 | insert: "foo()$0", | 105 | â‹® delete: [187; 187), |
104 | kind: Method, | 106 | â‹® insert: "foo()$0", |
105 | detail: "fn foo(self)" | 107 | â‹® kind: Method, |
106 | }, | 108 | â‹® detail: "fn foo(self)", |
107 | CompletionItem { | 109 | â‹® }, |
108 | label: "the_field", | 110 | â‹® CompletionItem { |
109 | source_range: [187; 187), | 111 | â‹® label: "the_field", |
110 | delete: [187; 187), | 112 | â‹® source_range: [187; 187), |
111 | insert: "the_field", | 113 | â‹® delete: [187; 187), |
112 | kind: Field, | 114 | â‹® insert: "the_field", |
113 | detail: "(u32,)", | 115 | â‹® kind: Field, |
114 | documentation: Documentation( | 116 | â‹® detail: "(u32,)", |
115 | "This is the_field" | 117 | â‹® documentation: Documentation( |
116 | ) | 118 | â‹® "This is the_field", |
117 | } | 119 | â‹® ), |
118 | ]"### | 120 | â‹® }, |
121 | â‹®] | ||
122 | "### | ||
119 | ); | 123 | ); |
120 | } | 124 | } |
121 | 125 | ||
@@ -132,24 +136,26 @@ mod tests { | |||
132 | } | 136 | } |
133 | ", | 137 | ", |
134 | ), | 138 | ), |
135 | @r###"[ | 139 | @r###" |
136 | CompletionItem { | 140 | â‹®[ |
137 | label: "foo", | 141 | â‹® CompletionItem { |
138 | source_range: [126; 126), | 142 | â‹® label: "foo", |
139 | delete: [126; 126), | 143 | â‹® source_range: [126; 126), |
140 | insert: "foo()$0", | 144 | â‹® delete: [126; 126), |
141 | kind: Method, | 145 | â‹® insert: "foo()$0", |
142 | detail: "fn foo(&self)" | 146 | â‹® kind: Method, |
143 | }, | 147 | â‹® detail: "fn foo(&self)", |
144 | CompletionItem { | 148 | â‹® }, |
145 | label: "the_field", | 149 | â‹® CompletionItem { |
146 | source_range: [126; 126), | 150 | â‹® label: "the_field", |
147 | delete: [126; 126), | 151 | â‹® source_range: [126; 126), |
148 | insert: "the_field", | 152 | â‹® delete: [126; 126), |
149 | kind: Field, | 153 | â‹® insert: "the_field", |
150 | detail: "(u32, i32)" | 154 | â‹® kind: Field, |
151 | } | 155 | â‹® detail: "(u32, i32)", |
152 | ]"### | 156 | â‹® }, |
157 | â‹®] | ||
158 | "### | ||
153 | ); | 159 | ); |
154 | } | 160 | } |
155 | 161 | ||
@@ -182,16 +188,18 @@ mod tests { | |||
182 | } | 188 | } |
183 | ", | 189 | ", |
184 | ), | 190 | ), |
185 | @r###"[ | 191 | @r###" |
186 | CompletionItem { | 192 | â‹®[ |
187 | label: "the_method", | 193 | â‹® CompletionItem { |
188 | source_range: [144; 144), | 194 | â‹® label: "the_method", |
189 | delete: [144; 144), | 195 | â‹® source_range: [144; 144), |
190 | insert: "the_method()$0", | 196 | â‹® delete: [144; 144), |
191 | kind: Method, | 197 | â‹® insert: "the_method()$0", |
192 | detail: "fn the_method(&self)" | 198 | â‹® kind: Method, |
193 | } | 199 | â‹® detail: "fn the_method(&self)", |
194 | ]"### | 200 | â‹® }, |
201 | â‹®] | ||
202 | "### | ||
195 | ); | 203 | ); |
196 | } | 204 | } |
197 | 205 | ||
@@ -208,16 +216,18 @@ mod tests { | |||
208 | } | 216 | } |
209 | ", | 217 | ", |
210 | ), | 218 | ), |
211 | @r###"[ | 219 | @r###" |
212 | CompletionItem { | 220 | â‹®[ |
213 | label: "the_method", | 221 | â‹® CompletionItem { |
214 | source_range: [151; 151), | 222 | â‹® label: "the_method", |
215 | delete: [151; 151), | 223 | â‹® source_range: [151; 151), |
216 | insert: "the_method()$0", | 224 | â‹® delete: [151; 151), |
217 | kind: Method, | 225 | â‹® insert: "the_method()$0", |
218 | detail: "fn the_method(&self)" | 226 | â‹® kind: Method, |
219 | } | 227 | â‹® detail: "fn the_method(&self)", |
220 | ]"### | 228 | â‹® }, |
229 | â‹®] | ||
230 | "### | ||
221 | ); | 231 | ); |
222 | } | 232 | } |
223 | 233 | ||
@@ -257,16 +267,18 @@ mod tests { | |||
257 | } | 267 | } |
258 | ", | 268 | ", |
259 | ), | 269 | ), |
260 | @r###"[ | 270 | @r###" |
261 | CompletionItem { | 271 | â‹®[ |
262 | label: "the_method", | 272 | â‹® CompletionItem { |
263 | source_range: [249; 249), | 273 | â‹® label: "the_method", |
264 | delete: [249; 249), | 274 | â‹® source_range: [249; 249), |
265 | insert: "the_method()$0", | 275 | â‹® delete: [249; 249), |
266 | kind: Method, | 276 | â‹® insert: "the_method()$0", |
267 | detail: "fn the_method(&self)" | 277 | â‹® kind: Method, |
268 | } | 278 | â‹® detail: "fn the_method(&self)", |
269 | ]"### | 279 | â‹® }, |
280 | â‹®] | ||
281 | "### | ||
270 | ); | 282 | ); |
271 | } | 283 | } |
272 | 284 | ||
@@ -281,24 +293,26 @@ mod tests { | |||
281 | } | 293 | } |
282 | ", | 294 | ", |
283 | ), | 295 | ), |
284 | @r###"[ | 296 | @r###" |
285 | CompletionItem { | 297 | â‹®[ |
286 | label: "0", | 298 | â‹® CompletionItem { |
287 | source_range: [75; 75), | 299 | â‹® label: "0", |
288 | delete: [75; 75), | 300 | â‹® source_range: [75; 75), |
289 | insert: "0", | 301 | â‹® delete: [75; 75), |
290 | kind: Field, | 302 | â‹® insert: "0", |
291 | detail: "i32" | 303 | â‹® kind: Field, |
292 | }, | 304 | â‹® detail: "i32", |
293 | CompletionItem { | 305 | â‹® }, |
294 | label: "1", | 306 | â‹® CompletionItem { |
295 | source_range: [75; 75), | 307 | â‹® label: "1", |
296 | delete: [75; 75), | 308 | â‹® source_range: [75; 75), |
297 | insert: "1", | 309 | â‹® delete: [75; 75), |
298 | kind: Field, | 310 | â‹® insert: "1", |
299 | detail: "f64" | 311 | â‹® kind: Field, |
300 | } | 312 | â‹® detail: "f64", |
301 | ]"### | 313 | â‹® }, |
314 | â‹®] | ||
315 | "### | ||
302 | ); | 316 | ); |
303 | } | 317 | } |
304 | 318 | ||
@@ -322,16 +336,18 @@ mod tests { | |||
322 | } | 336 | } |
323 | ", | 337 | ", |
324 | ), | 338 | ), |
325 | @r###"[ | 339 | @r###" |
326 | CompletionItem { | 340 | â‹®[ |
327 | label: "blah", | 341 | â‹® CompletionItem { |
328 | source_range: [299; 300), | 342 | â‹® label: "blah", |
329 | delete: [299; 300), | 343 | â‹® source_range: [299; 300), |
330 | insert: "blah()$0", | 344 | â‹® delete: [299; 300), |
331 | kind: Method, | 345 | â‹® insert: "blah()$0", |
332 | detail: "pub fn blah(&self)" | 346 | â‹® kind: Method, |
333 | } | 347 | â‹® detail: "pub fn blah(&self)", |
334 | ]"### | 348 | â‹® }, |
349 | â‹®] | ||
350 | "### | ||
335 | ); | 351 | ); |
336 | } | 352 | } |
337 | 353 | ||
@@ -346,16 +362,18 @@ mod tests { | |||
346 | }; | 362 | }; |
347 | ", | 363 | ", |
348 | ), | 364 | ), |
349 | @r###"[ | 365 | @r###" |
350 | CompletionItem { | 366 | â‹®[ |
351 | label: "the_field", | 367 | â‹® CompletionItem { |
352 | source_range: [106; 106), | 368 | â‹® label: "the_field", |
353 | delete: [106; 106), | 369 | â‹® source_range: [106; 106), |
354 | insert: "the_field", | 370 | â‹® delete: [106; 106), |
355 | kind: Field, | 371 | â‹® insert: "the_field", |
356 | detail: "u32" | 372 | â‹® kind: Field, |
357 | } | 373 | â‹® detail: "u32", |
358 | ]"### | 374 | â‹® }, |
375 | â‹®] | ||
376 | "### | ||
359 | ); | 377 | ); |
360 | } | 378 | } |
361 | } | 379 | } |
diff --git a/crates/ra_ide_api/src/completion/complete_fn_param.rs b/crates/ra_ide_api/src/completion/complete_fn_param.rs index 85ef62f52..d738ffc13 100644 --- a/crates/ra_ide_api/src/completion/complete_fn_param.rs +++ b/crates/ra_ide_api/src/completion/complete_fn_param.rs | |||
@@ -71,15 +71,17 @@ mod tests { | |||
71 | fn baz(file<|>) {} | 71 | fn baz(file<|>) {} |
72 | ", | 72 | ", |
73 | ), | 73 | ), |
74 | @r###"[ | 74 | @r###" |
75 | CompletionItem { | 75 | â‹®[ |
76 | label: "file_id: FileId", | 76 | â‹® CompletionItem { |
77 | source_range: [110; 114), | 77 | â‹® label: "file_id: FileId", |
78 | delete: [110; 114), | 78 | â‹® source_range: [110; 114), |
79 | insert: "file_id: FileId", | 79 | â‹® delete: [110; 114), |
80 | lookup: "file_id" | 80 | â‹® insert: "file_id: FileId", |
81 | } | 81 | â‹® lookup: "file_id", |
82 | ]"### | 82 | â‹® }, |
83 | â‹®] | ||
84 | "### | ||
83 | ); | 85 | ); |
84 | } | 86 | } |
85 | 87 | ||
@@ -93,15 +95,17 @@ mod tests { | |||
93 | fn baz(file<|>, x: i32) {} | 95 | fn baz(file<|>, x: i32) {} |
94 | ", | 96 | ", |
95 | ), | 97 | ), |
96 | @r###"[ | 98 | @r###" |
97 | CompletionItem { | 99 | â‹®[ |
98 | label: "file_id: FileId", | 100 | â‹® CompletionItem { |
99 | source_range: [110; 114), | 101 | â‹® label: "file_id: FileId", |
100 | delete: [110; 114), | 102 | â‹® source_range: [110; 114), |
101 | insert: "file_id: FileId", | 103 | â‹® delete: [110; 114), |
102 | lookup: "file_id" | 104 | â‹® insert: "file_id: FileId", |
103 | } | 105 | â‹® lookup: "file_id", |
104 | ]"### | 106 | â‹® }, |
107 | â‹®] | ||
108 | "### | ||
105 | ); | 109 | ); |
106 | } | 110 | } |
107 | 111 | ||
@@ -118,15 +122,17 @@ mod tests { | |||
118 | } | 122 | } |
119 | ", | 123 | ", |
120 | ), | 124 | ), |
121 | @r###"[ | 125 | @r###" |
122 | CompletionItem { | 126 | â‹®[ |
123 | label: "file_id: FileId", | 127 | â‹® CompletionItem { |
124 | source_range: [289; 293), | 128 | â‹® label: "file_id: FileId", |
125 | delete: [289; 293), | 129 | â‹® source_range: [289; 293), |
126 | insert: "file_id: FileId", | 130 | â‹® delete: [289; 293), |
127 | lookup: "file_id" | 131 | â‹® insert: "file_id: FileId", |
128 | } | 132 | â‹® lookup: "file_id", |
129 | ]"### | 133 | â‹® }, |
134 | â‹®] | ||
135 | "### | ||
130 | ); | 136 | ); |
131 | } | 137 | } |
132 | } | 138 | } |
diff --git a/crates/ra_ide_api/src/completion/complete_pattern.rs b/crates/ra_ide_api/src/completion/complete_pattern.rs index 0ef248687..74833a756 100644 --- a/crates/ra_ide_api/src/completion/complete_pattern.rs +++ b/crates/ra_ide_api/src/completion/complete_pattern.rs | |||
@@ -53,35 +53,37 @@ mod tests { | |||
53 | } | 53 | } |
54 | ", | 54 | ", |
55 | ); | 55 | ); |
56 | assert_debug_snapshot_matches!(completions, @r###"[ | 56 | assert_debug_snapshot_matches!(completions, @r###" |
57 | CompletionItem { | 57 | â‹®[ |
58 | label: "E", | 58 | â‹® CompletionItem { |
59 | source_range: [246; 246), | 59 | â‹® label: "E", |
60 | delete: [246; 246), | 60 | â‹® source_range: [246; 246), |
61 | insert: "E", | 61 | â‹® delete: [246; 246), |
62 | kind: Enum | 62 | â‹® insert: "E", |
63 | }, | 63 | â‹® kind: Enum, |
64 | CompletionItem { | 64 | â‹® }, |
65 | label: "X", | 65 | â‹® CompletionItem { |
66 | source_range: [246; 246), | 66 | â‹® label: "X", |
67 | delete: [246; 246), | 67 | â‹® source_range: [246; 246), |
68 | insert: "X", | 68 | â‹® delete: [246; 246), |
69 | kind: EnumVariant | 69 | â‹® insert: "X", |
70 | }, | 70 | â‹® kind: EnumVariant, |
71 | CompletionItem { | 71 | â‹® }, |
72 | label: "Z", | 72 | â‹® CompletionItem { |
73 | source_range: [246; 246), | 73 | â‹® label: "Z", |
74 | delete: [246; 246), | 74 | â‹® source_range: [246; 246), |
75 | insert: "Z", | 75 | â‹® delete: [246; 246), |
76 | kind: Const | 76 | â‹® insert: "Z", |
77 | }, | 77 | â‹® kind: Const, |
78 | CompletionItem { | 78 | â‹® }, |
79 | label: "m", | 79 | â‹® CompletionItem { |
80 | source_range: [246; 246), | 80 | â‹® label: "m", |
81 | delete: [246; 246), | 81 | â‹® source_range: [246; 246), |
82 | insert: "m", | 82 | â‹® delete: [246; 246), |
83 | kind: Module | 83 | â‹® insert: "m", |
84 | } | 84 | â‹® kind: Module, |
85 | ]"###); | 85 | â‹® }, |
86 | â‹®] | ||
87 | "###); | ||
86 | } | 88 | } |
87 | } | 89 | } |
diff --git a/crates/ra_ide_api/src/completion/complete_struct_literal.rs b/crates/ra_ide_api/src/completion/complete_struct_literal.rs index a00c1b60b..1eeea58f6 100644 --- a/crates/ra_ide_api/src/completion/complete_struct_literal.rs +++ b/crates/ra_ide_api/src/completion/complete_struct_literal.rs | |||
@@ -44,15 +44,17 @@ mod tests { | |||
44 | } | 44 | } |
45 | ", | 45 | ", |
46 | ); | 46 | ); |
47 | assert_debug_snapshot_matches!(completions, @r###"[ | 47 | assert_debug_snapshot_matches!(completions, @r###" |
48 | CompletionItem { | 48 | â‹®[ |
49 | label: "the_field", | 49 | â‹® CompletionItem { |
50 | source_range: [83; 86), | 50 | â‹® label: "the_field", |
51 | delete: [83; 86), | 51 | â‹® source_range: [83; 86), |
52 | insert: "the_field", | 52 | â‹® delete: [83; 86), |
53 | kind: Field, | 53 | â‹® insert: "the_field", |
54 | detail: "u32" | 54 | â‹® kind: Field, |
55 | } | 55 | â‹® detail: "u32", |
56 | ]"###); | 56 | â‹® }, |
57 | â‹®] | ||
58 | "###); | ||
57 | } | 59 | } |
58 | } | 60 | } |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap index bd7f99f71..e9b717a45 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.132341107Z" | 2 | created: "2019-05-23T22:23:35.119822026Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,13 +11,13 @@ expression: kind_completions | |||
11 | delete: [83; 83), | 11 | delete: [83; 83), |
12 | insert: "quux()$0", | 12 | insert: "quux()$0", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn quux()" | 14 | detail: "fn quux()", |
15 | }, | 15 | }, |
16 | CompletionItem { | 16 | CompletionItem { |
17 | label: "x", | 17 | label: "x", |
18 | source_range: [83; 83), | 18 | source_range: [83; 83), |
19 | delete: [83; 83), | 19 | delete: [83; 83), |
20 | insert: "x", | 20 | insert: "x", |
21 | kind: Binding | 21 | kind: Binding, |
22 | } | 22 | }, |
23 | ] | 23 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap index 3b374c4de..2a22201ad 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.126809445Z" | 2 | created: "2019-05-23T22:23:35.122168608Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,14 +10,14 @@ expression: kind_completions | |||
10 | source_range: [214; 214), | 10 | source_range: [214; 214), |
11 | delete: [214; 214), | 11 | delete: [214; 214), |
12 | insert: "a", | 12 | insert: "a", |
13 | kind: Binding | 13 | kind: Binding, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "b", | 16 | label: "b", |
17 | source_range: [214; 214), | 17 | source_range: [214; 214), |
18 | delete: [214; 214), | 18 | delete: [214; 214), |
19 | insert: "b", | 19 | insert: "b", |
20 | kind: Binding | 20 | kind: Binding, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "quux", | 23 | label: "quux", |
@@ -25,6 +25,6 @@ expression: kind_completions | |||
25 | delete: [214; 214), | 25 | delete: [214; 214), |
26 | insert: "quux()$0", | 26 | insert: "quux()$0", |
27 | kind: Function, | 27 | kind: Function, |
28 | detail: "fn quux()" | 28 | detail: "fn quux()", |
29 | } | 29 | }, |
30 | ] | 30 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap index 173f5319a..b9a5dc9c8 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.126696322Z" | 2 | created: "2019-05-23T22:23:35.122797188Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,20 +11,20 @@ expression: kind_completions | |||
11 | delete: [79; 79), | 11 | delete: [79; 79), |
12 | insert: "quux($0)", | 12 | insert: "quux($0)", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn quux(x: i32)" | 14 | detail: "fn quux(x: i32)", |
15 | }, | 15 | }, |
16 | CompletionItem { | 16 | CompletionItem { |
17 | label: "x", | 17 | label: "x", |
18 | source_range: [79; 79), | 18 | source_range: [79; 79), |
19 | delete: [79; 79), | 19 | delete: [79; 79), |
20 | insert: "x", | 20 | insert: "x", |
21 | kind: Binding | 21 | kind: Binding, |
22 | }, | 22 | }, |
23 | CompletionItem { | 23 | CompletionItem { |
24 | label: "y", | 24 | label: "y", |
25 | source_range: [79; 79), | 25 | source_range: [79; 79), |
26 | delete: [79; 79), | 26 | delete: [79; 79), |
27 | insert: "y", | 27 | insert: "y", |
28 | kind: Binding | 28 | kind: Binding, |
29 | } | 29 | }, |
30 | ] | 30 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops1.snap index 42ff02469..b6f95c1ff 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops1.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops1.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.976673150Z" | 2 | created: "2019-05-23T22:23:35.067956470Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,48 +10,48 @@ expression: kind_completions | |||
10 | source_range: [55; 55), | 10 | source_range: [55; 55), |
11 | delete: [55; 55), | 11 | delete: [55; 55), |
12 | insert: "break;", | 12 | insert: "break;", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "continue", | 16 | label: "continue", |
17 | source_range: [55; 55), | 17 | source_range: [55; 55), |
18 | delete: [55; 55), | 18 | delete: [55; 55), |
19 | insert: "continue;", | 19 | insert: "continue;", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "if", | 23 | label: "if", |
24 | source_range: [55; 55), | 24 | source_range: [55; 55), |
25 | delete: [55; 55), | 25 | delete: [55; 55), |
26 | insert: "if $0 {}", | 26 | insert: "if $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "loop", | 30 | label: "loop", |
31 | source_range: [55; 55), | 31 | source_range: [55; 55), |
32 | delete: [55; 55), | 32 | delete: [55; 55), |
33 | insert: "loop {$0}", | 33 | insert: "loop {$0}", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "match", | 37 | label: "match", |
38 | source_range: [55; 55), | 38 | source_range: [55; 55), |
39 | delete: [55; 55), | 39 | delete: [55; 55), |
40 | insert: "match $0 {}", | 40 | insert: "match $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | }, | 42 | }, |
43 | CompletionItem { | 43 | CompletionItem { |
44 | label: "return", | 44 | label: "return", |
45 | source_range: [55; 55), | 45 | source_range: [55; 55), |
46 | delete: [55; 55), | 46 | delete: [55; 55), |
47 | insert: "return $0;", | 47 | insert: "return $0;", |
48 | kind: Keyword | 48 | kind: Keyword, |
49 | }, | 49 | }, |
50 | CompletionItem { | 50 | CompletionItem { |
51 | label: "while", | 51 | label: "while", |
52 | source_range: [55; 55), | 52 | source_range: [55; 55), |
53 | delete: [55; 55), | 53 | delete: [55; 55), |
54 | insert: "while $0 {}", | 54 | insert: "while $0 {}", |
55 | kind: Keyword | 55 | kind: Keyword, |
56 | } | 56 | }, |
57 | ] | 57 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops2.snap index 057ff8a7a..9b37478ef 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops2.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops2.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.068967569Z" | 2 | created: "2019-05-23T22:44:10.859967190Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [60; 60), | 10 | source_range: [60; 60), |
11 | delete: [60; 60), | 11 | delete: [60; 60), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [60; 60), | 17 | source_range: [60; 60), |
18 | delete: [60; 60), | 18 | delete: [60; 60), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [60; 60), | 24 | source_range: [60; 60), |
25 | delete: [60; 60), | 25 | delete: [60; 60), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [60; 60), | 31 | source_range: [60; 60), |
32 | delete: [60; 60), | 32 | delete: [60; 60), |
33 | insert: "return $0;", | 33 | insert: "return $0;", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [60; 60), | 38 | source_range: [60; 60), |
39 | delete: [60; 60), | 39 | delete: [60; 60), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap index 16126ee77..b339c6c5f 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_prelude.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.180517434Z" | 2 | created: "2019-05-23T22:23:35.139262926Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,7 +10,7 @@ expression: kind_completions | |||
10 | source_range: [18; 18), | 10 | source_range: [18; 18), |
11 | delete: [18; 18), | 11 | delete: [18; 18), |
12 | insert: "Option", | 12 | insert: "Option", |
13 | kind: Struct | 13 | kind: Struct, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "foo", | 16 | label: "foo", |
@@ -18,13 +18,13 @@ expression: kind_completions | |||
18 | delete: [18; 18), | 18 | delete: [18; 18), |
19 | insert: "foo()$0", | 19 | insert: "foo()$0", |
20 | kind: Function, | 20 | kind: Function, |
21 | detail: "fn foo()" | 21 | detail: "fn foo()", |
22 | }, | 22 | }, |
23 | CompletionItem { | 23 | CompletionItem { |
24 | label: "std", | 24 | label: "std", |
25 | source_range: [18; 18), | 25 | source_range: [18; 18), |
26 | delete: [18; 18), | 26 | delete: [18; 18), |
27 | insert: "std", | 27 | insert: "std", |
28 | kind: Module | 28 | kind: Module, |
29 | } | 29 | }, |
30 | ] | 30 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_use_paths_across_crates.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_use_paths_across_crates.snap index 2420e7744..113deafb1 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_use_paths_across_crates.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__completes_use_paths_across_crates.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.118807216Z" | 2 | created: "2019-05-23T22:23:35.108690807Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,6 +10,6 @@ expression: kind_completions | |||
10 | source_range: [9; 9), | 10 | source_range: [9; 9), |
11 | delete: [9; 9), | 11 | delete: [9; 9), |
12 | insert: "bar", | 12 | insert: "bar", |
13 | kind: Module | 13 | kind: Module, |
14 | } | 14 | }, |
15 | ] | 15 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__deeply_nested_use_tree.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__deeply_nested_use_tree.snap index c472f7965..aacdeb763 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__deeply_nested_use_tree.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__deeply_nested_use_tree.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.044567777Z" | 2 | created: "2019-05-23T22:23:35.085633034Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,6 +10,6 @@ expression: kind_completions | |||
10 | source_range: [23; 25), | 10 | source_range: [23; 25), |
11 | delete: [23; 25), | 11 | delete: [23; 25), |
12 | insert: "Spam", | 12 | insert: "Spam", |
13 | kind: Struct | 13 | kind: Struct, |
14 | } | 14 | }, |
15 | ] | 15 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_add_semi_after_return_if_not_a_statement.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_add_semi_after_return_if_not_a_statement.snap index 97bd76c49..9d320c715 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_add_semi_after_return_if_not_a_statement.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_add_semi_after_return_if_not_a_statement.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.987788705Z" | 2 | created: "2019-05-23T22:23:35.081993214Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [85; 85), | 10 | source_range: [85; 85), |
11 | delete: [85; 85), | 11 | delete: [85; 85), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [85; 85), | 17 | source_range: [85; 85), |
18 | delete: [85; 85), | 18 | delete: [85; 85), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [85; 85), | 24 | source_range: [85; 85), |
25 | delete: [85; 85), | 25 | delete: [85; 85), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [85; 85), | 31 | source_range: [85; 85), |
32 | delete: [85; 85), | 32 | delete: [85; 85), |
33 | insert: "return $0", | 33 | insert: "return $0", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [85; 85), | 38 | source_range: [85; 85), |
39 | delete: [85; 85), | 39 | delete: [85; 85), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap index 1de0efb5b..46bea2ccd 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.211680376Z" | 2 | created: "2019-05-23T22:23:35.158296242Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,7 +11,7 @@ expression: kind_completions | |||
11 | delete: [35; 39), | 11 | delete: [35; 39), |
12 | insert: "frobnicate", | 12 | insert: "frobnicate", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn frobnicate()" | 14 | detail: "fn frobnicate()", |
15 | }, | 15 | }, |
16 | CompletionItem { | 16 | CompletionItem { |
17 | label: "main", | 17 | label: "main", |
@@ -19,6 +19,6 @@ expression: kind_completions | |||
19 | delete: [35; 39), | 19 | delete: [35; 39), |
20 | insert: "main", | 20 | insert: "main", |
21 | kind: Function, | 21 | kind: Function, |
22 | detail: "fn main()" | 22 | detail: "fn main()", |
23 | } | 23 | }, |
24 | ] | 24 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap index 19375ea95..b09a6745e 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call_assoc_fn.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-24T16:33:48.008220694Z" | 2 | created: "2019-05-23T22:44:10.920136527Z" |
3 | creator: insta@0.6.3 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,6 +11,6 @@ expression: kind_completions | |||
11 | delete: [67; 69), | 11 | delete: [67; 69), |
12 | insert: "new", | 12 | insert: "new", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn new() -> Foo" | 14 | detail: "fn new() -> Foo", |
15 | } | 15 | }, |
16 | ] | 16 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap index ef77816ec..84ccc8160 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.213677341Z" | 2 | created: "2019-05-23T22:23:35.154795561Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,6 +11,6 @@ expression: kind_completions | |||
11 | delete: [40; 41), | 11 | delete: [40; 41), |
12 | insert: "foo", | 12 | insert: "foo", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "pub fn foo()" | 14 | detail: "pub fn foo()", |
15 | } | 15 | }, |
16 | ] | 16 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap index 34adcda6c..57434210d 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-04-04T14:52:24.531844100Z" | 2 | created: "2019-05-23T22:23:35.142044205Z" |
3 | creator: insta@0.7.4 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,7 +10,7 @@ expression: kind_completions | |||
10 | source_range: [126; 126), | 10 | source_range: [126; 126), |
11 | delete: [126; 126), | 11 | delete: [126; 126), |
12 | insert: "bar", | 12 | insert: "bar", |
13 | kind: Binding | 13 | kind: Binding, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "foo", | 16 | label: "foo", |
@@ -18,6 +18,6 @@ expression: kind_completions | |||
18 | delete: [126; 126), | 18 | delete: [126; 126), |
19 | insert: "foo()$0", | 19 | insert: "foo()$0", |
20 | kind: Function, | 20 | kind: Function, |
21 | detail: "fn foo()" | 21 | detail: "fn foo()", |
22 | } | 22 | }, |
23 | ] | 23 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant.snap index 1df121523..e40217ca8 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.045355450Z" | 2 | created: "2019-05-23T22:23:35.090178265Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -13,8 +13,8 @@ expression: kind_completions | |||
13 | kind: EnumVariant, | 13 | kind: EnumVariant, |
14 | detail: "(i32)", | 14 | detail: "(i32)", |
15 | documentation: Documentation( | 15 | documentation: Documentation( |
16 | "Bar Variant with i32" | 16 | "Bar Variant with i32", |
17 | ) | 17 | ), |
18 | }, | 18 | }, |
19 | CompletionItem { | 19 | CompletionItem { |
20 | label: "Foo", | 20 | label: "Foo", |
@@ -24,7 +24,7 @@ expression: kind_completions | |||
24 | kind: EnumVariant, | 24 | kind: EnumVariant, |
25 | detail: "()", | 25 | detail: "()", |
26 | documentation: Documentation( | 26 | documentation: Documentation( |
27 | "Foo Variant" | 27 | "Foo Variant", |
28 | ) | 28 | ), |
29 | } | 29 | }, |
30 | ] | 30 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant_with_details.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant_with_details.snap index daccd9fba..e09d7988a 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant_with_details.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__enum_variant_with_details.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-04-02T07:43:12.954637543Z" | 2 | created: "2019-05-23T22:23:35.091325331Z" |
3 | creator: insta@0.7.4 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -13,8 +13,8 @@ expression: kind_completions | |||
13 | kind: EnumVariant, | 13 | kind: EnumVariant, |
14 | detail: "(i32, u32)", | 14 | detail: "(i32, u32)", |
15 | documentation: Documentation( | 15 | documentation: Documentation( |
16 | "Bar Variant with i32 and u32" | 16 | "Bar Variant with i32 and u32", |
17 | ) | 17 | ), |
18 | }, | 18 | }, |
19 | CompletionItem { | 19 | CompletionItem { |
20 | label: "Foo", | 20 | label: "Foo", |
@@ -24,8 +24,8 @@ expression: kind_completions | |||
24 | kind: EnumVariant, | 24 | kind: EnumVariant, |
25 | detail: "()", | 25 | detail: "()", |
26 | documentation: Documentation( | 26 | documentation: Documentation( |
27 | "Foo Variant (empty)" | 27 | "Foo Variant (empty)", |
28 | ) | 28 | ), |
29 | }, | 29 | }, |
30 | CompletionItem { | 30 | CompletionItem { |
31 | label: "S", | 31 | label: "S", |
@@ -35,7 +35,7 @@ expression: kind_completions | |||
35 | kind: EnumVariant, | 35 | kind: EnumVariant, |
36 | detail: "(S)", | 36 | detail: "(S)", |
37 | documentation: Documentation( | 37 | documentation: Documentation( |
38 | "" | 38 | "", |
39 | ) | 39 | ), |
40 | } | 40 | }, |
41 | ] | 41 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap index 0d36fd603..b9449a76c 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__extern_prelude.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.137183638Z" | 2 | created: "2019-05-23T22:23:35.123197049Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,6 +10,6 @@ expression: kind_completions | |||
10 | source_range: [4; 4), | 10 | source_range: [4; 4), |
11 | delete: [4; 4), | 11 | delete: [4; 4), |
12 | insert: "other_crate", | 12 | insert: "other_crate", |
13 | kind: Module | 13 | kind: Module, |
14 | } | 14 | }, |
15 | ] | 15 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap index 210e5a02d..eb1a4151a 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.143253235Z" | 2 | created: "2019-05-23T22:23:35.123825399Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,7 +10,7 @@ expression: kind_completions | |||
10 | source_range: [44; 44), | 10 | source_range: [44; 44), |
11 | delete: [44; 44), | 11 | delete: [44; 44), |
12 | insert: "T", | 12 | insert: "T", |
13 | kind: TypeParam | 13 | kind: TypeParam, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "quux", | 16 | label: "quux", |
@@ -18,6 +18,6 @@ expression: kind_completions | |||
18 | delete: [44; 44), | 18 | delete: [44; 44), |
19 | insert: "quux()$0", | 19 | insert: "quux()$0", |
20 | kind: Function, | 20 | kind: Function, |
21 | detail: "fn quux<T>()" | 21 | detail: "fn quux<T>()", |
22 | } | 22 | }, |
23 | ] | 23 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap index ab8c30446..52f08267f 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__generic_params_in_struct.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.149424158Z" | 2 | created: "2019-05-23T22:23:35.130778739Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [46; 46), | 10 | source_range: [46; 46), |
11 | delete: [46; 46), | 11 | delete: [46; 46), |
12 | insert: "T", | 12 | insert: "T", |
13 | kind: TypeParam | 13 | kind: TypeParam, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "X", | 16 | label: "X", |
17 | source_range: [46; 46), | 17 | source_range: [46; 46), |
18 | delete: [46; 46), | 18 | delete: [46; 46), |
19 | insert: "X", | 19 | insert: "X", |
20 | kind: Struct | 20 | kind: Struct, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap index a4fc447b2..c795b9aae 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.224510370Z" | 2 | created: "2019-05-23T22:23:35.156115632Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,7 +11,7 @@ expression: kind_completions | |||
11 | delete: [53; 56), | 11 | delete: [53; 56), |
12 | insert: "main()$0", | 12 | insert: "main()$0", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn main()" | 14 | detail: "fn main()", |
15 | }, | 15 | }, |
16 | CompletionItem { | 16 | CompletionItem { |
17 | label: "no_args", | 17 | label: "no_args", |
@@ -19,6 +19,6 @@ expression: kind_completions | |||
19 | delete: [53; 56), | 19 | delete: [53; 56), |
20 | insert: "no_args()$0", | 20 | insert: "no_args()$0", |
21 | kind: Function, | 21 | kind: Function, |
22 | detail: "fn no_args()" | 22 | detail: "fn no_args()", |
23 | } | 23 | }, |
24 | ] | 24 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap index b124355d5..b49a838e0 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.267013140Z" | 2 | created: "2019-05-23T22:44:10.916806744Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,7 +11,7 @@ expression: kind_completions | |||
11 | delete: [72; 77), | 11 | delete: [72; 77), |
12 | insert: "main()$0", | 12 | insert: "main()$0", |
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn main()" | 14 | detail: "fn main()", |
15 | }, | 15 | }, |
16 | CompletionItem { | 16 | CompletionItem { |
17 | label: "with_args", | 17 | label: "with_args", |
@@ -19,6 +19,6 @@ expression: kind_completions | |||
19 | delete: [72; 77), | 19 | delete: [72; 77), |
20 | insert: "with_args($0)", | 20 | insert: "with_args($0)", |
21 | kind: Function, | 21 | kind: Function, |
22 | detail: "fn with_args(x: i32, y: String)" | 22 | detail: "fn with_args(x: i32, y: String)", |
23 | } | 23 | }, |
24 | ] | 24 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap index fec729d48..b62cb7aa1 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls3.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.303360770Z" | 2 | created: "2019-05-23T22:44:40.543731193Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,6 +11,6 @@ expression: kind_completions | |||
11 | delete: [139; 140), | 11 | delete: [139; 140), |
12 | insert: "foo()$0", | 12 | insert: "foo()$0", |
13 | kind: Method, | 13 | kind: Method, |
14 | detail: "fn foo(&self)" | 14 | detail: "fn foo(&self)", |
15 | } | 15 | }, |
16 | ] | 16 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function1.snap index 045e2a4e6..34a44bb70 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function1.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function1.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.987788720Z" | 2 | created: "2019-05-23T22:23:35.075690846Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [41; 41), | 10 | source_range: [41; 41), |
11 | delete: [41; 41), | 11 | delete: [41; 41), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [41; 41), | 17 | source_range: [41; 41), |
18 | delete: [41; 41), | 18 | delete: [41; 41), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [41; 41), | 24 | source_range: [41; 41), |
25 | delete: [41; 41), | 25 | delete: [41; 41), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [41; 41), | 31 | source_range: [41; 41), |
32 | delete: [41; 41), | 32 | delete: [41; 41), |
33 | insert: "return;", | 33 | insert: "return;", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [41; 41), | 38 | source_range: [41; 41), |
39 | delete: [41; 41), | 39 | delete: [41; 41), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function2.snap index b08efa522..ac744f362 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function2.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function2.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.984740354Z" | 2 | created: "2019-05-23T22:23:35.068799431Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,48 +10,48 @@ expression: kind_completions | |||
10 | source_range: [92; 92), | 10 | source_range: [92; 92), |
11 | delete: [92; 92), | 11 | delete: [92; 92), |
12 | insert: "else {$0}", | 12 | insert: "else {$0}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "else if", | 16 | label: "else if", |
17 | source_range: [92; 92), | 17 | source_range: [92; 92), |
18 | delete: [92; 92), | 18 | delete: [92; 92), |
19 | insert: "else if $0 {}", | 19 | insert: "else if $0 {}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "if", | 23 | label: "if", |
24 | source_range: [92; 92), | 24 | source_range: [92; 92), |
25 | delete: [92; 92), | 25 | delete: [92; 92), |
26 | insert: "if $0 {}", | 26 | insert: "if $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "loop", | 30 | label: "loop", |
31 | source_range: [92; 92), | 31 | source_range: [92; 92), |
32 | delete: [92; 92), | 32 | delete: [92; 92), |
33 | insert: "loop {$0}", | 33 | insert: "loop {$0}", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "match", | 37 | label: "match", |
38 | source_range: [92; 92), | 38 | source_range: [92; 92), |
39 | delete: [92; 92), | 39 | delete: [92; 92), |
40 | insert: "match $0 {}", | 40 | insert: "match $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | }, | 42 | }, |
43 | CompletionItem { | 43 | CompletionItem { |
44 | label: "return", | 44 | label: "return", |
45 | source_range: [92; 92), | 45 | source_range: [92; 92), |
46 | delete: [92; 92), | 46 | delete: [92; 92), |
47 | insert: "return;", | 47 | insert: "return;", |
48 | kind: Keyword | 48 | kind: Keyword, |
49 | }, | 49 | }, |
50 | CompletionItem { | 50 | CompletionItem { |
51 | label: "while", | 51 | label: "while", |
52 | source_range: [92; 92), | 52 | source_range: [92; 92), |
53 | delete: [92; 92), | 53 | delete: [92; 92), |
54 | insert: "while $0 {}", | 54 | insert: "while $0 {}", |
55 | kind: Keyword | 55 | kind: Keyword, |
56 | } | 56 | }, |
57 | ] | 57 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function3.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function3.snap index e2b9214fb..1098ecf54 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function3.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function3.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.049699338Z" | 2 | created: "2019-05-23T22:23:35.085655258Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [48; 48), | 10 | source_range: [48; 48), |
11 | delete: [48; 48), | 11 | delete: [48; 48), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [48; 48), | 17 | source_range: [48; 48), |
18 | delete: [48; 48), | 18 | delete: [48; 48), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [48; 48), | 24 | source_range: [48; 48), |
25 | delete: [48; 48), | 25 | delete: [48; 48), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [48; 48), | 31 | source_range: [48; 48), |
32 | delete: [48; 48), | 32 | delete: [48; 48), |
33 | insert: "return $0;", | 33 | insert: "return $0;", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [48; 48), | 38 | source_range: [48; 48), |
39 | delete: [48; 48), | 39 | delete: [48; 48), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function4.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function4.snap index 1ea7eb5ce..3c5eca1ba 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function4.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function4.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.090949782Z" | 2 | created: "2019-05-23T22:44:10.869539856Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [41; 41), | 10 | source_range: [41; 41), |
11 | delete: [41; 41), | 11 | delete: [41; 41), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [41; 41), | 17 | source_range: [41; 41), |
18 | delete: [41; 41), | 18 | delete: [41; 41), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [41; 41), | 24 | source_range: [41; 41), |
25 | delete: [41; 41), | 25 | delete: [41; 41), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [41; 41), | 31 | source_range: [41; 41), |
32 | delete: [41; 41), | 32 | delete: [41; 41), |
33 | insert: "return;", | 33 | insert: "return;", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [41; 41), | 38 | source_range: [41; 41), |
39 | delete: [41; 41), | 39 | delete: [41; 41), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt1.snap index 76d5daf55..71d7e9de8 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt1.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt1.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.988755424Z" | 2 | created: "2019-05-23T22:23:35.066687241Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,20 +10,20 @@ expression: kind_completions | |||
10 | source_range: [17; 17), | 10 | source_range: [17; 17), |
11 | delete: [17; 17), | 11 | delete: [17; 17), |
12 | insert: "crate::", | 12 | insert: "crate::", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "self", | 16 | label: "self", |
17 | source_range: [17; 17), | 17 | source_range: [17; 17), |
18 | delete: [17; 17), | 18 | delete: [17; 17), |
19 | insert: "self", | 19 | insert: "self", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "super", | 23 | label: "super", |
24 | source_range: [17; 17), | 24 | source_range: [17; 17), |
25 | delete: [17; 17), | 25 | delete: [17; 17), |
26 | insert: "super::", | 26 | insert: "super::", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | } | 28 | }, |
29 | ] | 29 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt2.snap index ee8bf4ca1..ad156fb44 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt2.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt2.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.030382527Z" | 2 | created: "2019-05-23T22:44:10.859494330Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [20; 20), | 10 | source_range: [20; 20), |
11 | delete: [20; 20), | 11 | delete: [20; 20), |
12 | insert: "self", | 12 | insert: "self", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "super", | 16 | label: "super", |
17 | source_range: [20; 20), | 17 | source_range: [20; 20), |
18 | delete: [20; 20), | 18 | delete: [20; 20), |
19 | insert: "super::", | 19 | insert: "super::", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt3.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt3.snap index b44db276e..e7b11d532 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt3.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt3.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.073607133Z" | 2 | created: "2019-05-23T22:44:40.506690279Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [24; 24), | 10 | source_range: [24; 24), |
11 | delete: [24; 24), | 11 | delete: [24; 24), |
12 | insert: "self", | 12 | insert: "self", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "super", | 16 | label: "super", |
17 | source_range: [24; 24), | 17 | source_range: [24; 24), |
18 | delete: [24; 24), | 18 | delete: [24; 24), |
19 | insert: "super::", | 19 | insert: "super::", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi1.snap index f220d35c2..e7069dc0c 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi1.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi1.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.989188654Z" | 2 | created: "2019-05-23T22:23:35.082403612Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [83; 83), | 10 | source_range: [83; 83), |
11 | delete: [83; 83), | 11 | delete: [83; 83), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [83; 83), | 17 | source_range: [83; 83), |
18 | delete: [83; 83), | 18 | delete: [83; 83), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [83; 83), | 24 | source_range: [83; 83), |
25 | delete: [83; 83), | 25 | delete: [83; 83), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [83; 83), | 31 | source_range: [83; 83), |
32 | delete: [83; 83), | 32 | delete: [83; 83), |
33 | insert: "return $0;", | 33 | insert: "return $0;", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [83; 83), | 38 | source_range: [83; 83), |
39 | delete: [83; 83), | 39 | delete: [83; 83), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi2.snap index d2093acdf..47beb904b 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi2.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi2.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.036383875Z" | 2 | created: "2019-05-23T22:44:10.871868390Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,34 +10,34 @@ expression: kind_completions | |||
10 | source_range: [83; 83), | 10 | source_range: [83; 83), |
11 | delete: [83; 83), | 11 | delete: [83; 83), |
12 | insert: "if $0 {}", | 12 | insert: "if $0 {}", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "loop", | 16 | label: "loop", |
17 | source_range: [83; 83), | 17 | source_range: [83; 83), |
18 | delete: [83; 83), | 18 | delete: [83; 83), |
19 | insert: "loop {$0}", | 19 | insert: "loop {$0}", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [83; 83), | 24 | source_range: [83; 83), |
25 | delete: [83; 83), | 25 | delete: [83; 83), |
26 | insert: "match $0 {}", | 26 | insert: "match $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "return", | 30 | label: "return", |
31 | source_range: [83; 83), | 31 | source_range: [83; 83), |
32 | delete: [83; 83), | 32 | delete: [83; 83), |
33 | insert: "return $0;", | 33 | insert: "return $0;", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "while", | 37 | label: "while", |
38 | source_range: [83; 83), | 38 | source_range: [83; 83), |
39 | delete: [83; 83), | 39 | delete: [83; 83), |
40 | insert: "while $0 {}", | 40 | insert: "while $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | } | 42 | }, |
43 | ] | 43 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__mod_with_docs.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__mod_with_docs.snap index 1da3c3ba2..f2b26e393 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__mod_with_docs.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__mod_with_docs.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.066918191Z" | 2 | created: "2019-05-23T22:23:35.093689514Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -12,7 +12,7 @@ expression: kind_completions | |||
12 | insert: "my", | 12 | insert: "my", |
13 | kind: Module, | 13 | kind: Module, |
14 | documentation: Documentation( | 14 | documentation: Documentation( |
15 | "Some simple\ndocs describing `mod my`." | 15 | "Some simple\ndocs describing `mod my`.", |
16 | ) | 16 | ), |
17 | } | 17 | }, |
18 | ] | 18 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap index 86bc8679d..cee4898c3 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.161888678Z" | 2 | created: "2019-05-23T22:23:35.133106898Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,14 +10,14 @@ expression: kind_completions | |||
10 | source_range: [89; 89), | 10 | source_range: [89; 89), |
11 | delete: [89; 89), | 11 | delete: [89; 89), |
12 | insert: "Baz", | 12 | insert: "Baz", |
13 | kind: Enum | 13 | kind: Enum, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "Foo", | 16 | label: "Foo", |
17 | source_range: [89; 89), | 17 | source_range: [89; 89), |
18 | delete: [89; 89), | 18 | delete: [89; 89), |
19 | insert: "Foo", | 19 | insert: "Foo", |
20 | kind: Struct | 20 | kind: Struct, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "quux", | 23 | label: "quux", |
@@ -25,6 +25,6 @@ expression: kind_completions | |||
25 | delete: [89; 89), | 25 | delete: [89; 89), |
26 | insert: "quux()$0", | 26 | insert: "quux()$0", |
27 | kind: Function, | 27 | kind: Function, |
28 | detail: "fn quux()" | 28 | detail: "fn quux()", |
29 | } | 29 | }, |
30 | ] | 30 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap index 9f796b7ca..ce18e5bb7 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.180517419Z" | 2 | created: "2019-05-23T22:23:35.134417551Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,7 +10,7 @@ expression: kind_completions | |||
10 | source_range: [101; 101), | 10 | source_range: [101; 101), |
11 | delete: [101; 101), | 11 | delete: [101; 101), |
12 | insert: "Bar", | 12 | insert: "Bar", |
13 | kind: Struct | 13 | kind: Struct, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "quux", | 16 | label: "quux", |
@@ -18,6 +18,6 @@ expression: kind_completions | |||
18 | delete: [101; 101), | 18 | delete: [101; 101), |
19 | insert: "quux()$0", | 19 | insert: "quux()$0", |
20 | kind: Function, | 20 | kind: Function, |
21 | detail: "fn quux()" | 21 | detail: "fn quux()", |
22 | } | 22 | }, |
23 | ] | 23 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__nested_use_tree.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__nested_use_tree.snap index 4920e500e..4c143d28e 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__nested_use_tree.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__nested_use_tree.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.085605313Z" | 2 | created: "2019-05-23T22:23:35.099358768Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [12; 14), | 10 | source_range: [12; 14), |
11 | delete: [12; 14), | 11 | delete: [12; 14), |
12 | insert: "Spam", | 12 | insert: "Spam", |
13 | kind: Struct | 13 | kind: Struct, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "foo", | 16 | label: "foo", |
17 | source_range: [12; 14), | 17 | source_range: [12; 14), |
18 | delete: [12; 14), | 18 | delete: [12; 14), |
19 | insert: "foo", | 19 | insert: "foo", |
20 | kind: Module | 20 | kind: Module, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__no_semi_after_break_continue_in_expr.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__no_semi_after_break_continue_in_expr.snap index 038e7f402..22e25fe3d 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__no_semi_after_break_continue_in_expr.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__no_semi_after_break_continue_in_expr.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:23.999953358Z" | 2 | created: "2019-05-23T22:23:35.085365816Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,48 +10,48 @@ expression: kind_completions | |||
10 | source_range: [106; 108), | 10 | source_range: [106; 108), |
11 | delete: [106; 108), | 11 | delete: [106; 108), |
12 | insert: "break", | 12 | insert: "break", |
13 | kind: Keyword | 13 | kind: Keyword, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "continue", | 16 | label: "continue", |
17 | source_range: [106; 108), | 17 | source_range: [106; 108), |
18 | delete: [106; 108), | 18 | delete: [106; 108), |
19 | insert: "continue", | 19 | insert: "continue", |
20 | kind: Keyword | 20 | kind: Keyword, |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "if", | 23 | label: "if", |
24 | source_range: [106; 108), | 24 | source_range: [106; 108), |
25 | delete: [106; 108), | 25 | delete: [106; 108), |
26 | insert: "if $0 {}", | 26 | insert: "if $0 {}", |
27 | kind: Keyword | 27 | kind: Keyword, |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "loop", | 30 | label: "loop", |
31 | source_range: [106; 108), | 31 | source_range: [106; 108), |
32 | delete: [106; 108), | 32 | delete: [106; 108), |
33 | insert: "loop {$0}", | 33 | insert: "loop {$0}", |
34 | kind: Keyword | 34 | kind: Keyword, |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "match", | 37 | label: "match", |
38 | source_range: [106; 108), | 38 | source_range: [106; 108), |
39 | delete: [106; 108), | 39 | delete: [106; 108), |
40 | insert: "match $0 {}", | 40 | insert: "match $0 {}", |
41 | kind: Keyword | 41 | kind: Keyword, |
42 | }, | 42 | }, |
43 | CompletionItem { | 43 | CompletionItem { |
44 | label: "return", | 44 | label: "return", |
45 | source_range: [106; 108), | 45 | source_range: [106; 108), |
46 | delete: [106; 108), | 46 | delete: [106; 108), |
47 | insert: "return", | 47 | insert: "return", |
48 | kind: Keyword | 48 | kind: Keyword, |
49 | }, | 49 | }, |
50 | CompletionItem { | 50 | CompletionItem { |
51 | label: "while", | 51 | label: "while", |
52 | source_range: [106; 108), | 52 | source_range: [106; 108), |
53 | delete: [106; 108), | 53 | delete: [106; 108), |
54 | insert: "while $0 {}", | 54 | insert: "while $0 {}", |
55 | kind: Keyword | 55 | kind: Keyword, |
56 | } | 56 | }, |
57 | ] | 57 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__postfix_completion_works_for_trivial_path_expression.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__postfix_completion_works_for_trivial_path_expression.snap index 3bbc9e3c4..fcb292596 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__postfix_completion_works_for_trivial_path_expression.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__postfix_completion_works_for_trivial_path_expression.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-04-22T07:37:13.981826301Z" | 2 | created: "2019-05-23T22:23:35.118738523Z" |
3 | creator: insta@0.7.4 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,48 +10,48 @@ expression: kind_completions | |||
10 | source_range: [76; 76), | 10 | source_range: [76; 76), |
11 | delete: [72; 76), | 11 | delete: [72; 76), |
12 | insert: "dbg!(bar)", | 12 | insert: "dbg!(bar)", |
13 | detail: "dbg!(expr)" | 13 | detail: "dbg!(expr)", |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "if", | 16 | label: "if", |
17 | source_range: [76; 76), | 17 | source_range: [76; 76), |
18 | delete: [72; 76), | 18 | delete: [72; 76), |
19 | insert: "if bar {$0}", | 19 | insert: "if bar {$0}", |
20 | detail: "if expr {}" | 20 | detail: "if expr {}", |
21 | }, | 21 | }, |
22 | CompletionItem { | 22 | CompletionItem { |
23 | label: "match", | 23 | label: "match", |
24 | source_range: [76; 76), | 24 | source_range: [76; 76), |
25 | delete: [72; 76), | 25 | delete: [72; 76), |
26 | insert: "match bar {\n ${1:_} => {$0\\},\n}", | 26 | insert: "match bar {\n ${1:_} => {$0\\},\n}", |
27 | detail: "match expr {}" | 27 | detail: "match expr {}", |
28 | }, | 28 | }, |
29 | CompletionItem { | 29 | CompletionItem { |
30 | label: "not", | 30 | label: "not", |
31 | source_range: [76; 76), | 31 | source_range: [76; 76), |
32 | delete: [72; 76), | 32 | delete: [72; 76), |
33 | insert: "!bar", | 33 | insert: "!bar", |
34 | detail: "!expr" | 34 | detail: "!expr", |
35 | }, | 35 | }, |
36 | CompletionItem { | 36 | CompletionItem { |
37 | label: "ref", | 37 | label: "ref", |
38 | source_range: [76; 76), | 38 | source_range: [76; 76), |
39 | delete: [72; 76), | 39 | delete: [72; 76), |
40 | insert: "&bar", | 40 | insert: "&bar", |
41 | detail: "&expr" | 41 | detail: "&expr", |
42 | }, | 42 | }, |
43 | CompletionItem { | 43 | CompletionItem { |
44 | label: "refm", | 44 | label: "refm", |
45 | source_range: [76; 76), | 45 | source_range: [76; 76), |
46 | delete: [72; 76), | 46 | delete: [72; 76), |
47 | insert: "&mut bar", | 47 | insert: "&mut bar", |
48 | detail: "&mut expr" | 48 | detail: "&mut expr", |
49 | }, | 49 | }, |
50 | CompletionItem { | 50 | CompletionItem { |
51 | label: "while", | 51 | label: "while", |
52 | source_range: [76; 76), | 52 | source_range: [76; 76), |
53 | delete: [72; 76), | 53 | delete: [72; 76), |
54 | insert: "while bar {\n$0\n}", | 54 | insert: "while bar {\n$0\n}", |
55 | detail: "while expr {}" | 55 | detail: "while expr {}", |
56 | } | 56 | }, |
57 | ] | 57 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap index ff36df707..16dd18431 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-04-04T14:52:24.525395600Z" | 2 | created: "2019-05-23T22:23:35.140648630Z" |
3 | creator: insta@0.7.4 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,7 +10,7 @@ expression: kind_completions | |||
10 | source_range: [47; 47), | 10 | source_range: [47; 47), |
11 | delete: [47; 47), | 11 | delete: [47; 47), |
12 | insert: "Foo", | 12 | insert: "Foo", |
13 | kind: Struct | 13 | kind: Struct, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "x", | 16 | label: "x", |
@@ -18,6 +18,6 @@ expression: kind_completions | |||
18 | delete: [47; 47), | 18 | delete: [47; 47), |
19 | insert: "x()$0", | 19 | insert: "x()$0", |
20 | kind: Function, | 20 | kind: Function, |
21 | detail: "fn x()" | 21 | detail: "fn x()", |
22 | } | 22 | }, |
23 | ] | 23 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap index baf12cae1..e1af94870 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.174038680Z" | 2 | created: "2019-05-23T22:23:35.141900902Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [25; 25), | 10 | source_range: [25; 25), |
11 | delete: [25; 25), | 11 | delete: [25; 25), |
12 | insert: "Self", | 12 | insert: "Self", |
13 | kind: TypeParam | 13 | kind: TypeParam, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "self", | 16 | label: "self", |
17 | source_range: [25; 25), | 17 | source_range: [25; 25), |
18 | delete: [25; 25), | 18 | delete: [25; 25), |
19 | insert: "self", | 19 | insert: "self", |
20 | kind: Binding | 20 | kind: Binding, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_expressions.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_expressions.snap index fce2d6479..6f41bf76f 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_expressions.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_expressions.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.191576723Z" | 2 | created: "2019-05-23T22:23:35.141901047Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [17; 17), | 10 | source_range: [17; 17), |
11 | delete: [17; 17), | 11 | delete: [17; 17), |
12 | insert: "eprintln!(\"$0 = {:?}\", $0);", | 12 | insert: "eprintln!(\"$0 = {:?}\", $0);", |
13 | kind: Snippet | 13 | kind: Snippet, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "ppd", | 16 | label: "ppd", |
17 | source_range: [17; 17), | 17 | source_range: [17; 17), |
18 | delete: [17; 17), | 18 | delete: [17; 17), |
19 | insert: "eprintln!(\"$0 = {:#?}\", $0);", | 19 | insert: "eprintln!(\"$0 = {:#?}\", $0);", |
20 | kind: Snippet | 20 | kind: Snippet, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_items.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_items.snap index d2b1a5f0e..1eb0adebe 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_items.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_items.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.187670733Z" | 2 | created: "2019-05-23T22:23:35.149234118Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -11,13 +11,13 @@ expression: kind_completions | |||
11 | delete: [66; 66), | 11 | delete: [66; 66), |
12 | insert: "#[test]\nfn ${1:feature}() {\n $0\n}", | 12 | insert: "#[test]\nfn ${1:feature}() {\n $0\n}", |
13 | kind: Snippet, | 13 | kind: Snippet, |
14 | lookup: "tfn" | 14 | lookup: "tfn", |
15 | }, | 15 | }, |
16 | CompletionItem { | 16 | CompletionItem { |
17 | label: "pub(crate)", | 17 | label: "pub(crate)", |
18 | source_range: [66; 66), | 18 | source_range: [66; 66), |
19 | delete: [66; 66), | 19 | delete: [66; 66), |
20 | insert: "pub(crate) $0", | 20 | insert: "pub(crate) $0", |
21 | kind: Snippet | 21 | kind: Snippet, |
22 | } | 22 | }, |
23 | ] | 23 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_const.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_const.snap index 6ad4c5acc..f7bc6177c 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_const.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_const.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.093406123Z" | 2 | created: "2019-05-23T22:23:35.101474826Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -13,7 +13,7 @@ expression: kind_completions | |||
13 | kind: Const, | 13 | kind: Const, |
14 | detail: "const C: i32 = 42;", | 14 | detail: "const C: i32 = 42;", |
15 | documentation: Documentation( | 15 | documentation: Documentation( |
16 | "An associated const" | 16 | "An associated const", |
17 | ) | 17 | ), |
18 | } | 18 | }, |
19 | ] | 19 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_method.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_method.snap index 7c69eebeb..45080a802 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_method.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_method.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-24T16:33:47.990111169Z" | 2 | created: "2019-05-23T22:23:35.102351365Z" |
3 | creator: insta@0.6.3 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -13,7 +13,7 @@ expression: kind_completions | |||
13 | kind: Function, | 13 | kind: Function, |
14 | detail: "fn m()", | 14 | detail: "fn m()", |
15 | documentation: Documentation( | 15 | documentation: Documentation( |
16 | "An associated method" | 16 | "An associated method", |
17 | ) | 17 | ), |
18 | } | 18 | }, |
19 | ] | 19 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_type.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_type.snap index 583bda225..f40065286 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_type.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_associated_type.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.090876030Z" | 2 | created: "2019-05-23T22:23:35.105188762Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -13,7 +13,7 @@ expression: kind_completions | |||
13 | kind: TypeAlias, | 13 | kind: TypeAlias, |
14 | detail: "type T = i32;", | 14 | detail: "type T = i32;", |
15 | documentation: Documentation( | 15 | documentation: Documentation( |
16 | "An associated type" | 16 | "An associated type", |
17 | ) | 17 | ), |
18 | } | 18 | }, |
19 | ] | 19 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_crate.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_crate.snap index 34e70c35d..17e831c84 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_crate.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_crate.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.098574884Z" | 2 | created: "2019-05-23T22:23:35.105336210Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,13 +10,13 @@ expression: kind_completions | |||
10 | source_range: [11; 13), | 10 | source_range: [11; 13), |
11 | delete: [11; 13), | 11 | delete: [11; 13), |
12 | insert: "Spam", | 12 | insert: "Spam", |
13 | kind: Struct | 13 | kind: Struct, |
14 | }, | 14 | }, |
15 | CompletionItem { | 15 | CompletionItem { |
16 | label: "foo", | 16 | label: "foo", |
17 | source_range: [11; 13), | 17 | source_range: [11; 13), |
18 | delete: [11; 13), | 18 | delete: [11; 13), |
19 | insert: "foo", | 19 | insert: "foo", |
20 | kind: Module | 20 | kind: Module, |
21 | } | 21 | }, |
22 | ] | 22 | ] |
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_self.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_self.snap index d15f1905b..d1abc6b5b 100644 --- a/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_self.snap +++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_self.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-02-18T09:22:24.102063333Z" | 2 | created: "2019-05-23T22:23:35.106923266Z" |
3 | creator: insta@0.6.2 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/completion/completion_item.rs | 4 | source: crates/ra_ide_api/src/completion/completion_item.rs |
5 | expression: kind_completions | 5 | expression: kind_completions |
6 | --- | 6 | --- |
@@ -10,6 +10,6 @@ expression: kind_completions | |||
10 | source_range: [26; 26), | 10 | source_range: [26; 26), |
11 | delete: [26; 26), | 11 | delete: [26; 26), |
12 | insert: "Bar", | 12 | insert: "Bar", |
13 | kind: Struct | 13 | kind: Struct, |
14 | } | 14 | }, |
15 | ] | 15 | ] |
diff --git a/crates/ra_ide_api/src/diagnostics.rs b/crates/ra_ide_api/src/diagnostics.rs index 9a0eb2c14..923008708 100644 --- a/crates/ra_ide_api/src/diagnostics.rs +++ b/crates/ra_ide_api/src/diagnostics.rs | |||
@@ -310,28 +310,30 @@ mod tests { | |||
310 | fn test_unresolved_module_diagnostic() { | 310 | fn test_unresolved_module_diagnostic() { |
311 | let (analysis, file_id) = single_file("mod foo;"); | 311 | let (analysis, file_id) = single_file("mod foo;"); |
312 | let diagnostics = analysis.diagnostics(file_id).unwrap(); | 312 | let diagnostics = analysis.diagnostics(file_id).unwrap(); |
313 | assert_debug_snapshot_matches!(diagnostics, @r####"[ | 313 | assert_debug_snapshot_matches!(diagnostics, @r###" |
314 | Diagnostic { | 314 | â‹®[ |
315 | message: "unresolved module", | 315 | â‹® Diagnostic { |
316 | range: [0; 8), | 316 | â‹® message: "unresolved module", |
317 | fix: Some( | 317 | â‹® range: [0; 8), |
318 | SourceChange { | 318 | â‹® fix: Some( |
319 | label: "create module", | 319 | â‹® SourceChange { |
320 | source_file_edits: [], | 320 | â‹® label: "create module", |
321 | file_system_edits: [ | 321 | â‹® source_file_edits: [], |
322 | CreateFile { | 322 | â‹® file_system_edits: [ |
323 | source_root: SourceRootId( | 323 | â‹® CreateFile { |
324 | 0 | 324 | â‹® source_root: SourceRootId( |
325 | ), | 325 | â‹® 0, |
326 | path: "foo.rs" | 326 | â‹® ), |
327 | } | 327 | â‹® path: "foo.rs", |
328 | ], | 328 | â‹® }, |
329 | cursor_position: None | 329 | â‹® ], |
330 | } | 330 | â‹® cursor_position: None, |
331 | ), | 331 | â‹® }, |
332 | severity: Error | 332 | â‹® ), |
333 | } | 333 | â‹® severity: Error, |
334 | ]"####); | 334 | â‹® }, |
335 | â‹®] | ||
336 | "###); | ||
335 | } | 337 | } |
336 | 338 | ||
337 | #[test] | 339 | #[test] |
diff --git a/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap b/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap index 32dd99484..3097977de 100644 --- a/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap +++ b/crates/ra_ide_api/src/display/snapshots/tests__file_structure.snap | |||
@@ -1,6 +1,6 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-04-08T09:44:50.196004400Z" | 2 | created: "2019-05-23T22:23:35.168422050Z" |
3 | creator: insta@0.7.4 | 3 | creator: insta@0.8.1 |
4 | source: crates/ra_ide_api/src/display/structure.rs | 4 | source: crates/ra_ide_api/src/display/structure.rs |
5 | expression: structure | 5 | expression: structure |
6 | --- | 6 | --- |
@@ -12,20 +12,20 @@ expression: structure | |||
12 | node_range: [1; 26), | 12 | node_range: [1; 26), |
13 | kind: STRUCT_DEF, | 13 | kind: STRUCT_DEF, |
14 | detail: None, | 14 | detail: None, |
15 | deprecated: false | 15 | deprecated: false, |
16 | }, | 16 | }, |
17 | StructureNode { | 17 | StructureNode { |
18 | parent: Some( | 18 | parent: Some( |
19 | 0 | 19 | 0, |
20 | ), | 20 | ), |
21 | label: "x", | 21 | label: "x", |
22 | navigation_range: [18; 19), | 22 | navigation_range: [18; 19), |
23 | node_range: [18; 24), | 23 | node_range: [18; 24), |
24 | kind: NAMED_FIELD_DEF, | 24 | kind: NAMED_FIELD_DEF, |
25 | detail: Some( | 25 | detail: Some( |
26 | "i32" | 26 | "i32", |
27 | ), | 27 | ), |
28 | deprecated: false | 28 | deprecated: false, |
29 | }, | 29 | }, |
30 | StructureNode { | 30 | StructureNode { |
31 | parent: None, | 31 | parent: None, |
@@ -34,46 +34,46 @@ expression: structure | |||
34 | node_range: [28; 158), | 34 | node_range: [28; 158), |
35 | kind: MODULE, | 35 | kind: MODULE, |
36 | detail: None, | 36 | detail: None, |
37 | deprecated: false | 37 | deprecated: false, |
38 | }, | 38 | }, |
39 | StructureNode { | 39 | StructureNode { |
40 | parent: Some( | 40 | parent: Some( |
41 | 2 | 41 | 2, |
42 | ), | 42 | ), |
43 | label: "bar1", | 43 | label: "bar1", |
44 | navigation_range: [43; 47), | 44 | navigation_range: [43; 47), |
45 | node_range: [40; 52), | 45 | node_range: [40; 52), |
46 | kind: FN_DEF, | 46 | kind: FN_DEF, |
47 | detail: Some( | 47 | detail: Some( |
48 | "fn()" | 48 | "fn()", |
49 | ), | 49 | ), |
50 | deprecated: false | 50 | deprecated: false, |
51 | }, | 51 | }, |
52 | StructureNode { | 52 | StructureNode { |
53 | parent: Some( | 53 | parent: Some( |
54 | 2 | 54 | 2, |
55 | ), | 55 | ), |
56 | label: "bar2", | 56 | label: "bar2", |
57 | navigation_range: [60; 64), | 57 | navigation_range: [60; 64), |
58 | node_range: [57; 81), | 58 | node_range: [57; 81), |
59 | kind: FN_DEF, | 59 | kind: FN_DEF, |
60 | detail: Some( | 60 | detail: Some( |
61 | "fn<T>(t: T) -> T" | 61 | "fn<T>(t: T) -> T", |
62 | ), | 62 | ), |
63 | deprecated: false | 63 | deprecated: false, |
64 | }, | 64 | }, |
65 | StructureNode { | 65 | StructureNode { |
66 | parent: Some( | 66 | parent: Some( |
67 | 2 | 67 | 2, |
68 | ), | 68 | ), |
69 | label: "bar3", | 69 | label: "bar3", |
70 | navigation_range: [89; 93), | 70 | navigation_range: [89; 93), |
71 | node_range: [86; 156), | 71 | node_range: [86; 156), |
72 | kind: FN_DEF, | 72 | kind: FN_DEF, |
73 | detail: Some( | 73 | detail: Some( |
74 | "fn<A, B>(a: A, b: B) -> Vec< u32 >" | 74 | "fn<A, B>(a: A, b: B) -> Vec< u32 >", |
75 | ), | 75 | ), |
76 | deprecated: false | 76 | deprecated: false, |
77 | }, | 77 | }, |
78 | StructureNode { | 78 | StructureNode { |
79 | parent: None, | 79 | parent: None, |
@@ -82,29 +82,29 @@ expression: structure | |||
82 | node_range: [160; 180), | 82 | node_range: [160; 180), |
83 | kind: ENUM_DEF, | 83 | kind: ENUM_DEF, |
84 | detail: None, | 84 | detail: None, |
85 | deprecated: false | 85 | deprecated: false, |
86 | }, | 86 | }, |
87 | StructureNode { | 87 | StructureNode { |
88 | parent: Some( | 88 | parent: Some( |
89 | 6 | 89 | 6, |
90 | ), | 90 | ), |
91 | label: "X", | 91 | label: "X", |
92 | navigation_range: [169; 170), | 92 | navigation_range: [169; 170), |
93 | node_range: [169; 170), | 93 | node_range: [169; 170), |
94 | kind: ENUM_VARIANT, | 94 | kind: ENUM_VARIANT, |
95 | detail: None, | 95 | detail: None, |
96 | deprecated: false | 96 | deprecated: false, |
97 | }, | 97 | }, |
98 | StructureNode { | 98 | StructureNode { |
99 | parent: Some( | 99 | parent: Some( |
100 | 6 | 100 | 6, |
101 | ), | 101 | ), |
102 | label: "Y", | 102 | label: "Y", |
103 | navigation_range: [172; 173), | 103 | navigation_range: [172; 173), |
104 | node_range: [172; 178), | 104 | node_range: [172; 178), |
105 | kind: ENUM_VARIANT, | 105 | kind: ENUM_VARIANT, |
106 | detail: None, | 106 | detail: None, |
107 | deprecated: false | 107 | deprecated: false, |
108 | }, | 108 | }, |
109 | StructureNode { | 109 | StructureNode { |
110 | parent: None, | 110 | parent: None, |
@@ -113,9 +113,9 @@ expression: structure | |||
113 | node_range: [181; 193), | 113 | node_range: [181; 193), |
114 | kind: TYPE_ALIAS_DEF, | 114 | kind: TYPE_ALIAS_DEF, |
115 | detail: Some( | 115 | detail: Some( |
116 | "()" | 116 | "()", |
117 | ), | 117 | ), |
118 | deprecated: false | 118 | deprecated: false, |
119 | }, | 119 | }, |
120 | StructureNode { | 120 | StructureNode { |
121 | parent: None, | 121 | parent: None, |
@@ -124,9 +124,9 @@ expression: structure | |||
124 | node_range: [194; 213), | 124 | node_range: [194; 213), |
125 | kind: STATIC_DEF, | 125 | kind: STATIC_DEF, |
126 | detail: Some( | 126 | detail: Some( |
127 | "i32" | 127 | "i32", |
128 | ), | 128 | ), |
129 | deprecated: false | 129 | deprecated: false, |
130 | }, | 130 | }, |
131 | StructureNode { | 131 | StructureNode { |
132 | parent: None, | 132 | parent: None, |
@@ -135,9 +135,9 @@ expression: structure | |||
135 | node_range: [214; 232), | 135 | node_range: [214; 232), |
136 | kind: CONST_DEF, | 136 | kind: CONST_DEF, |
137 | detail: Some( | 137 | detail: Some( |
138 | "i32" | 138 | "i32", |
139 | ), | 139 | ), |
140 | deprecated: false | 140 | deprecated: false, |
141 | }, | 141 | }, |
142 | StructureNode { | 142 | StructureNode { |
143 | parent: None, | 143 | parent: None, |
@@ -146,7 +146,7 @@ expression: structure | |||
146 | node_range: [234; 243), | 146 | node_range: [234; 243), |
147 | kind: IMPL_BLOCK, | 147 | kind: IMPL_BLOCK, |
148 | detail: None, | 148 | detail: None, |
149 | deprecated: false | 149 | deprecated: false, |
150 | }, | 150 | }, |
151 | StructureNode { | 151 | StructureNode { |
152 | parent: None, | 152 | parent: None, |
@@ -155,7 +155,7 @@ expression: structure | |||
155 | node_range: [245; 269), | 155 | node_range: [245; 269), |
156 | kind: IMPL_BLOCK, | 156 | kind: IMPL_BLOCK, |
157 | detail: None, | 157 | detail: None, |
158 | deprecated: false | 158 | deprecated: false, |
159 | }, | 159 | }, |
160 | StructureNode { | 160 | StructureNode { |
161 | parent: None, | 161 | parent: None, |
@@ -164,9 +164,9 @@ expression: structure | |||
164 | node_range: [271; 301), | 164 | node_range: [271; 301), |
165 | kind: FN_DEF, | 165 | kind: FN_DEF, |
166 | detail: Some( | 166 | detail: Some( |
167 | "fn()" | 167 | "fn()", |
168 | ), | 168 | ), |
169 | deprecated: true | 169 | deprecated: true, |
170 | }, | 170 | }, |
171 | StructureNode { | 171 | StructureNode { |
172 | parent: None, | 172 | parent: None, |
@@ -175,8 +175,8 @@ expression: structure | |||
175 | node_range: [303; 359), | 175 | node_range: [303; 359), |
176 | kind: FN_DEF, | 176 | kind: FN_DEF, |
177 | detail: Some( | 177 | detail: Some( |
178 | "fn()" | 178 | "fn()", |
179 | ), | 179 | ), |
180 | deprecated: true | 180 | deprecated: true, |
181 | } | 181 | }, |
182 | ] | 182 | ] |
diff --git a/crates/ra_ide_api/src/snapshots/tests__highlighting.snap b/crates/ra_ide_api/src/snapshots/tests__highlighting.snap index 9d4c04db3..9c60aed2a 100644 --- a/crates/ra_ide_api/src/snapshots/tests__highlighting.snap +++ b/crates/ra_ide_api/src/snapshots/tests__highlighting.snap | |||
@@ -1,5 +1,5 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-05-23T12:10:32.628883358Z" | 2 | created: "2019-05-23T22:23:35.242742395Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/syntax_highlighting.rs | 4 | source: crates/ra_ide_api/src/syntax_highlighting.rs |
5 | expression: result | 5 | expression: result |
@@ -8,139 +8,139 @@ Ok( | |||
8 | [ | 8 | [ |
9 | HighlightedRange { | 9 | HighlightedRange { |
10 | range: [1; 24), | 10 | range: [1; 24), |
11 | tag: "attribute" | 11 | tag: "attribute", |
12 | }, | 12 | }, |
13 | HighlightedRange { | 13 | HighlightedRange { |
14 | range: [25; 31), | 14 | range: [25; 31), |
15 | tag: "keyword" | 15 | tag: "keyword", |
16 | }, | 16 | }, |
17 | HighlightedRange { | 17 | HighlightedRange { |
18 | range: [32; 35), | 18 | range: [32; 35), |
19 | tag: "function" | 19 | tag: "function", |
20 | }, | 20 | }, |
21 | HighlightedRange { | 21 | HighlightedRange { |
22 | range: [42; 45), | 22 | range: [42; 45), |
23 | tag: "keyword" | 23 | tag: "keyword", |
24 | }, | 24 | }, |
25 | HighlightedRange { | 25 | HighlightedRange { |
26 | range: [46; 47), | 26 | range: [46; 47), |
27 | tag: "function" | 27 | tag: "function", |
28 | }, | 28 | }, |
29 | HighlightedRange { | 29 | HighlightedRange { |
30 | range: [49; 52), | 30 | range: [49; 52), |
31 | tag: "text" | 31 | tag: "text", |
32 | }, | 32 | }, |
33 | HighlightedRange { | 33 | HighlightedRange { |
34 | range: [58; 61), | 34 | range: [58; 61), |
35 | tag: "keyword" | 35 | tag: "keyword", |
36 | }, | 36 | }, |
37 | HighlightedRange { | 37 | HighlightedRange { |
38 | range: [62; 63), | 38 | range: [62; 63), |
39 | tag: "function" | 39 | tag: "function", |
40 | }, | 40 | }, |
41 | HighlightedRange { | 41 | HighlightedRange { |
42 | range: [65; 68), | 42 | range: [65; 68), |
43 | tag: "text" | 43 | tag: "text", |
44 | }, | 44 | }, |
45 | HighlightedRange { | 45 | HighlightedRange { |
46 | range: [73; 75), | 46 | range: [73; 75), |
47 | tag: "keyword" | 47 | tag: "keyword", |
48 | }, | 48 | }, |
49 | HighlightedRange { | 49 | HighlightedRange { |
50 | range: [76; 79), | 50 | range: [76; 79), |
51 | tag: "function" | 51 | tag: "function", |
52 | }, | 52 | }, |
53 | HighlightedRange { | 53 | HighlightedRange { |
54 | range: [80; 81), | 54 | range: [80; 81), |
55 | tag: "type" | 55 | tag: "type", |
56 | }, | 56 | }, |
57 | HighlightedRange { | 57 | HighlightedRange { |
58 | range: [80; 81), | 58 | range: [80; 81), |
59 | tag: "function" | 59 | tag: "function", |
60 | }, | 60 | }, |
61 | HighlightedRange { | 61 | HighlightedRange { |
62 | range: [88; 89), | 62 | range: [88; 89), |
63 | tag: "type" | 63 | tag: "type", |
64 | }, | 64 | }, |
65 | HighlightedRange { | 65 | HighlightedRange { |
66 | range: [96; 110), | 66 | range: [96; 110), |
67 | tag: "macro" | 67 | tag: "macro", |
68 | }, | 68 | }, |
69 | HighlightedRange { | 69 | HighlightedRange { |
70 | range: [117; 127), | 70 | range: [117; 127), |
71 | tag: "comment" | 71 | tag: "comment", |
72 | }, | 72 | }, |
73 | HighlightedRange { | 73 | HighlightedRange { |
74 | range: [128; 130), | 74 | range: [128; 130), |
75 | tag: "keyword" | 75 | tag: "keyword", |
76 | }, | 76 | }, |
77 | HighlightedRange { | 77 | HighlightedRange { |
78 | range: [131; 135), | 78 | range: [131; 135), |
79 | tag: "function" | 79 | tag: "function", |
80 | }, | 80 | }, |
81 | HighlightedRange { | 81 | HighlightedRange { |
82 | range: [145; 153), | 82 | range: [145; 153), |
83 | tag: "macro" | 83 | tag: "macro", |
84 | }, | 84 | }, |
85 | HighlightedRange { | 85 | HighlightedRange { |
86 | range: [154; 166), | 86 | range: [154; 166), |
87 | tag: "string" | 87 | tag: "string", |
88 | }, | 88 | }, |
89 | HighlightedRange { | 89 | HighlightedRange { |
90 | range: [168; 170), | 90 | range: [168; 170), |
91 | tag: "literal" | 91 | tag: "literal", |
92 | }, | 92 | }, |
93 | HighlightedRange { | 93 | HighlightedRange { |
94 | range: [178; 181), | 94 | range: [178; 181), |
95 | tag: "keyword" | 95 | tag: "keyword", |
96 | }, | 96 | }, |
97 | HighlightedRange { | 97 | HighlightedRange { |
98 | range: [182; 185), | 98 | range: [182; 185), |
99 | tag: "keyword" | 99 | tag: "keyword", |
100 | }, | 100 | }, |
101 | HighlightedRange { | 101 | HighlightedRange { |
102 | range: [186; 189), | 102 | range: [186; 189), |
103 | tag: "macro" | 103 | tag: "macro", |
104 | }, | 104 | }, |
105 | HighlightedRange { | 105 | HighlightedRange { |
106 | range: [197; 200), | 106 | range: [197; 200), |
107 | tag: "macro" | 107 | tag: "macro", |
108 | }, | 108 | }, |
109 | HighlightedRange { | 109 | HighlightedRange { |
110 | range: [192; 195), | 110 | range: [192; 195), |
111 | tag: "text" | 111 | tag: "text", |
112 | }, | 112 | }, |
113 | HighlightedRange { | 113 | HighlightedRange { |
114 | range: [208; 211), | 114 | range: [208; 211), |
115 | tag: "macro" | 115 | tag: "macro", |
116 | }, | 116 | }, |
117 | HighlightedRange { | 117 | HighlightedRange { |
118 | range: [212; 216), | 118 | range: [212; 216), |
119 | tag: "macro" | 119 | tag: "macro", |
120 | }, | 120 | }, |
121 | HighlightedRange { | 121 | HighlightedRange { |
122 | range: [226; 227), | 122 | range: [226; 227), |
123 | tag: "literal" | 123 | tag: "literal", |
124 | }, | 124 | }, |
125 | HighlightedRange { | 125 | HighlightedRange { |
126 | range: [232; 233), | 126 | range: [232; 233), |
127 | tag: "literal" | 127 | tag: "literal", |
128 | }, | 128 | }, |
129 | HighlightedRange { | 129 | HighlightedRange { |
130 | range: [242; 248), | 130 | range: [242; 248), |
131 | tag: "keyword.unsafe" | 131 | tag: "keyword.unsafe", |
132 | }, | 132 | }, |
133 | HighlightedRange { | 133 | HighlightedRange { |
134 | range: [251; 254), | 134 | range: [251; 254), |
135 | tag: "text" | 135 | tag: "text", |
136 | }, | 136 | }, |
137 | HighlightedRange { | 137 | HighlightedRange { |
138 | range: [255; 262), | 138 | range: [255; 262), |
139 | tag: "text" | 139 | tag: "text", |
140 | }, | 140 | }, |
141 | HighlightedRange { | 141 | HighlightedRange { |
142 | range: [263; 264), | 142 | range: [263; 264), |
143 | tag: "literal" | 143 | tag: "literal", |
144 | } | 144 | }, |
145 | ] | 145 | ], |
146 | ) | 146 | ) |
diff --git a/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap b/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap index 890426db7..431de5c55 100644 --- a/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap +++ b/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap | |||
@@ -1,8 +1,8 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-24T08:39:53.759318522+00:00" | 2 | created: "2019-05-23T22:23:35.215905447Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/references.rs | ||
4 | expression: "&source_change" | 5 | expression: "&source_change" |
5 | source: crates/ra_ide_api/src/rename.rs | ||
6 | --- | 6 | --- |
7 | Some( | 7 | Some( |
8 | SourceChange { | 8 | SourceChange { |
@@ -10,29 +10,29 @@ Some( | |||
10 | source_file_edits: [ | 10 | source_file_edits: [ |
11 | SourceFileEdit { | 11 | SourceFileEdit { |
12 | file_id: FileId( | 12 | file_id: FileId( |
13 | 2 | 13 | 2, |
14 | ), | 14 | ), |
15 | edit: TextEdit { | 15 | edit: TextEdit { |
16 | atoms: [ | 16 | atoms: [ |
17 | AtomTextEdit { | 17 | AtomTextEdit { |
18 | delete: [4; 7), | 18 | delete: [4; 7), |
19 | insert: "foo2" | 19 | insert: "foo2", |
20 | } | 20 | }, |
21 | ] | 21 | ], |
22 | } | 22 | }, |
23 | } | 23 | }, |
24 | ], | 24 | ], |
25 | file_system_edits: [ | 25 | file_system_edits: [ |
26 | MoveFile { | 26 | MoveFile { |
27 | src: FileId( | 27 | src: FileId( |
28 | 3 | 28 | 3, |
29 | ), | 29 | ), |
30 | dst_source_root: SourceRootId( | 30 | dst_source_root: SourceRootId( |
31 | 0 | 31 | 0, |
32 | ), | 32 | ), |
33 | dst_path: "bar/foo2.rs" | 33 | dst_path: "bar/foo2.rs", |
34 | } | 34 | }, |
35 | ], | 35 | ], |
36 | cursor_position: None | 36 | cursor_position: None, |
37 | } | 37 | }, |
38 | ) | 38 | ) |
diff --git a/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap b/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap index e96bf5c02..aaff9b4b5 100644 --- a/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap +++ b/crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap | |||
@@ -1,8 +1,8 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:45:00.975229300+00:00" | 2 | created: "2019-05-23T22:23:35.213830371Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/references.rs | ||
4 | expression: "&source_change" | 5 | expression: "&source_change" |
5 | source: "crates\\ra_ide_api\\src\\rename.rs" | ||
6 | --- | 6 | --- |
7 | Some( | 7 | Some( |
8 | SourceChange { | 8 | SourceChange { |
@@ -10,29 +10,29 @@ Some( | |||
10 | source_file_edits: [ | 10 | source_file_edits: [ |
11 | SourceFileEdit { | 11 | SourceFileEdit { |
12 | file_id: FileId( | 12 | file_id: FileId( |
13 | 1 | 13 | 1, |
14 | ), | 14 | ), |
15 | edit: TextEdit { | 15 | edit: TextEdit { |
16 | atoms: [ | 16 | atoms: [ |
17 | AtomTextEdit { | 17 | AtomTextEdit { |
18 | delete: [4; 7), | 18 | delete: [4; 7), |
19 | insert: "foo2" | 19 | insert: "foo2", |
20 | } | 20 | }, |
21 | ] | 21 | ], |
22 | } | 22 | }, |
23 | } | 23 | }, |
24 | ], | 24 | ], |
25 | file_system_edits: [ | 25 | file_system_edits: [ |
26 | MoveFile { | 26 | MoveFile { |
27 | src: FileId( | 27 | src: FileId( |
28 | 2 | 28 | 2, |
29 | ), | 29 | ), |
30 | dst_source_root: SourceRootId( | 30 | dst_source_root: SourceRootId( |
31 | 0 | 31 | 0, |
32 | ), | 32 | ), |
33 | dst_path: "foo2/mod.rs" | 33 | dst_path: "foo2/mod.rs", |
34 | } | 34 | }, |
35 | ], | 35 | ], |
36 | cursor_position: None | 36 | cursor_position: None, |
37 | } | 37 | }, |
38 | ) | 38 | ) |
diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables.snap b/crates/ra_ide_api/src/snapshots/tests__runnables.snap index 71bd7a4bd..de2fadd7f 100644 --- a/crates/ra_ide_api/src/snapshots/tests__runnables.snap +++ b/crates/ra_ide_api/src/snapshots/tests__runnables.snap | |||
@@ -1,24 +1,24 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:45:00.975229300+00:00" | 2 | created: "2019-05-23T22:23:35.217100106Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/runnables.rs | ||
4 | expression: "&runnables" | 5 | expression: "&runnables" |
5 | source: "crates\\ra_ide_api\\src\\runnables.rs" | ||
6 | --- | 6 | --- |
7 | [ | 7 | [ |
8 | Runnable { | 8 | Runnable { |
9 | range: [1; 21), | 9 | range: [1; 21), |
10 | kind: Bin | 10 | kind: Bin, |
11 | }, | 11 | }, |
12 | Runnable { | 12 | Runnable { |
13 | range: [22; 46), | 13 | range: [22; 46), |
14 | kind: Test { | 14 | kind: Test { |
15 | name: "test_foo" | 15 | name: "test_foo", |
16 | } | 16 | }, |
17 | }, | 17 | }, |
18 | Runnable { | 18 | Runnable { |
19 | range: [47; 81), | 19 | range: [47; 81), |
20 | kind: Test { | 20 | kind: Test { |
21 | name: "test_foo" | 21 | name: "test_foo", |
22 | } | 22 | }, |
23 | } | 23 | }, |
24 | ] | 24 | ] |
diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap b/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap index a28dd8952..23993a97f 100644 --- a/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap +++ b/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap | |||
@@ -1,20 +1,20 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:45:00.976230700+00:00" | 2 | created: "2019-05-23T22:23:35.219258850Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/runnables.rs | ||
4 | expression: "&runnables" | 5 | expression: "&runnables" |
5 | source: "crates\\ra_ide_api\\src\\runnables.rs" | ||
6 | --- | 6 | --- |
7 | [ | 7 | [ |
8 | Runnable { | 8 | Runnable { |
9 | range: [1; 59), | 9 | range: [1; 59), |
10 | kind: TestMod { | 10 | kind: TestMod { |
11 | path: "test_mod" | 11 | path: "test_mod", |
12 | } | 12 | }, |
13 | }, | 13 | }, |
14 | Runnable { | 14 | Runnable { |
15 | range: [28; 57), | 15 | range: [28; 57), |
16 | kind: Test { | 16 | kind: Test { |
17 | name: "test_foo1" | 17 | name: "test_foo1", |
18 | } | 18 | }, |
19 | } | 19 | }, |
20 | ] | 20 | ] |
diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap b/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap index 79f07bef9..c516a61df 100644 --- a/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap +++ b/crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap | |||
@@ -1,20 +1,20 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:45:00.979218100+00:00" | 2 | created: "2019-05-23T22:23:35.219671663Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/runnables.rs | ||
4 | expression: "&runnables" | 5 | expression: "&runnables" |
5 | source: "crates\\ra_ide_api\\src\\runnables.rs" | ||
6 | --- | 6 | --- |
7 | [ | 7 | [ |
8 | Runnable { | 8 | Runnable { |
9 | range: [41; 115), | 9 | range: [41; 115), |
10 | kind: TestMod { | 10 | kind: TestMod { |
11 | path: "foo::bar::test_mod" | 11 | path: "foo::bar::test_mod", |
12 | } | 12 | }, |
13 | }, | 13 | }, |
14 | Runnable { | 14 | Runnable { |
15 | range: [68; 105), | 15 | range: [68; 105), |
16 | kind: Test { | 16 | kind: Test { |
17 | name: "test_foo1" | 17 | name: "test_foo1", |
18 | } | 18 | }, |
19 | } | 19 | }, |
20 | ] | 20 | ] |
diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap b/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap index d199e9073..b02e6707e 100644 --- a/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap +++ b/crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap | |||
@@ -1,20 +1,20 @@ | |||
1 | --- | 1 | --- |
2 | created: "2019-01-22T14:45:01.016119500+00:00" | 2 | created: "2019-05-23T22:23:35.224315047Z" |
3 | creator: [email protected] | 3 | creator: [email protected] |
4 | source: crates/ra_ide_api/src/runnables.rs | ||
4 | expression: "&runnables" | 5 | expression: "&runnables" |
5 | source: "crates\\ra_ide_api\\src\\runnables.rs" | ||
6 | --- | 6 | --- |
7 | [ | 7 | [ |
8 | Runnable { | 8 | Runnable { |
9 | range: [23; 85), | 9 | range: [23; 85), |
10 | kind: TestMod { | 10 | kind: TestMod { |
11 | path: "foo::test_mod" | 11 | path: "foo::test_mod", |
12 | } | 12 | }, |
13 | }, | 13 | }, |
14 | Runnable { | 14 | Runnable { |
15 | range: [46; 79), | 15 | range: [46; 79), |
16 | kind: Test { | 16 | kind: Test { |
17 | name: "test_foo1" | 17 | name: "test_foo1", |
18 | } | 18 | }, |
19 | } | 19 | }, |
20 | ] | 20 | ] |
diff --git a/crates/ra_ide_api/src/syntax_highlighting.rs b/crates/ra_ide_api/src/syntax_highlighting.rs index 77c9ae3b1..7bba7a550 100644 --- a/crates/ra_ide_api/src/syntax_highlighting.rs +++ b/crates/ra_ide_api/src/syntax_highlighting.rs | |||
@@ -2,6 +2,7 @@ use rustc_hash::FxHashSet; | |||
2 | 2 | ||
3 | use ra_syntax::{ast, AstNode, TextRange, Direction, SyntaxKind, SyntaxKind::*, SyntaxElement, T}; | 3 | use ra_syntax::{ast, AstNode, TextRange, Direction, SyntaxKind, SyntaxKind::*, SyntaxElement, T}; |
4 | use ra_db::SourceDatabase; | 4 | use ra_db::SourceDatabase; |
5 | use ra_prof::profile; | ||
5 | 6 | ||
6 | use crate::{FileId, db::RootDatabase}; | 7 | use crate::{FileId, db::RootDatabase}; |
7 | 8 | ||
@@ -27,6 +28,8 @@ fn is_control_keyword(kind: SyntaxKind) -> bool { | |||
27 | } | 28 | } |
28 | 29 | ||
29 | pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec<HighlightedRange> { | 30 | pub(crate) fn highlight(db: &RootDatabase, file_id: FileId) -> Vec<HighlightedRange> { |
31 | let _p = profile("highlight"); | ||
32 | |||
30 | let source_file = db.parse(file_id); | 33 | let source_file = db.parse(file_id); |
31 | 34 | ||
32 | // Visited nodes to handle highlighting priorities | 35 | // Visited nodes to handle highlighting priorities |
diff --git a/crates/ra_parser/src/grammar/items.rs b/crates/ra_parser/src/grammar/items.rs index 6728e395f..7718fbe6a 100644 --- a/crates/ra_parser/src/grammar/items.rs +++ b/crates/ra_parser/src/grammar/items.rs | |||
@@ -103,7 +103,7 @@ pub(super) fn maybe_item(p: &mut Parser, m: Marker, flavor: ItemFlavor) -> Resul | |||
103 | p.bump_remap(T![auto]); | 103 | p.bump_remap(T![auto]); |
104 | has_mods = true; | 104 | has_mods = true; |
105 | } | 105 | } |
106 | if p.at(IDENT) && p.at_contextual_kw("default") && p.nth(1) == T![impl ] { | 106 | if p.at(IDENT) && p.at_contextual_kw("default") && p.nth(1) == T![impl] { |
107 | p.bump_remap(T![default]); | 107 | p.bump_remap(T![default]); |
108 | has_mods = true; | 108 | has_mods = true; |
109 | } | 109 | } |
@@ -161,7 +161,7 @@ pub(super) fn maybe_item(p: &mut Parser, m: Marker, flavor: ItemFlavor) -> Resul | |||
161 | 161 | ||
162 | // test unsafe_default_impl | 162 | // test unsafe_default_impl |
163 | // unsafe default impl Foo {} | 163 | // unsafe default impl Foo {} |
164 | T![impl ] => { | 164 | T![impl] => { |
165 | traits::impl_block(p); | 165 | traits::impl_block(p); |
166 | m.complete(p, IMPL_BLOCK); | 166 | m.complete(p, IMPL_BLOCK); |
167 | } | 167 | } |
diff --git a/crates/ra_parser/src/grammar/items/traits.rs b/crates/ra_parser/src/grammar/items/traits.rs index 09ab3bfd4..5fcacfbff 100644 --- a/crates/ra_parser/src/grammar/items/traits.rs +++ b/crates/ra_parser/src/grammar/items/traits.rs | |||
@@ -44,7 +44,7 @@ pub(crate) fn trait_item_list(p: &mut Parser) { | |||
44 | // test impl_block | 44 | // test impl_block |
45 | // impl Foo {} | 45 | // impl Foo {} |
46 | pub(super) fn impl_block(p: &mut Parser) { | 46 | pub(super) fn impl_block(p: &mut Parser) { |
47 | assert!(p.at(T![impl ])); | 47 | assert!(p.at(T![impl])); |
48 | p.bump(); | 48 | p.bump(); |
49 | if choose_type_params_over_qpath(p) { | 49 | if choose_type_params_over_qpath(p) { |
50 | type_params::opt_type_param_list(p); | 50 | type_params::opt_type_param_list(p); |
@@ -130,7 +130,7 @@ fn choose_type_params_over_qpath(p: &Parser) -> bool { | |||
130 | // impl impl NotType {} | 130 | // impl impl NotType {} |
131 | // impl Trait2 for impl NotType {} | 131 | // impl Trait2 for impl NotType {} |
132 | pub(crate) fn impl_type(p: &mut Parser) { | 132 | pub(crate) fn impl_type(p: &mut Parser) { |
133 | if p.at(T![impl ]) { | 133 | if p.at(T![impl]) { |
134 | p.error("expected trait or type"); | 134 | p.error("expected trait or type"); |
135 | return; | 135 | return; |
136 | } | 136 | } |
diff --git a/crates/ra_parser/src/grammar/type_params.rs b/crates/ra_parser/src/grammar/type_params.rs index 4bbfed780..ef59b59d3 100644 --- a/crates/ra_parser/src/grammar/type_params.rs +++ b/crates/ra_parser/src/grammar/type_params.rs | |||
@@ -150,7 +150,7 @@ pub(super) fn opt_where_clause(p: &mut Parser) { | |||
150 | fn is_where_predicate(p: &mut Parser) -> bool { | 150 | fn is_where_predicate(p: &mut Parser) -> bool { |
151 | match p.current() { | 151 | match p.current() { |
152 | LIFETIME => true, | 152 | LIFETIME => true, |
153 | T![impl ] => false, | 153 | T![impl] => false, |
154 | token => types::TYPE_FIRST.contains(token), | 154 | token => types::TYPE_FIRST.contains(token), |
155 | } | 155 | } |
156 | } | 156 | } |
@@ -170,7 +170,7 @@ fn where_predicate(p: &mut Parser) { | |||
170 | p.error("expected colon"); | 170 | p.error("expected colon"); |
171 | } | 171 | } |
172 | } | 172 | } |
173 | T![impl ] => { | 173 | T![impl] => { |
174 | p.error("expected lifetime or type"); | 174 | p.error("expected lifetime or type"); |
175 | } | 175 | } |
176 | _ => { | 176 | _ => { |
diff --git a/crates/ra_parser/src/grammar/types.rs b/crates/ra_parser/src/grammar/types.rs index 438e3ab0e..c0b722569 100644 --- a/crates/ra_parser/src/grammar/types.rs +++ b/crates/ra_parser/src/grammar/types.rs | |||
@@ -25,7 +25,7 @@ fn type_with_bounds_cond(p: &mut Parser, allow_bounds: bool) { | |||
25 | T![_] => placeholder_type(p), | 25 | T![_] => placeholder_type(p), |
26 | T![fn] | T![unsafe] | T![extern] => fn_pointer_type(p), | 26 | T![fn] | T![unsafe] | T![extern] => fn_pointer_type(p), |
27 | T![for] => for_type(p), | 27 | T![for] => for_type(p), |
28 | T![impl ] => impl_trait_type(p), | 28 | T![impl] => impl_trait_type(p), |
29 | T![dyn ] => dyn_trait_type(p), | 29 | T![dyn ] => dyn_trait_type(p), |
30 | // Some path types are not allowed to have bounds (no plus) | 30 | // Some path types are not allowed to have bounds (no plus) |
31 | T![<] => path_type_(p, allow_bounds), | 31 | T![<] => path_type_(p, allow_bounds), |
@@ -221,7 +221,7 @@ pub(super) fn for_type(p: &mut Parser) { | |||
221 | // test impl_trait_type | 221 | // test impl_trait_type |
222 | // type A = impl Iterator<Item=Foo<'a>> + 'a; | 222 | // type A = impl Iterator<Item=Foo<'a>> + 'a; |
223 | fn impl_trait_type(p: &mut Parser) { | 223 | fn impl_trait_type(p: &mut Parser) { |
224 | assert!(p.at(T![impl ])); | 224 | assert!(p.at(T![impl])); |
225 | let m = p.start(); | 225 | let m = p.start(); |
226 | p.bump(); | 226 | p.bump(); |
227 | type_params::bounds_without_colon(p); | 227 | type_params::bounds_without_colon(p); |