diff options
| author | Esteban Küber <esteban@kuber.com.ar> | 2017-11-25 06:20:07 -0800 |
|---|---|---|
| committer | Esteban Küber <esteban@kuber.com.ar> | 2017-11-25 07:50:27 -0800 |
| commit | 97d8d04f3fffd0984a2d2af2f24c104e75be8f01 (patch) | |
| tree | 3afce58fcf689eead02b82d4668816cc2799dece /src | |
| parent | cde0023b5b71eb4ceafef31dd9036a268ba3b08d (diff) | |
| download | rust-97d8d04f3fffd0984a2d2af2f24c104e75be8f01.tar.gz rust-97d8d04f3fffd0984a2d2af2f24c104e75be8f01.zip | |
Remove index type check (review comment)
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/hir/mod.rs | 17 | ||||
| -rw-r--r-- | src/librustc/traits/error_reporting.rs | 16 | ||||
| -rw-r--r-- | src/test/ui/suggestions/str-array-assignment.rs | 2 |
3 files changed, 6 insertions, 29 deletions
diff --git a/src/librustc/hir/mod.rs b/src/librustc/hir/mod.rs index 986f1b9e419..39ec33eef1f 100644 --- a/src/librustc/hir/mod.rs +++ b/src/librustc/hir/mod.rs @@ -244,23 +244,6 @@ impl Path { pub fn is_global(&self) -> bool { !self.segments.is_empty() && self.segments[0].name == keywords::CrateRoot.name() } - - /// Wether this path is any of `::std::ops::{Range, RangeTo, RangeFrom}`. - pub fn is_range(&self) -> bool { - let mut base = ["{{root}}", "std", "ops"].iter().map(|p| p.to_string()).collect::<Vec<_>>(); - let range_paths = ["Range", "RangeTo", "RangeFrom"]; - let segments = self.segments.iter() - .map(|segment| format!("{}", segment.name)) - .collect::<Vec<String>>(); - for path in &range_paths { - base.push(path.to_string()); - if base == segments { - return true; - } - base.pop(); - } - false - } } impl fmt::Debug for Path { diff --git a/src/librustc/traits/error_reporting.rs b/src/librustc/traits/error_reporting.rs index a8a8b20012b..46e2c3af5e6 100644 --- a/src/librustc/traits/error_reporting.rs +++ b/src/librustc/traits/error_reporting.rs @@ -832,17 +832,11 @@ impl<'a, 'gcx, 'tcx> InferCtxt<'a, 'gcx, 'tcx> { let parent_node = self.tcx.hir.get_parent_node(node_id); if let Some(hir::map::NodeLocal(ref local)) = self.tcx.hir.find(parent_node) { if let Some(ref expr) = local.init { - if let hir::ExprIndex(_, ref index) = expr.node { - if let hir::ExprStruct(hir::QPath::Resolved(None, ref path), - ..) = index.node { - if let (Ok(snippet), true) = ( - self.tcx.sess.codemap().span_to_snippet(expr.span), - path.is_range() - ) { - err.span_suggestion(expr.span, - "consider a slice instead", - format!("&{}", snippet)); - } + if let hir::ExprIndex(_, _) = expr.node { + if let Ok(snippet) = self.tcx.sess.codemap().span_to_snippet(expr.span) { + err.span_suggestion(expr.span, + "consider a slice instead", + format!("&{}", snippet)); } } } diff --git a/src/test/ui/suggestions/str-array-assignment.rs b/src/test/ui/suggestions/str-array-assignment.rs index 52b39d390d6..adec495e72a 100644 --- a/src/test/ui/suggestions/str-array-assignment.rs +++ b/src/test/ui/suggestions/str-array-assignment.rs @@ -20,7 +20,7 @@ fn main() { //~ NOTE expected `()` because of default return type //~| NOTE expected type let v = s[..2]; //~^ ERROR the trait bound `str: std::marker::Sized` is not satisfied - //~| NOTE consider a slice instead + //~| HELP consider a slice instead //~| NOTE `str` does not have a constant size known at compile-time //~| HELP the trait `std::marker::Sized` is not implemented for `str` //~| NOTE all local variables must have a statically known size |
