diff options
| author | Matthew Jasper <mjjasper1@gmail.com> | 2019-07-12 20:42:21 +0100 |
|---|---|---|
| committer | Matthew Jasper <mjjasper1@gmail.com> | 2019-07-14 20:22:19 +0100 |
| commit | abfd4d1e55ea3e9d823018422508a8d49e710517 (patch) | |
| tree | bf16049e855c716aff8af521e11b7e63b7739ff0 /src | |
| parent | 2cc2b942cfb1c16be1d289f7b2feee13eee1d679 (diff) | |
| download | rust-abfd4d1e55ea3e9d823018422508a8d49e710517.tar.gz rust-abfd4d1e55ea3e9d823018422508a8d49e710517.zip | |
Move suggest_ref_mut into rustc_mir::borrow_check
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc_mir/borrow_check/mutability_errors.rs | 15 | ||||
| -rw-r--r-- | src/librustc_mir/util/mod.rs | 17 |
2 files changed, 14 insertions, 18 deletions
diff --git a/src/librustc_mir/borrow_check/mutability_errors.rs b/src/librustc_mir/borrow_check/mutability_errors.rs index a3a4e4fef16..59a3354f9c5 100644 --- a/src/librustc_mir/borrow_check/mutability_errors.rs +++ b/src/librustc_mir/borrow_check/mutability_errors.rs @@ -1,3 +1,4 @@ +use core::unicode::property::Pattern_White_Space; use rustc::hir; use rustc::hir::Node; use rustc::mir::{self, BindingForm, ClearCrossCrate, Local, Location, Body}; @@ -10,7 +11,6 @@ use syntax_pos::symbol::kw; use crate::borrow_check::MirBorrowckCtxt; use crate::borrow_check::error_reporting::BorrowedContentSource; use crate::util::collect_writes::FindAssignments; -use crate::util::suggest_ref_mut; use rustc_errors::Applicability; #[derive(Copy, Clone, Debug, Eq, PartialEq)] @@ -628,3 +628,16 @@ fn annotate_struct_field( None } + +/// If possible, suggest replacing `ref` with `ref mut`. +fn suggest_ref_mut(tcx: TyCtxt<'_>, binding_span: Span) -> Option<(String)> { + let hi_src = tcx.sess.source_map().span_to_snippet(binding_span).unwrap(); + if hi_src.starts_with("ref") + && hi_src["ref".len()..].starts_with(Pattern_White_Space) + { + let replacement = format!("ref mut{}", &hi_src["ref".len()..]); + Some(replacement) + } else { + None + } +} diff --git a/src/librustc_mir/util/mod.rs b/src/librustc_mir/util/mod.rs index fd2a5e452ce..c8a90a98914 100644 --- a/src/librustc_mir/util/mod.rs +++ b/src/librustc_mir/util/mod.rs @@ -1,7 +1,3 @@ -use core::unicode::property::Pattern_White_Space; -use rustc::ty::TyCtxt; -use syntax_pos::Span; - pub mod aggregate; pub mod borrowck_errors; pub mod elaborate_drops; @@ -19,16 +15,3 @@ pub use self::alignment::is_disaligned; pub use self::pretty::{dump_enabled, dump_mir, write_mir_pretty, PassWhere}; pub use self::graphviz::{graphviz_safe_def_name, write_mir_graphviz}; pub use self::graphviz::write_node_label as write_graphviz_node_label; - -/// If possible, suggest replacing `ref` with `ref mut`. -pub fn suggest_ref_mut(tcx: TyCtxt<'_>, binding_span: Span) -> Option<(String)> { - let hi_src = tcx.sess.source_map().span_to_snippet(binding_span).unwrap(); - if hi_src.starts_with("ref") - && hi_src["ref".len()..].starts_with(Pattern_White_Space) - { - let replacement = format!("ref mut{}", &hi_src["ref".len()..]); - Some(replacement) - } else { - None - } -} |
