aboutsummaryrefslogtreecommitdiff
path: root/crates
diff options
context:
space:
mode:
authorAleksey Kladov <[email protected]>2020-03-28 10:20:34 +0000
committerAleksey Kladov <[email protected]>2020-03-28 11:27:54 +0000
commit311cbbdad599d51c6f08f7dd72c299f7c0128bb2 (patch)
treed3ccef4aa8f681cc9de29f0435ad20e87911a6ba /crates
parent6596e7cddfc00281362c3640781f6cd6bc0b5614 (diff)
Remove some unwraps
Diffstat (limited to 'crates')
-rw-r--r--crates/ra_hir_ty/src/diagnostics.rs8
-rw-r--r--crates/ra_hir_ty/src/tests.rs26
-rw-r--r--crates/ra_ide/src/display.rs13
-rw-r--r--crates/rust-analyzer/src/cli/analysis_stats.rs5
-rw-r--r--crates/rust-analyzer/src/main_loop/handlers.rs6
5 files changed, 29 insertions, 29 deletions
diff --git a/crates/ra_hir_ty/src/diagnostics.rs b/crates/ra_hir_ty/src/diagnostics.rs
index 6eafdc8f6..0f8522021 100644
--- a/crates/ra_hir_ty/src/diagnostics.rs
+++ b/crates/ra_hir_ty/src/diagnostics.rs
@@ -4,6 +4,7 @@ use std::any::Any;
4 4
5use hir_expand::{db::AstDatabase, name::Name, HirFileId, InFile}; 5use hir_expand::{db::AstDatabase, name::Name, HirFileId, InFile};
6use ra_syntax::{ast, AstNode, AstPtr, SyntaxNodePtr}; 6use ra_syntax::{ast, AstNode, AstPtr, SyntaxNodePtr};
7use stdx::format_to;
7 8
8pub use hir_def::diagnostics::UnresolvedModule; 9pub use hir_def::diagnostics::UnresolvedModule;
9pub use hir_expand::diagnostics::{AstDiagnostic, Diagnostic, DiagnosticSink}; 10pub use hir_expand::diagnostics::{AstDiagnostic, Diagnostic, DiagnosticSink};
@@ -37,12 +38,11 @@ pub struct MissingFields {
37 38
38impl Diagnostic for MissingFields { 39impl Diagnostic for MissingFields {
39 fn message(&self) -> String { 40 fn message(&self) -> String {
40 use std::fmt::Write; 41 let mut buf = String::from("Missing structure fields:\n");
41 let mut message = String::from("Missing structure fields:\n");
42 for field in &self.missed_fields { 42 for field in &self.missed_fields {
43 writeln!(message, "- {}", field).unwrap(); 43 format_to!(buf, "- {}", field);
44 } 44 }
45 message 45 buf
46 } 46 }
47 fn source(&self) -> InFile<SyntaxNodePtr> { 47 fn source(&self) -> InFile<SyntaxNodePtr> {
48 InFile { file_id: self.file, value: self.field_list.into() } 48 InFile { file_id: self.file, value: self.field_list.into() }
diff --git a/crates/ra_hir_ty/src/tests.rs b/crates/ra_hir_ty/src/tests.rs
index 7e9547340..027e5a8f8 100644
--- a/crates/ra_hir_ty/src/tests.rs
+++ b/crates/ra_hir_ty/src/tests.rs
@@ -7,7 +7,6 @@ mod traits;
7mod method_resolution; 7mod method_resolution;
8mod macros; 8mod macros;
9 9
10use std::fmt::Write;
11use std::sync::Arc; 10use std::sync::Arc;
12 11
13use hir_def::{ 12use hir_def::{
@@ -26,6 +25,7 @@ use ra_syntax::{
26 algo, 25 algo,
27 ast::{self, AstNode}, 26 ast::{self, AstNode},
28}; 27};
28use stdx::format_to;
29 29
30use crate::{db::HirDatabase, display::HirDisplay, test_db::TestDB, InferenceResult}; 30use crate::{db::HirDatabase, display::HirDisplay, test_db::TestDB, InferenceResult};
31 31
@@ -63,7 +63,7 @@ fn infer(ra_fixture: &str) -> String {
63fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String { 63fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String {
64 let (db, file_id) = TestDB::with_single_file(content); 64 let (db, file_id) = TestDB::with_single_file(content);
65 65
66 let mut acc = String::new(); 66 let mut buf = String::new();
67 67
68 let mut infer_def = |inference_result: Arc<InferenceResult>, 68 let mut infer_def = |inference_result: Arc<InferenceResult>,
69 body_source_map: Arc<BodySourceMap>| { 69 body_source_map: Arc<BodySourceMap>| {
@@ -106,15 +106,14 @@ fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String {
106 (src_ptr.value.range(), node.text().to_string().replace("\n", " ")) 106 (src_ptr.value.range(), node.text().to_string().replace("\n", " "))
107 }; 107 };
108 let macro_prefix = if src_ptr.file_id != file_id.into() { "!" } else { "" }; 108 let macro_prefix = if src_ptr.file_id != file_id.into() { "!" } else { "" };
109 writeln!( 109 format_to!(
110 acc, 110 buf,
111 "{}{} '{}': {}", 111 "{}{} '{}': {}\n",
112 macro_prefix, 112 macro_prefix,
113 range, 113 range,
114 ellipsize(text, 15), 114 ellipsize(text, 15),
115 ty.display(&db) 115 ty.display(&db)
116 ) 116 );
117 .unwrap();
118 } 117 }
119 if include_mismatches { 118 if include_mismatches {
120 mismatches.sort_by_key(|(src_ptr, _)| { 119 mismatches.sort_by_key(|(src_ptr, _)| {
@@ -123,15 +122,14 @@ fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String {
123 for (src_ptr, mismatch) in &mismatches { 122 for (src_ptr, mismatch) in &mismatches {
124 let range = src_ptr.value.range(); 123 let range = src_ptr.value.range();
125 let macro_prefix = if src_ptr.file_id != file_id.into() { "!" } else { "" }; 124 let macro_prefix = if src_ptr.file_id != file_id.into() { "!" } else { "" };
126 writeln!( 125 format_to!(
127 acc, 126 buf,
128 "{}{}: expected {}, got {}", 127 "{}{}: expected {}, got {}\n",
129 macro_prefix, 128 macro_prefix,
130 range, 129 range,
131 mismatch.expected.display(&db), 130 mismatch.expected.display(&db),
132 mismatch.actual.display(&db), 131 mismatch.actual.display(&db),
133 ) 132 );
134 .unwrap();
135 } 133 }
136 } 134 }
137 }; 135 };
@@ -158,8 +156,8 @@ fn infer_with_mismatches(content: &str, include_mismatches: bool) -> String {
158 infer_def(infer, source_map); 156 infer_def(infer, source_map);
159 } 157 }
160 158
161 acc.truncate(acc.trim_end().len()); 159 buf.truncate(buf.trim_end().len());
162 acc 160 buf
163} 161}
164 162
165fn visit_module( 163fn visit_module(
diff --git a/crates/ra_ide/src/display.rs b/crates/ra_ide/src/display.rs
index c395057a7..722092de9 100644
--- a/crates/ra_ide/src/display.rs
+++ b/crates/ra_ide/src/display.rs
@@ -6,12 +6,13 @@ mod navigation_target;
6mod structure; 6mod structure;
7mod short_label; 7mod short_label;
8 8
9use std::fmt::{Display, Write}; 9use std::fmt::Display;
10 10
11use ra_syntax::{ 11use ra_syntax::{
12 ast::{self, AstNode, AttrsOwner, NameOwner, TypeParamsOwner}, 12 ast::{self, AstNode, AttrsOwner, NameOwner, TypeParamsOwner},
13 SyntaxKind::{ATTR, COMMENT}, 13 SyntaxKind::{ATTR, COMMENT},
14}; 14};
15use stdx::format_to;
15 16
16pub use function_signature::FunctionSignature; 17pub use function_signature::FunctionSignature;
17pub use navigation_target::NavigationTarget; 18pub use navigation_target::NavigationTarget;
@@ -78,18 +79,18 @@ pub(crate) fn rust_code_markup_with_doc(
78 doc: Option<&str>, 79 doc: Option<&str>,
79 mod_path: Option<&str>, 80 mod_path: Option<&str>,
80) -> String { 81) -> String {
81 let mut markup = "```rust\n".to_owned(); 82 let mut buf = "```rust\n".to_owned();
82 83
83 if let Some(mod_path) = mod_path { 84 if let Some(mod_path) = mod_path {
84 if !mod_path.is_empty() { 85 if !mod_path.is_empty() {
85 write!(markup, "{}\n", mod_path).unwrap(); 86 format_to!(buf, "{}\n", mod_path);
86 } 87 }
87 } 88 }
88 write!(markup, "{}\n```", code).unwrap(); 89 format_to!(buf, "{}\n```", code);
89 90
90 if let Some(doc) = doc { 91 if let Some(doc) = doc {
91 write!(markup, "\n\n{}", doc).unwrap(); 92 format_to!(buf, "\n\n{}", doc);
92 } 93 }
93 94
94 markup 95 buf
95} 96}
diff --git a/crates/rust-analyzer/src/cli/analysis_stats.rs b/crates/rust-analyzer/src/cli/analysis_stats.rs
index 27459be8c..75cf2dae5 100644
--- a/crates/rust-analyzer/src/cli/analysis_stats.rs
+++ b/crates/rust-analyzer/src/cli/analysis_stats.rs
@@ -1,7 +1,7 @@
1//! Fully type-check project and print various stats, like the number of type 1//! Fully type-check project and print various stats, like the number of type
2//! errors. 2//! errors.
3 3
4use std::{collections::HashSet, fmt::Write, path::Path, time::Instant}; 4use std::{collections::HashSet, path::Path, time::Instant};
5 5
6use hir::{ 6use hir::{
7 db::{AstDatabase, DefDatabase, HirDatabase}, 7 db::{AstDatabase, DefDatabase, HirDatabase},
@@ -13,6 +13,7 @@ use itertools::Itertools;
13use ra_db::SourceDatabaseExt; 13use ra_db::SourceDatabaseExt;
14use ra_syntax::AstNode; 14use ra_syntax::AstNode;
15use rand::{seq::SliceRandom, thread_rng}; 15use rand::{seq::SliceRandom, thread_rng};
16use stdx::format_to;
16 17
17use crate::cli::{load_cargo::load_cargo, progress_report::ProgressReport, Result, Verbosity}; 18use crate::cli::{load_cargo::load_cargo, progress_report::ProgressReport, Result, Verbosity};
18 19
@@ -128,7 +129,7 @@ pub fn analysis_stats(
128 let original_file = src.file_id.original_file(db); 129 let original_file = src.file_id.original_file(db);
129 let path = db.file_relative_path(original_file); 130 let path = db.file_relative_path(original_file);
130 let syntax_range = src.value.syntax().text_range(); 131 let syntax_range = src.value.syntax().text_range();
131 write!(msg, " ({:?} {})", path, syntax_range).unwrap(); 132 format_to!(msg, " ({:?} {})", path, syntax_range);
132 } 133 }
133 if verbosity.is_spammy() { 134 if verbosity.is_spammy() {
134 bar.println(msg.to_string()); 135 bar.println(msg.to_string());
diff --git a/crates/rust-analyzer/src/main_loop/handlers.rs b/crates/rust-analyzer/src/main_loop/handlers.rs
index 1033d6de9..12f8ca297 100644
--- a/crates/rust-analyzer/src/main_loop/handlers.rs
+++ b/crates/rust-analyzer/src/main_loop/handlers.rs
@@ -3,7 +3,6 @@
3//! `ra_ide` crate. 3//! `ra_ide` crate.
4 4
5use std::{ 5use std::{
6 fmt::Write as _,
7 io::Write as _, 6 io::Write as _,
8 process::{self, Stdio}, 7 process::{self, Stdio},
9}; 8};
@@ -28,6 +27,7 @@ use ra_syntax::{AstNode, SyntaxKind, TextRange, TextUnit};
28use rustc_hash::FxHashMap; 27use rustc_hash::FxHashMap;
29use serde::{Deserialize, Serialize}; 28use serde::{Deserialize, Serialize};
30use serde_json::to_value; 29use serde_json::to_value;
30use stdx::format_to;
31 31
32use crate::{ 32use crate::{
33 cargo_target_spec::CargoTargetSpec, 33 cargo_target_spec::CargoTargetSpec,
@@ -46,11 +46,11 @@ use crate::{
46pub fn handle_analyzer_status(world: WorldSnapshot, _: ()) -> Result<String> { 46pub fn handle_analyzer_status(world: WorldSnapshot, _: ()) -> Result<String> {
47 let _p = profile("handle_analyzer_status"); 47 let _p = profile("handle_analyzer_status");
48 let mut buf = world.status(); 48 let mut buf = world.status();
49 writeln!(buf, "\n\nrequests:").unwrap(); 49 format_to!(buf, "\n\nrequests:");
50 let requests = world.latest_requests.read(); 50 let requests = world.latest_requests.read();
51 for (is_last, r) in requests.iter() { 51 for (is_last, r) in requests.iter() {
52 let mark = if is_last { "*" } else { " " }; 52 let mark = if is_last { "*" } else { " " };
53 writeln!(buf, "{}{:4} {:<36}{}ms", mark, r.id, r.method, r.duration.as_millis()).unwrap(); 53 format_to!(buf, "{}{:4} {:<36}{}ms", mark, r.id, r.method, r.duration.as_millis());
54 } 54 }
55 Ok(buf) 55 Ok(buf)
56} 56}