about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--crates/ra_hir/src/code_model_api.rs16
-rw-r--r--crates/ra_hir/src/code_model_impl/function.rs1
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__bug_484.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__bug_585.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_array.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_backwards.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_basics.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_binary_op.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_enum.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_field_autoderef.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_function_generics.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_generic_chain.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_generics_in_patterns.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_inherent_method.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_let.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_literals.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_paths.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_pattern.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_refs.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_self.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_struct.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_struct_generics.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_tuple.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__infer_unary_op.snap10
-rw-r--r--crates/ra_hir/src/ty/snapshots/tests__no_panic_on_field_of_enum.snap10
-rw-r--r--crates/ra_ide_api/src/completion/completion_item.rs20
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_for.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_if_let.snap13
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__bindings_from_let.snap13
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops1.snap17
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__completes_break_and_continue_in_loops2.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__deeply_nested_use_tree.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__dont_add_semi_after_return_if_not_a_statement.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_if_already_call.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__dont_render_function_parens_in_use_item.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__dont_show_both_completions_for_shadowing.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion1.snap14
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion2.snap14
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion3.snap14
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls1.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__inserts_parens_for_function_calls2.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function1.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function2.snap17
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function3.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_function4.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt1.snap13
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt2.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__keywords_in_use_stmt3.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi1.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__last_return_in_block_has_semi2.snap15
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__method_completion.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__module_items.snap13
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__module_items_in_nested_modules.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__nested_use_tree.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__no_non_self_method.snap10
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__no_semi_after_break_continue_in_expr.snap17
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__no_struct_field_completion_for_method_call.snap10
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_last_param.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_nth_param.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_trait_param.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__reference_completion.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__return_type.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__self_in_methods.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_expressions.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__snippets_in_items.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion.snap11
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_autoderef.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_self.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_crate.snap12
-rw-r--r--crates/ra_ide_api/src/completion/snapshots/completion_item__use_item_starting_with_self.snap11
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__highlight_query_group_macro.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__rename_mod.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__rename_mod_in_dir.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__runnables.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__runnables_module.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__runnables_multiple_depth_module.snap10
-rw-r--r--crates/ra_ide_api/src/snapshots/tests__runnables_one_depth_layer_module.snap10
-rw-r--r--crates/ra_ide_api/tests/test/snapshots/test__unresolved_module_diagnostic.snap10
-rw-r--r--crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap10
-rw-r--r--crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap10
-rw-r--r--crates/ra_lsp_server/src/conv.rs12
83 files changed, 641 insertions, 319 deletions
diff --git a/crates/ra_hir/src/code_model_api.rs b/crates/ra_hir/src/code_model_api.rs
index 88eda5ed0fd..9ae620efd4c 100644
--- a/crates/ra_hir/src/code_model_api.rs
+++ b/crates/ra_hir/src/code_model_api.rs
@@ -2,7 +2,7 @@ use std::sync::Arc;
 
 use relative_path::RelativePathBuf;
 use ra_db::{CrateId, FileId};
-use ra_syntax::{ast, TreeArc, SyntaxNode};
+use ra_syntax::{ast::{self, AstNode, DocCommentsOwner}, TreeArc, SyntaxNode};
 
 use crate::{
     Name, DefId, Path, PerNs, ScopesWithSyntaxMapping, Ty, HirFileId,
@@ -352,6 +352,20 @@ impl Function {
     pub fn generic_params(&self, db: &impl HirDatabase) -> Arc<GenericParams> {
         db.generic_params(self.def_id)
     }
+
+    pub fn docs(&self, db: &impl HirDatabase) -> Option<String> {
+        let def_loc = self.def_id.loc(db);
+        let syntax = db.file_item(def_loc.source_item_id);
+        let fn_def = ast::FnDef::cast(&syntax).expect("fn def should point to FnDef node");
+
+        // doc_comment_text unconditionally returns a String
+        let comments = fn_def.doc_comment_text();
+        if comments.is_empty() {
+            None
+        } else {
+            Some(comments)
+        }
+    }
 }
 
 #[derive(Debug, Clone, PartialEq, Eq, Hash)]
diff --git a/crates/ra_hir/src/code_model_impl/function.rs b/crates/ra_hir/src/code_model_impl/function.rs
index 66d7e1713f1..c68c6bfbf0f 100644
--- a/crates/ra_hir/src/code_model_impl/function.rs
+++ b/crates/ra_hir/src/code_model_impl/function.rs
@@ -72,6 +72,7 @@ impl FnSignature {
         } else {
             TypeRef::unit()
         };
+
         let sig = FnSignature {
             name,
             params,
diff --git a/crates/ra_hir/src/ty/snapshots/tests__bug_484.snap b/crates/ra_hir/src/ty/snapshots/tests__bug_484.snap
index eeb3061d371..28f57623d11 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__bug_484.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__bug_484.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662863951+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [11; 37) '{    l... {}; }': ()
 [20; 21) 'x': ()
 [24; 34) 'if true {}': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__bug_585.snap b/crates/ra_hir/src/ty/snapshots/tests__bug_585.snap
index 073009bbce2..e7b42e413c0 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__bug_585.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__bug_585.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662863969+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [11; 89) '{     ...   } }': ()
 [17; 21) 'X {}': [unknown]
 [27; 87) 'match ...     }': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap
index fb261f1c0f2..2719f592ed0 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_adt_pattern.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662935249+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [68; 262) '{     ...  d; }': ()
 [78; 79) 'e': E
 [82; 95) 'E::A { x: 3 }': E
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap
index 2fc613e26f3..3f2faa598db 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_array.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662961921+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [9; 10) 'x': &str
 [18; 19) 'y': isize
 [28; 293) '{     ... []; }': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_backwards.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_backwards.snap
index 12f0d8c907e..5c74bd8c78f 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_backwards.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_backwards.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662902243+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [14; 15) 'x': u32
 [22; 24) '{}': ()
 [78; 231) '{     ...t &c }': &mut &f64
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_basics.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_basics.snap
index eba8126e92a..4b0863558df 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_basics.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_basics.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662874226+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [9; 10) 'a': u32
 [17; 18) 'b': isize
 [27; 28) 'c': !
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_binary_op.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_binary_op.snap
index 3b750ec450e..c506bcadd5f 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_binary_op.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_binary_op.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662972146+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [6; 7) 'x': bool
 [22; 34) '{     0i32 }': i32
 [28; 32) '0i32': i32
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_enum.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_enum.snap
index 8018ff025d5..bc8b84272bc 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_enum.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_enum.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.662949719+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.880187500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [48; 82) '{   E:...:V2; }': ()
 [52; 70) 'E::V1 ...d: 1 }': E
 [67; 68) '1': u32
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_field_autoderef.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_field_autoderef.snap
index 1943ef079cc..f092fd3192b 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_field_autoderef.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_field_autoderef.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.671554939+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.955954900+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [44; 45) 'a': A
 [50; 213) '{     ...5.b; }': ()
 [60; 62) 'a1': A
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_function_generics.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_function_generics.snap
index 386acc0b3be..7203ad1e2a5 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_function_generics.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_function_generics.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.669112954+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.954958500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [10; 11) 't': [unknown]
 [21; 26) '{ t }': [unknown]
 [23; 24) 't': [unknown]
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_generic_chain.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_generic_chain.snap
index 7a64e4f95a1..4435180a105 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_generic_chain.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_generic_chain.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.672467086+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.961936900+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [53; 57) 'self': A<[unknown]>
 [65; 87) '{     ...     }': [unknown]
 [75; 79) 'self': A<[unknown]>
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_generics_in_patterns.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_generics_in_patterns.snap
index ae38ec2fbd1..fae7ab0ddb4 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_generics_in_patterns.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_generics_in_patterns.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.683908196+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.970913200+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [79; 81) 'a1': A<u32>
 [91; 92) 'o': Option<u64>
 [107; 244) '{     ...  }; }': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_inherent_method.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_inherent_method.snap
index 298dac585c8..b3c706aca64 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_inherent_method.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_inherent_method.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.670255659+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.968918800+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [32; 36) 'self': A
 [38; 39) 'x': u32
 [53; 55) '{}': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_let.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_let.snap
index aa4e4cc63e4..0d085071afe 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_let.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_let.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.666406651+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.963931700+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [11; 71) '{     ...= b; }': ()
 [21; 22) 'a': isize
 [25; 31) '1isize': isize
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_literals.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_literals.snap
index 00c7e639efb..e287a100e49 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_literals.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_literals.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.666200994+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.974903100+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [11; 201) '{     ...o"#; }': ()
 [17; 21) '5i32': i32
 [27; 34) '"hello"': &str
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_paths.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_paths.snap
index 0924cdc804c..0bceffaef6d 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_paths.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_paths.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.671399345+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:44:59.975899500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [15; 20) '{ 1 }': u32
 [17; 18) '1': u32
 [48; 53) '{ 1 }': u32
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_pattern.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_pattern.snap
index b22b71765af..1da46daf8f3 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_pattern.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_pattern.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.677661229+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.037734500+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [9; 10) 'x': &i32
 [18; 369) '{     ...o_x; }': ()
 [28; 29) 'y': &i32
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_refs.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_refs.snap
index fc5bfe67764..56931bb3dff 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_refs.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_refs.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.674183006+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.053692600+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [9; 10) 'a': &u32
 [18; 19) 'b': &mut u32
 [31; 32) 'c': *const u32
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_self.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_self.snap
index 76cb6205538..84c8b1e9087 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_self.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_self.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:50:17.870325361+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.052694700+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [34; 38) 'self': &S
 [40; 61) '{     ...     }': ()
 [50; 54) 'self': &S
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_struct.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_struct.snap
index 0c94d68377c..c4a2d5cf8bd 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_struct.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_struct.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.677495622+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.058678600+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [72; 154) '{     ...a.c; }': ()
 [82; 83) 'c': [unknown]
 [86; 87) 'C': [unknown]
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_struct_generics.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_struct_generics.snap
index 7cf947d4d3d..e07c7d36c43 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_struct_generics.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_struct_generics.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.678274444+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.058678600+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [36; 38) 'a1': A<u32>
 [48; 49) 'i': i32
 [56; 147) '{     ...3.x; }': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_tuple.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_tuple.snap
index 8626441458c..cd11d41d338 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_tuple.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_tuple.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.676903109+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.058678600+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [9; 10) 'x': &str
 [18; 19) 'y': isize
 [28; 170) '{     ...d"); }': ()
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_unary_op.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_unary_op.snap
index 8906bb9c00b..10aa6195444 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__infer_unary_op.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__infer_unary_op.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.676213204+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.059676600+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [27; 28) 'x': SomeType
 [40; 197) '{     ...lo"; }': ()
 [50; 51) 'b': bool
diff --git a/crates/ra_hir/src/ty/snapshots/tests__no_panic_on_field_of_enum.snap b/crates/ra_hir/src/ty/snapshots/tests__no_panic_on_field_of_enum.snap
index 024fbf929b2..b6f404b4c74 100644
--- a/crates/ra_hir/src/ty/snapshots/tests__no_panic_on_field_of_enum.snap
+++ b/crates/ra_hir/src/ty/snapshots/tests__no_panic_on_field_of_enum.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-21T21:48:20.676654355+00:00
-Creator: insta@0.1.4
-Source: crates/ra_hir/src/ty/tests.rs
-
+---
+created: "2019-01-22T14:45:00.058678600+00:00"
+creator: insta@0.4.0
+expression: "&result"
+source: "crates\\ra_hir\\src\\ty\\tests.rs"
+---
 [20; 21) 'x': X
 [26; 47) '{     ...eld; }': ()
 [32; 33) 'x': X
diff --git a/crates/ra_ide_api/src/completion/completion_item.rs b/crates/ra_ide_api/src/completion/completion_item.rs
index c892ad84674..d70c3688988 100644
--- a/crates/ra_ide_api/src/completion/completion_item.rs
+++ b/crates/ra_ide_api/src/completion/completion_item.rs
@@ -15,6 +15,7 @@ pub struct CompletionItem {
     label: String,
     kind: Option<CompletionItemKind>,
     detail: Option<String>,
+    documentation: Option<String>,
     lookup: Option<String>,
     insert_text: Option<String>,
     insert_text_format: InsertTextFormat,
@@ -77,6 +78,7 @@ impl CompletionItem {
             insert_text: None,
             insert_text_format: InsertTextFormat::PlainText,
             detail: None,
+            documentation: None,
             lookup: None,
             kind: None,
             text_edit: None,
@@ -90,6 +92,10 @@ impl CompletionItem {
     pub fn detail(&self) -> Option<&str> {
         self.detail.as_ref().map(|it| it.as_str())
     }
+    /// A doc-comment
+    pub fn documentation(&self) -> Option<&str> {
+        self.documentation.as_ref().map(|it| it.as_str())
+    }
     /// What string is used for filtering.
     pub fn lookup(&self) -> &str {
         self.lookup
@@ -127,6 +133,7 @@ pub(crate) struct Builder {
     insert_text: Option<String>,
     insert_text_format: InsertTextFormat,
     detail: Option<String>,
+    documentation: Option<String>,
     lookup: Option<String>,
     kind: Option<CompletionItemKind>,
     text_edit: Option<TextEdit>,
@@ -142,6 +149,7 @@ impl Builder {
             source_range: self.source_range,
             label: self.label,
             detail: self.detail,
+            documentation: self.documentation,
             insert_text_format: self.insert_text_format,
             lookup: self.lookup,
             kind: self.kind,
@@ -184,6 +192,14 @@ impl Builder {
         self.detail = detail.map(Into::into);
         self
     }
+    #[allow(unused)]
+    pub(crate) fn documentation(self, docs: impl Into<String>) -> Builder {
+        self.set_documentation(Some(docs))
+    }
+    pub(crate) fn set_documentation(mut self, docs: Option<impl Into<String>>) -> Builder {
+        self.documentation = docs.map(Into::into);
+        self
+    }
     pub(super) fn from_resolution(
         mut self,
         ctx: &CompletionContext,
@@ -243,6 +259,10 @@ impl Builder {
             }
             self.insert_text_format = InsertTextFormat::Snippet;
         }
+        if let Some(docs) = function.docs(ctx.db) {
+            self.documentation = Some(docs);
+        }
+
         self.kind = Some(CompletionItemKind::Function);
         self
     }
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 132048d9c4a..3d8d5af78a0 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.241096+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.858540400+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "quux()$0"
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 e7b628f19f9..7ed1d5ccb5b 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.242456+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.860535200+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -36,6 +40,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "quux()$0"
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 403fe0c4c82..95581122d35 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.243016+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.871506600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -36,6 +40,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "quux($0)"
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 413960191bc..2e763fe1d40 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.206357+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.620177400+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "continue;"
@@ -85,6 +92,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "break;"
@@ -100,6 +108,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return $0;"
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 dc2fc95e321..9dcdbf63fd5 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.217822+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.699965300+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return $0;"
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 26ca189338b..b55e24bdc33 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.217724+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.719911400+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 f5ae8c29f6b..e3f00d0f158 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.208392+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.642118600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return $0"
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 88c9287fd1b..18d8b3fb3c3 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.239872+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.797704900+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 33286e68ba8..8bf7bf06ce1 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.239894+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.801693300+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 2db0eb7558b..5844254e14c 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.248606+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.912397100+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "foo()$0"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion1.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion1.snap
index ed9b62586a8..13f91544691 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion1.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion1.snap
@@ -1,13 +1,16 @@
-Created: 2019-01-21T21:32:37.509646722+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.817649800+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Postfix,
         label: "not",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "!bar"
@@ -30,6 +33,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "if",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if bar {$0}"
@@ -52,6 +56,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "match",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match bar {\n${1:_} => {$0\\},\n}"
@@ -74,6 +79,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "while",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while bar {\n$0\n}"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion2.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion2.snap
index cc566ac3541..fff87574d5f 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion2.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion2.snap
@@ -1,13 +1,16 @@
-Created: 2019-01-21T21:32:37.510644822+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.820642200+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Postfix,
         label: "not",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "!bar"
@@ -30,6 +33,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "if",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if bar {$0}"
@@ -52,6 +56,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "match",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match bar {\n${1:_} => {$0\\},\n}"
@@ -74,6 +79,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "while",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while bar {\n$0\n}"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion3.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion3.snap
index c9f9bddcfe0..e8191596dd4 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion3.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__filter_postfix_completion3.snap
@@ -1,13 +1,16 @@
-Created: 2019-01-21T21:32:37.510629228+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.830614900+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Postfix,
         label: "not",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "!bar"
@@ -30,6 +33,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "if",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if bar {$0}"
@@ -52,6 +56,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "match",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match bar {\n${1:_} => {$0\\},\n}"
@@ -74,6 +79,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         label: "while",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while bar {\n$0\n}"
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 7ae216cd269..732a873824f 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.249349+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.932343200+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "no_args()$0"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "main()$0"
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 231d75d7a42..2431b3276b2 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.255317+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.995180+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "main()$0"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "with_args($0)"
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 4d309b20e3f..f1de82bcc43 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.207728+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.635137200+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return;"
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 0f1e66ac3c6..c309ff9bc36 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.207381+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.626162800+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "else {$0}"
@@ -85,6 +92,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "else if $0 {}"
@@ -100,6 +108,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return;"
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 25c29dc18ce..950cc8045c3 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.211090+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.701959300+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return $0;"
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 7e43be4b0ec..ae14d7e3910 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.218272+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.788727100+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return;"
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 7ed890b74ab..2ec855bf629 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.207433+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.626162800+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "crate::"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -38,6 +42,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "super::"
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 4d4c7af500a..92224beccf6 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,7 +1,9 @@
-Created: 2019-01-20T09:26:20.872623+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.698966900+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "super::"
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 66ab20f4196..952650ea38c 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.217815+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.779752+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "super::"
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 2dc47e9b1f6..1d8725d343b 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.208669+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.642118600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return $0;"
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 59e11c585e0..54175c1a3e4 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.221138+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.733874300+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return $0;"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__method_completion.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__method_completion.snap
index 966148a3627..c294de5cbf2 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__method_completion.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__method_completion.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-20T09:26:20.868112+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.546394900+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Method
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "the_method($0)"
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 9ebb8a3579f..032516ab402 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.243581+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.874497400+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "quux()$0"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -38,6 +42,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Enum
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 9b7aa054007..b33babaf09f 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.244757+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.875495300+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "quux()$0"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 555f7acc671..62fb0a966c4 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.222109+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.723900500+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Module
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__no_non_self_method.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__no_non_self_method.snap
index 417b692dcaa..7cc82753242 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__no_non_self_method.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__no_non_self_method.snap
@@ -1,5 +1,7 @@
-Created: 2019-01-19T11:34:11.702251+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.552379600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 []
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 fd56a6c8c0b..a5164b03eab 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.209867+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.651095300+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Keyword,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "if $0 {}"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "match $0 {}"
@@ -40,6 +44,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "while $0 {}"
@@ -55,6 +60,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "loop {$0}"
@@ -70,6 +76,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "continue"
@@ -85,6 +92,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "break"
@@ -100,6 +108,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Keyword
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "return"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__no_struct_field_completion_for_method_call.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__no_struct_field_completion_for_method_call.snap
index 0948c9fe60e..7cc82753242 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__no_struct_field_completion_for_method_call.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__no_struct_field_completion_for_method_call.snap
@@ -1,5 +1,7 @@
-Created: 2019-01-19T11:34:11.702201+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.552379600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 []
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_last_param.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_last_param.snap
index e0e5929ffb5..a5a7713ef96 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_last_param.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_last_param.snap
@@ -1,13 +1,16 @@
-Created: 2019-01-20T04:00:48.203211+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.545423800+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Magic,
         label: "file_id: FileId",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: Some(
             "file_id"
         ),
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_nth_param.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_nth_param.snap
index 2899cf98e54..0df4fcf5738 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_nth_param.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_nth_param.snap
@@ -1,13 +1,16 @@
-Created: 2019-01-20T04:00:48.203236+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.552379600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Magic,
         label: "file_id: FileId",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: Some(
             "file_id"
         ),
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_trait_param.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_trait_param.snap
index 8a4d9ef635b..905ece33837 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_trait_param.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__param_completion_trait_param.snap
@@ -1,13 +1,16 @@
-Created: 2019-01-20T04:00:48.206552+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.619180200+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Magic,
         label: "file_id: FileId",
         kind: None,
         detail: None,
+        documentation: None,
         lookup: Some(
             "file_id"
         ),
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__reference_completion.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__reference_completion.snap
index 632d9bbc728..0180a4f44a2 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__reference_completion.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__reference_completion.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-20T09:26:20.899262+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.717917+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             EnumVariant
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             EnumVariant
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 6bef3ed95cc..24dbe6bb015 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.245820+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.898433800+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Function
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "x()$0"
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 56bfe1b0d65..efda72adfb9 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.244260+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.894444600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Binding
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 648d7f1899f..1d9aff5bb0b 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.252281+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.944312600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Snippet,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Snippet
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "eprintln!(\"$0 = {:?}\", $0);"
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Snippet
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "eprintln!(\"$0 = {:#?}\", $0);"
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 f5d0140eaff..678335404e3 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.253073+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.944312600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Snippet,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Snippet
         ),
         detail: None,
+        documentation: None,
         lookup: Some(
             "tfn"
         ),
@@ -27,6 +30,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Snippet
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "pub(crate) $0"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion.snap
index c88ddbc671a..e8dc12dfdeb 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-20T09:26:20.868146+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.545423800+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -12,6 +14,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         detail: Some(
             "u32"
         ),
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_autoderef.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_autoderef.snap
index f310f523df9..9ee668b3598 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_autoderef.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_autoderef.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-20T09:26:20.868561+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.552379600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -12,6 +14,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         detail: Some(
             "(u32, i32)"
         ),
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Method
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "foo($0)"
diff --git a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_self.snap b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_self.snap
index 4eae65128de..b9d70ea3f25 100644
--- a/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_self.snap
+++ b/crates/ra_ide_api/src/completion/snapshots/completion_item__struct_field_completion_self.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-20T09:26:20.868333+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.552379600+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -12,6 +14,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
         detail: Some(
             "(u32,)"
         ),
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -25,6 +28,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Method
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: Some(
             "foo($0)"
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 29f7f86f1ed..01294ca4003 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,7 +1,9 @@
-Created: 2019-01-20T04:00:48.223130+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.761799100+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
@@ -23,6 +26,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Module
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
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 1a3bd803419..33dd2b904b6 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,7 +1,9 @@
-Created: 2019-01-20T09:26:20.899584+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/completion/completion_item.rs
-
+---
+created: "2019-01-22T14:45:00.780748400+00:00"
+creator: insta@0.4.0
+expression: kind_completions
+source: "crates\\ra_ide_api\\src\\completion\\completion_item.rs"
+---
 [
     CompletionItem {
         completion_kind: Reference,
@@ -10,6 +12,7 @@ Source: crates/ra_ide_api/src/completion/completion_item.rs
             Struct
         ),
         detail: None,
+        documentation: None,
         lookup: None,
         insert_text: None,
         insert_text_format: PlainText,
diff --git a/crates/ra_ide_api/src/snapshots/tests__highlight_query_group_macro.snap b/crates/ra_ide_api/src/snapshots/tests__highlight_query_group_macro.snap
index b84aa9c78e9..062add08385 100644
--- a/crates/ra_ide_api/src/snapshots/tests__highlight_query_group_macro.snap
+++ b/crates/ra_ide_api/src/snapshots/tests__highlight_query_group_macro.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:20.732493641+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/syntax_highlighting.rs
-
+---
+created: "2019-01-22T14:45:01.017117100+00:00"
+creator: insta@0.4.0
+expression: "&highlights"
+source: "crates\\ra_ide_api\\src\\syntax_highlighting.rs"
+---
 [
     HighlightedRange {
         range: [20; 32),
diff --git a/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap b/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap
index 14c6e5a4e36..fd8265abb79 100644
--- a/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap
+++ b/crates/ra_ide_api/src/snapshots/tests__highlights_code_inside_macros.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:20.732523231+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/syntax_highlighting.rs
-
+---
+created: "2019-01-22T14:45:01.043047100+00:00"
+creator: insta@0.4.0
+expression: "&highlights"
+source: "crates\\ra_ide_api\\src\\syntax_highlighting.rs"
+---
 [
     HighlightedRange {
         range: [13; 15),
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 dc97b3334a7..3267d1ac5a4 100644
--- a/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap
+++ b/crates/ra_ide_api/src/snapshots/tests__rename_mod.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-18T08:26:43.427092+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/rename.rs
-
+---
+created: "2019-01-22T14:45:00.975229300+00:00"
+creator: insta@0.4.0
+expression: "&source_change"
+source: "crates\\ra_ide_api\\src\\rename.rs"
+---
 Some(
     SourceChange {
         label: "rename",
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 7dcd6518570..e96bf5c02fe 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,7 +1,9 @@
-Created: 2019-01-18T08:26:43.427095+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/rename.rs
-
+---
+created: "2019-01-22T14:45:00.975229300+00:00"
+creator: insta@0.4.0
+expression: "&source_change"
+source: "crates\\ra_ide_api\\src\\rename.rs"
+---
 Some(
     SourceChange {
         label: "rename",
diff --git a/crates/ra_ide_api/src/snapshots/tests__runnables.snap b/crates/ra_ide_api/src/snapshots/tests__runnables.snap
index ba6cba0ab98..71bd7a4bd13 100644
--- a/crates/ra_ide_api/src/snapshots/tests__runnables.snap
+++ b/crates/ra_ide_api/src/snapshots/tests__runnables.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:20.732460119+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/runnables.rs
-
+---
+created: "2019-01-22T14:45:00.975229300+00:00"
+creator: insta@0.4.0
+expression: "&runnables"
+source: "crates\\ra_ide_api\\src\\runnables.rs"
+---
 [
     Runnable {
         range: [1; 21),
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 b3f2d4d6ece..a28dd89521a 100644
--- a/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap
+++ b/crates/ra_ide_api/src/snapshots/tests__runnables_module.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:20.732460109+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/runnables.rs
-
+---
+created: "2019-01-22T14:45:00.976230700+00:00"
+creator: insta@0.4.0
+expression: "&runnables"
+source: "crates\\ra_ide_api\\src\\runnables.rs"
+---
 [
     Runnable {
         range: [1; 59),
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 6eba482e748..79f07bef948 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,7 +1,9 @@
-Created: 2019-01-15T11:15:20.732522773+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/runnables.rs
-
+---
+created: "2019-01-22T14:45:00.979218100+00:00"
+creator: insta@0.4.0
+expression: "&runnables"
+source: "crates\\ra_ide_api\\src\\runnables.rs"
+---
 [
     Runnable {
         range: [41; 115),
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 f40c762f30f..d199e90739d 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,7 +1,9 @@
-Created: 2019-01-15T11:15:20.732480089+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/src/runnables.rs
-
+---
+created: "2019-01-22T14:45:01.016119500+00:00"
+creator: insta@0.4.0
+expression: "&runnables"
+source: "crates\\ra_ide_api\\src\\runnables.rs"
+---
 [
     Runnable {
         range: [23; 85),
diff --git a/crates/ra_ide_api/tests/test/snapshots/test__unresolved_module_diagnostic.snap b/crates/ra_ide_api/tests/test/snapshots/test__unresolved_module_diagnostic.snap
index 1b41e2b0091..d258820afa0 100644
--- a/crates/ra_ide_api/tests/test/snapshots/test__unresolved_module_diagnostic.snap
+++ b/crates/ra_ide_api/tests/test/snapshots/test__unresolved_module_diagnostic.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:20.891129945+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api/tests/test/main.rs
-
+---
+created: "2019-01-22T14:45:01.486985900+00:00"
+creator: insta@0.4.0
+expression: "&diagnostics"
+source: "crates\\ra_ide_api\\tests\\test\\main.rs"
+---
 [
     Diagnostic {
         message: "unresolved module",
diff --git a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap b/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap
index 10eb5c724e2..4661ea2c481 100644
--- a/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap
+++ b/crates/ra_ide_api_light/src/snapshots/tests__file_structure.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:21.073862814+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api_light/src/structure.rs
-
+---
+created: "2019-01-22T14:45:01.959724300+00:00"
+creator: insta@0.4.0
+expression: structure
+source: "crates\\ra_ide_api_light\\src\\structure.rs"
+---
 [
     StructureNode {
         parent: None,
diff --git a/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap b/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap
index d8f44a713a8..ef306a7a02f 100644
--- a/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap
+++ b/crates/ra_ide_api_light/src/snapshots/tests__highlighting.snap
@@ -1,7 +1,9 @@
-Created: 2019-01-15T11:15:21.073858657+00:00
-Creator: insta@0.1.4
-Source: crates/ra_ide_api_light/src/lib.rs
-
+---
+created: "2019-01-22T14:45:01.959724300+00:00"
+creator: insta@0.4.0
+expression: hls
+source: "crates\\ra_ide_api_light\\src\\lib.rs"
+---
 [
     HighlightedRange {
         range: [1; 11),
diff --git a/crates/ra_lsp_server/src/conv.rs b/crates/ra_lsp_server/src/conv.rs
index 23b226fac7e..6818acaf62a 100644
--- a/crates/ra_lsp_server/src/conv.rs
+++ b/crates/ra_lsp_server/src/conv.rs
@@ -1,6 +1,6 @@
 use lsp_types::{
-    self, CreateFile, DocumentChangeOperation, DocumentChanges, Location, LocationLink,
-    Position, Range, RenameFile, ResourceOp, SymbolKind, TextDocumentEdit, TextDocumentIdentifier,
+    self, CreateFile, Documentation, DocumentChangeOperation, DocumentChanges, Location, LocationLink,
+    MarkupContent, MarkupKind, Position, Range, RenameFile, ResourceOp, SymbolKind, TextDocumentEdit, TextDocumentIdentifier,
     TextDocumentItem, TextDocumentPositionParams, Url, VersionedTextDocumentIdentifier,
     WorkspaceEdit,
 };
@@ -87,6 +87,13 @@ impl ConvWith for CompletionItem {
             None
         };
 
+        let documentation = self.documentation().map(|value| {
+            Documentation::MarkupContent(MarkupContent {
+                kind: MarkupKind::Markdown,
+                value: value.to_string(),
+            })
+        });
+
         let mut res = lsp_types::CompletionItem {
             label: self.label().to_string(),
             detail: self.detail().map(|it| it.to_string()),
@@ -94,6 +101,7 @@ impl ConvWith for CompletionItem {
             kind: self.kind().map(|it| it.conv()),
             text_edit: Some(text_edit),
             additional_text_edits,
+            documentation: documentation,
             ..Default::default()
         };
         res.insert_text_format = Some(match self.insert_text_format() {