From 05d0b969d9e1c3da6a2651a2ded45f662842a3f9 Mon Sep 17 00:00:00 2001 From: Camelid Date: Wed, 30 Sep 2020 11:24:50 -0700 Subject: [PATCH 1/2] Add test for error message --- src/test/ui/slice-to-vec-comparison.rs | 6 ++++++ src/test/ui/slice-to-vec-comparison.stderr | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 src/test/ui/slice-to-vec-comparison.rs create mode 100644 src/test/ui/slice-to-vec-comparison.stderr diff --git a/src/test/ui/slice-to-vec-comparison.rs b/src/test/ui/slice-to-vec-comparison.rs new file mode 100644 index 00000000000..7026a49000c --- /dev/null +++ b/src/test/ui/slice-to-vec-comparison.rs @@ -0,0 +1,6 @@ +fn main() { + let a = &[]; + let b: &Vec = &vec![]; + a > b; + //~^ ERROR mismatched types +} diff --git a/src/test/ui/slice-to-vec-comparison.stderr b/src/test/ui/slice-to-vec-comparison.stderr new file mode 100644 index 00000000000..c80f86c5592 --- /dev/null +++ b/src/test/ui/slice-to-vec-comparison.stderr @@ -0,0 +1,12 @@ +error[E0308]: mismatched types + --> $DIR/slice-to-vec-comparison.rs:4:9 + | +LL | a > b; + | ^ expected array of 0 elements , found struct `Vec` + | + = note: expected reference `&[_; 0]` + found reference `&Vec` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. From b2ce3e53446173b56607b5a8ad8d9c4b3565d5da Mon Sep 17 00:00:00 2001 From: Camelid Date: Wed, 30 Sep 2020 11:29:19 -0700 Subject: [PATCH 2/2] Remove trailing space in error message --- compiler/rustc_middle/src/ty/error.rs | 2 +- src/test/ui/slice-to-vec-comparison.stderr | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/compiler/rustc_middle/src/ty/error.rs b/compiler/rustc_middle/src/ty/error.rs index 67c69d69bda..82d698b37ab 100644 --- a/compiler/rustc_middle/src/ty/error.rs +++ b/compiler/rustc_middle/src/ty/error.rs @@ -232,7 +232,7 @@ impl<'tcx> ty::TyS<'tcx> { let n = tcx.lift(&n).unwrap(); match n.try_eval_usize(tcx, ty::ParamEnv::empty()) { _ if t.is_simple_ty() => format!("array `{}`", self).into(), - Some(n) => format!("array of {} element{} ", n, pluralize!(n)).into(), + Some(n) => format!("array of {} element{}", n, pluralize!(n)).into(), None => "array".into(), } } diff --git a/src/test/ui/slice-to-vec-comparison.stderr b/src/test/ui/slice-to-vec-comparison.stderr index c80f86c5592..e3b3b040f66 100644 --- a/src/test/ui/slice-to-vec-comparison.stderr +++ b/src/test/ui/slice-to-vec-comparison.stderr @@ -2,7 +2,7 @@ error[E0308]: mismatched types --> $DIR/slice-to-vec-comparison.rs:4:9 | LL | a > b; - | ^ expected array of 0 elements , found struct `Vec` + | ^ expected array of 0 elements, found struct `Vec` | = note: expected reference `&[_; 0]` found reference `&Vec`