about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2019-12-22 18:42:15 +0000
committervarkor <github@varkor.com>2019-12-23 11:16:51 +0000
commitb7bfdbe68147f2ea8ca4870270643180bef76e02 (patch)
treefb88c336f1511d88f844f31703e7b14391b04b02 /src/test
parenta5991c57cf4430d1f67886637c65f2178ff1b372 (diff)
downloadrust-b7bfdbe68147f2ea8ca4870270643180bef76e02.tar.gz
rust-b7bfdbe68147f2ea8ca4870270643180bef76e02.zip
Improve invalid assignment error
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/bad/bad-expr-lhs.rs10
-rw-r--r--src/test/ui/bad/bad-expr-lhs.stderr32
-rw-r--r--src/test/ui/error-codes/E0067.stderr8
-rw-r--r--src/test/ui/error-codes/E0070.stderr18
-rw-r--r--src/test/ui/issues/issue-13407.rs2
-rw-r--r--src/test/ui/issues/issue-13407.stderr6
-rw-r--r--src/test/ui/issues/issue-26093.rs4
-rw-r--r--src/test/ui/issues/issue-26093.stderr26
-rw-r--r--src/test/ui/issues/issue-34334.rs2
-rw-r--r--src/test/ui/issues/issue-34334.stderr6
-rw-r--r--src/test/ui/type/type-check/assignment-expected-bool.rs2
-rw-r--r--src/test/ui/type/type-check/assignment-expected-bool.stderr6
-rw-r--r--src/test/ui/type/type-check/assignment-in-if.rs2
13 files changed, 83 insertions, 41 deletions
diff --git a/src/test/ui/bad/bad-expr-lhs.rs b/src/test/ui/bad/bad-expr-lhs.rs
index 2cd8bc9d473..d7cf1b77005 100644
--- a/src/test/ui/bad/bad-expr-lhs.rs
+++ b/src/test/ui/bad/bad-expr-lhs.rs
@@ -1,10 +1,10 @@
 fn main() {
-    1 = 2; //~ ERROR invalid left-hand side expression
-    1 += 2; //~ ERROR invalid left-hand side expression
-    (1, 2) = (3, 4); //~ ERROR invalid left-hand side expression
+    1 = 2; //~ ERROR invalid left-hand side of assignment
+    1 += 2; //~ ERROR invalid left-hand side of assignment
+    (1, 2) = (3, 4); //~ ERROR invalid left-hand side of assignment
 
     let (a, b) = (1, 2);
-    (a, b) = (3, 4); //~ ERROR invalid left-hand side expression
+    (a, b) = (3, 4); //~ ERROR invalid left-hand side of assignment
 
-    None = Some(3); //~ ERROR invalid left-hand side expression
+    None = Some(3); //~ ERROR invalid left-hand side of assignment
 }
diff --git a/src/test/ui/bad/bad-expr-lhs.stderr b/src/test/ui/bad/bad-expr-lhs.stderr
index a0de6a73797..07cffbe97a8 100644
--- a/src/test/ui/bad/bad-expr-lhs.stderr
+++ b/src/test/ui/bad/bad-expr-lhs.stderr
@@ -1,32 +1,42 @@
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/bad-expr-lhs.rs:2:5
    |
 LL |     1 = 2;
-   |     ^^^^^ left-hand of expression not valid
+   |     -^^^^
+   |     |
+   |     cannot assign to this expression
 
-error[E0067]: invalid left-hand side expression
-  --> $DIR/bad-expr-lhs.rs:3:5
+error[E0067]: invalid left-hand side of assignment
+  --> $DIR/bad-expr-lhs.rs:3:7
    |
 LL |     1 += 2;
-   |     ^ invalid expression for left-hand side
+   |     - ^^
+   |     |
+   |     cannot assign to this expression
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/bad-expr-lhs.rs:4:5
    |
 LL |     (1, 2) = (3, 4);
-   |     ^^^^^^^^^^^^^^^ left-hand of expression not valid
+   |     ------^^^^^^^^^
+   |     |
+   |     cannot assign to this expression
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/bad-expr-lhs.rs:7:5
    |
 LL |     (a, b) = (3, 4);
-   |     ^^^^^^^^^^^^^^^ left-hand of expression not valid
+   |     ------^^^^^^^^^
+   |     |
+   |     cannot assign to this expression
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/bad-expr-lhs.rs:9:5
    |
 LL |     None = Some(3);
-   |     ^^^^^^^^^^^^^^ left-hand of expression not valid
+   |     ----^^^^^^^^^^
+   |     |
+   |     cannot assign to this expression
 
 error: aborting due to 5 previous errors
 
diff --git a/src/test/ui/error-codes/E0067.stderr b/src/test/ui/error-codes/E0067.stderr
index 0334565840f..526503798b3 100644
--- a/src/test/ui/error-codes/E0067.stderr
+++ b/src/test/ui/error-codes/E0067.stderr
@@ -8,11 +8,13 @@ LL |     LinkedList::new() += 1;
    |
    = note: an implementation of `std::ops::AddAssign` might be missing for `std::collections::LinkedList<_>`
 
-error[E0067]: invalid left-hand side expression
-  --> $DIR/E0067.rs:4:5
+error[E0067]: invalid left-hand side of assignment
+  --> $DIR/E0067.rs:4:23
    |
 LL |     LinkedList::new() += 1;
-   |     ^^^^^^^^^^^^^^^^^ invalid expression for left-hand side
+   |     ----------------- ^^
+   |     |
+   |     cannot assign to this expression
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/error-codes/E0070.stderr b/src/test/ui/error-codes/E0070.stderr
index 845833bc82f..1fb812d9467 100644
--- a/src/test/ui/error-codes/E0070.stderr
+++ b/src/test/ui/error-codes/E0070.stderr
@@ -1,14 +1,18 @@
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/E0070.rs:6:5
    |
 LL |     SOME_CONST = 14;
-   |     ^^^^^^^^^^^^^^^ left-hand of expression not valid
+   |     ----------^^^^^
+   |     |
+   |     cannot assign to this expression
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/E0070.rs:7:5
    |
 LL |     1 = 3;
-   |     ^^^^^ left-hand of expression not valid
+   |     -^^^^
+   |     |
+   |     cannot assign to this expression
 
 error[E0308]: mismatched types
   --> $DIR/E0070.rs:8:25
@@ -16,11 +20,13 @@ error[E0308]: mismatched types
 LL |     some_other_func() = 4;
    |                         ^ expected `()`, found integer
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/E0070.rs:8:5
    |
 LL |     some_other_func() = 4;
-   |     ^^^^^^^^^^^^^^^^^^^^^ left-hand of expression not valid
+   |     -----------------^^^^
+   |     |
+   |     cannot assign to this expression
 
 error: aborting due to 4 previous errors
 
diff --git a/src/test/ui/issues/issue-13407.rs b/src/test/ui/issues/issue-13407.rs
index 322e67cc131..fa53d55f5b3 100644
--- a/src/test/ui/issues/issue-13407.rs
+++ b/src/test/ui/issues/issue-13407.rs
@@ -4,7 +4,7 @@ mod A {
 
 fn main() {
     A::C = 1;
-    //~^ ERROR: invalid left-hand side expression
+    //~^ ERROR: invalid left-hand side of assignment
     //~| ERROR: mismatched types
     //~| ERROR: struct `C` is private
 }
diff --git a/src/test/ui/issues/issue-13407.stderr b/src/test/ui/issues/issue-13407.stderr
index 5a465cc533b..05fd97b025f 100644
--- a/src/test/ui/issues/issue-13407.stderr
+++ b/src/test/ui/issues/issue-13407.stderr
@@ -10,11 +10,13 @@ error[E0308]: mismatched types
 LL |     A::C = 1;
    |            ^ expected struct `A::C`, found integer
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/issue-13407.rs:6:5
    |
 LL |     A::C = 1;
-   |     ^^^^^^^^ left-hand of expression not valid
+   |     ----^^^^
+   |     |
+   |     cannot assign to this expression
 
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/issues/issue-26093.rs b/src/test/ui/issues/issue-26093.rs
index 7895c90068f..c838515caf9 100644
--- a/src/test/ui/issues/issue-26093.rs
+++ b/src/test/ui/issues/issue-26093.rs
@@ -1,7 +1,9 @@
 macro_rules! not_a_place {
     ($thing:expr) => {
         $thing = 42;
-        //~^ ERROR invalid left-hand side expression
+        //~^ ERROR invalid left-hand side of assignment
+        $thing += 42;
+        //~^ ERROR invalid left-hand side of assignment
     }
 }
 
diff --git a/src/test/ui/issues/issue-26093.stderr b/src/test/ui/issues/issue-26093.stderr
index 947c52f08d2..48f72cef0a8 100644
--- a/src/test/ui/issues/issue-26093.stderr
+++ b/src/test/ui/issues/issue-26093.stderr
@@ -1,12 +1,28 @@
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/issue-26093.rs:3:9
    |
 LL |         $thing = 42;
-   |         ^^^^^^^^^^^ left-hand of expression not valid
+   |         ^^^^^^^^^^^
 ...
 LL |     not_a_place!(99);
-   |     ----------------- in this macro invocation
+   |     -----------------
+   |     |            |
+   |     |            cannot assign to this expression
+   |     in this macro invocation
 
-error: aborting due to previous error
+error[E0067]: invalid left-hand side of assignment
+  --> $DIR/issue-26093.rs:5:16
+   |
+LL |         $thing += 42;
+   |                ^^
+...
+LL |     not_a_place!(99);
+   |     -----------------
+   |     |            |
+   |     |            cannot assign to this expression
+   |     in this macro invocation
+
+error: aborting due to 2 previous errors
 
-For more information about this error, try `rustc --explain E0070`.
+Some errors have detailed explanations: E0067, E0070.
+For more information about an error, try `rustc --explain E0067`.
diff --git a/src/test/ui/issues/issue-34334.rs b/src/test/ui/issues/issue-34334.rs
index 4457d71cbb4..e34b5c9a0f4 100644
--- a/src/test/ui/issues/issue-34334.rs
+++ b/src/test/ui/issues/issue-34334.rs
@@ -3,7 +3,7 @@ fn main () {
     //~^ ERROR expected one of `,` or `>`, found `=`
     //~| ERROR expected value, found struct `Vec`
     //~| ERROR mismatched types
-    //~| ERROR invalid left-hand side expression
+    //~| ERROR invalid left-hand side of assignment
     //~| ERROR expected expression, found reserved identifier `_`
     //~| ERROR expected expression, found reserved identifier `_`
     let sr2: Vec<(u32, _, _)> = sr.iter().map(|(faction, th_sender, th_receiver)| {}).collect();
diff --git a/src/test/ui/issues/issue-34334.stderr b/src/test/ui/issues/issue-34334.stderr
index fc90e0674cf..e54f0c77cd9 100644
--- a/src/test/ui/issues/issue-34334.stderr
+++ b/src/test/ui/issues/issue-34334.stderr
@@ -35,11 +35,13 @@ LL |     let sr: Vec<(u32, _, _) = vec![];
             found struct `std::vec::Vec<_>`
    = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/issue-34334.rs:2:13
    |
 LL |     let sr: Vec<(u32, _, _) = vec![];
-   |             ^^^^^^^^^^^^^^^^^^^^^^^^ left-hand of expression not valid
+   |             ---------------^^^^^^^^^
+   |             |
+   |             cannot assign to this expression
 
 error[E0599]: no method named `iter` found for type `()` in the current scope
   --> $DIR/issue-34334.rs:9:36
diff --git a/src/test/ui/type/type-check/assignment-expected-bool.rs b/src/test/ui/type/type-check/assignment-expected-bool.rs
index 03830fea062..191939bdb70 100644
--- a/src/test/ui/type/type-check/assignment-expected-bool.rs
+++ b/src/test/ui/type/type-check/assignment-expected-bool.rs
@@ -30,5 +30,5 @@ fn main() {
     // A test to check that not expecting `bool` behaves well:
     let _: usize = 0 = 0;
     //~^ ERROR mismatched types [E0308]
-    //~| ERROR invalid left-hand side expression [E0070]
+    //~| ERROR invalid left-hand side of assignment [E0070]
 }
diff --git a/src/test/ui/type/type-check/assignment-expected-bool.stderr b/src/test/ui/type/type-check/assignment-expected-bool.stderr
index 9a1cf5b2562..bbd961f8450 100644
--- a/src/test/ui/type/type-check/assignment-expected-bool.stderr
+++ b/src/test/ui/type/type-check/assignment-expected-bool.stderr
@@ -97,11 +97,13 @@ LL |         || (0 = 0);
    |            expected `bool`, found `()`
    |            help: try comparing for equality: `0 == 0`
 
-error[E0070]: invalid left-hand side expression
+error[E0070]: invalid left-hand side of assignment
   --> $DIR/assignment-expected-bool.rs:31:20
    |
 LL |     let _: usize = 0 = 0;
-   |                    ^^^^^ left-hand of expression not valid
+   |                    -^^^^
+   |                    |
+   |                    cannot assign to this expression
 
 error[E0308]: mismatched types
   --> $DIR/assignment-expected-bool.rs:31:20
diff --git a/src/test/ui/type/type-check/assignment-in-if.rs b/src/test/ui/type/type-check/assignment-in-if.rs
index 77b122b0a79..8da7b32b47b 100644
--- a/src/test/ui/type/type-check/assignment-in-if.rs
+++ b/src/test/ui/type/type-check/assignment-in-if.rs
@@ -26,7 +26,7 @@ fn main() {
         //~^ ERROR mismatched types
         println!("{}", x);
     }
-    // "invalid left-hand side expression" error is suppresed
+    // "invalid left-hand side of assignment" error is suppresed
     if 3 = x {
         //~^ ERROR mismatched types
         println!("{}", x);