From 1484f9cd46013a227d1d057508ff57ebc5930a8d Mon Sep 17 00:00:00 2001 From: Jakub Bukaj Date: Tue, 21 Oct 2014 03:40:15 +0200 Subject: [PATCH] Update tests with the new error messages --- .../compile-fail/destructure-trait-ref.rs | 12 +++++----- src/test/compile-fail/issue-13482.rs | 3 ++- src/test/compile-fail/issue-13624.rs | 3 ++- src/test/compile-fail/issue-14541.rs | 4 ++-- src/test/compile-fail/issue-15260.rs | 22 ++++++++++++++----- src/test/compile-fail/issue-15896.rs | 4 +++- src/test/compile-fail/issue-16338.rs | 3 ++- src/test/compile-fail/issue-16401.rs | 3 ++- src/test/compile-fail/issue-17405.rs | 2 +- src/test/compile-fail/issue-17800.rs | 2 +- src/test/compile-fail/issue-5100.rs | 13 +++++++---- src/test/compile-fail/issue-7092.rs | 5 +++-- src/test/compile-fail/match-vec-mismatch-2.rs | 3 ++- .../compile-fail/pattern-error-continue.rs | 3 ++- src/test/compile-fail/suppressed-error.rs | 3 ++- 15 files changed, 56 insertions(+), 29 deletions(-) diff --git a/src/test/compile-fail/destructure-trait-ref.rs b/src/test/compile-fail/destructure-trait-ref.rs index 27aa43638f4e4..a2a5a3e257f29 100644 --- a/src/test/compile-fail/destructure-trait-ref.rs +++ b/src/test/compile-fail/destructure-trait-ref.rs @@ -30,12 +30,12 @@ fn main() { let &&x = &&(&1i as &T); // n == m - let &x = &1i as &T; //~ ERROR cannot be dereferenced - let &&x = &(&1i as &T); //~ ERROR cannot be dereferenced - let box x = box 1i as Box; //~ ERROR cannot be dereferenced + let &x = &1i as &T; //~ ERROR type `&T` cannot be dereferenced + let &&x = &(&1i as &T); //~ ERROR type `&T` cannot be dereferenced + let box x = box 1i as Box; //~ ERROR type `Box` cannot be dereferenced // n > m - let &&x = &1i as &T; //~ ERROR found an `&`-pointer pattern - let &&&x = &(&1i as &T); //~ ERROR found an `&`-pointer pattern - let box box x = box 1i as Box; //~ ERROR found a box pattern + let &&x = &1i as &T; //~ ERROR found &-ptr + let &&&x = &(&1i as &T); //~ ERROR found &-ptr + let box box x = box 1i as Box; //~ ERROR found box } diff --git a/src/test/compile-fail/issue-13482.rs b/src/test/compile-fail/issue-13482.rs index 2c7b56f9dc7f7..43c7f45e15a55 100644 --- a/src/test/compile-fail/issue-13482.rs +++ b/src/test/compile-fail/issue-13482.rs @@ -12,7 +12,8 @@ fn main() { let x = [1,2]; let y = match x { [] => None, -//~^ ERROR expected `[, ..2]`, found a fixed array pattern of size 0 +//~^ ERROR mismatched types: expected `[, ..2]`, found `[, ..0]` +// (expected array, found array) [a,_] => Some(a) }; } diff --git a/src/test/compile-fail/issue-13624.rs b/src/test/compile-fail/issue-13624.rs index 0593b498192b5..0c103515981cd 100644 --- a/src/test/compile-fail/issue-13624.rs +++ b/src/test/compile-fail/issue-13624.rs @@ -29,7 +29,8 @@ mod b { let enum_struct_variant = ::a::get_enum_struct_variant(); match enum_struct_variant { a::EnumStructVariant { x, y, z } => { - //~^ ERROR error: mismatched types: expected `()`, found a structure pattern + //~^ ERROR mismatched types: expected `()`, found `a::Enum` + // (expected (), found enum a::Enum) } } } diff --git a/src/test/compile-fail/issue-14541.rs b/src/test/compile-fail/issue-14541.rs index 921e331e960dc..ac49f8b99cf2d 100644 --- a/src/test/compile-fail/issue-14541.rs +++ b/src/test/compile-fail/issue-14541.rs @@ -13,8 +13,8 @@ struct vec3 { y: f32, z: f32 } fn make(v: vec2) { let vec3 { y: _, z: _ } = v; - //~^ ERROR `vec3` does not name the structure `vec2` - //~^^ ERROR struct `vec2` does not have a field named `z` + //~^ ERROR mismatched types: expected `vec2`, found `vec3` + // (expected struct vec2, found struct vec3) } fn main() { } diff --git a/src/test/compile-fail/issue-15260.rs b/src/test/compile-fail/issue-15260.rs index 06826139884fb..e3d19729710af 100644 --- a/src/test/compile-fail/issue-15260.rs +++ b/src/test/compile-fail/issue-15260.rs @@ -9,11 +9,23 @@ // except according to those terms. struct Foo { - a: uint, + a: uint, } -fn main(){ - let Foo {a: _, a: _} = Foo {a: 29}; - //~^ ERROR field `a` bound twice in pattern -} +fn main() { + let Foo { + a: _, //~ NOTE field `a` previously bound here + a: _ //~ ERROR field `a` bound multiple times in the pattern + } = Foo { a: 29 }; + + let Foo { + a, //~ NOTE field `a` previously bound here + a: _ //~ ERROR field `a` bound multiple times in the pattern + } = Foo { a: 29 }; + let Foo { + a, //~ NOTE field `a` previously bound here + a: _, //~ ERROR field `a` bound multiple times in the pattern + a: x //~ ERROR field `a` bound multiple times in the pattern + } = Foo { a: 29 }; +} diff --git a/src/test/compile-fail/issue-15896.rs b/src/test/compile-fail/issue-15896.rs index b7fa54e5c1883..5d92208d3e3fb 100644 --- a/src/test/compile-fail/issue-15896.rs +++ b/src/test/compile-fail/issue-15896.rs @@ -18,7 +18,9 @@ fn main() { let e = B(REB(()), Tau { t: 3 }); let u = match e { B( - Tau{t: x}, //~ ERROR `Tau` does not name a variant + Tau{t: x}, + //~^ ERROR mismatched types: expected `main::R`, found `main::Tau` + // (expected enum main::R, found struct main::Tau) _) => x, }; } diff --git a/src/test/compile-fail/issue-16338.rs b/src/test/compile-fail/issue-16338.rs index 305b1fe2ad7de..537fc5aaa5503 100644 --- a/src/test/compile-fail/issue-16338.rs +++ b/src/test/compile-fail/issue-16338.rs @@ -12,6 +12,7 @@ use std::raw::Slice; fn main() { let Slice { data: data, len: len } = "foo"; - //~^ ERROR mismatched types: expected `&str`, found a structure pattern + //~^ ERROR mismatched types: expected `&str`, found `core::raw::Slice<>` + // (expected &-ptr, found struct core::raw::Slice) } diff --git a/src/test/compile-fail/issue-16401.rs b/src/test/compile-fail/issue-16401.rs index bece4381e4183..deb2f5912b652 100644 --- a/src/test/compile-fail/issue-16401.rs +++ b/src/test/compile-fail/issue-16401.rs @@ -13,7 +13,8 @@ use std::raw::Slice; fn main() { match () { Slice { data: data, len: len } => (), - //~^ ERROR mismatched types: expected `()`, found a structure pattern + //~^ ERROR mismatched types: expected `()`, found `core::raw::Slice<>` + // (expected (), found struct core::raw::Slice) _ => unreachable!() } } diff --git a/src/test/compile-fail/issue-17405.rs b/src/test/compile-fail/issue-17405.rs index b80cfb521ef1d..b0f2e0b666e3d 100644 --- a/src/test/compile-fail/issue-17405.rs +++ b/src/test/compile-fail/issue-17405.rs @@ -14,6 +14,6 @@ enum Foo { fn main() { match Bar(1i) { - Foo { i } => () //~ ERROR `Foo` does not name a variant + Foo { i } => () //~ ERROR `Foo` does not name a struct or a struct variant } } diff --git a/src/test/compile-fail/issue-17800.rs b/src/test/compile-fail/issue-17800.rs index 8ef016e3fd5a7..30a8a51ed8c06 100644 --- a/src/test/compile-fail/issue-17800.rs +++ b/src/test/compile-fail/issue-17800.rs @@ -15,7 +15,7 @@ enum MyOption { fn main() { match MySome(42i) { - MySome { x: 42i } => (), //~ ERROR `MySome` does not name a struct variant + MySome { x: 42i } => (), //~ ERROR `MySome` does not name a struct or a struct variant _ => (), } } diff --git a/src/test/compile-fail/issue-5100.rs b/src/test/compile-fail/issue-5100.rs index 5c4127c5bae5e..6524056df888b 100644 --- a/src/test/compile-fail/issue-5100.rs +++ b/src/test/compile-fail/issue-5100.rs @@ -12,24 +12,29 @@ enum A { B, C } fn main() { match (true, false) { - B => (), //~ ERROR expected `(bool,bool)`, found an enum or structure pattern + B => (), + //~^ ERROR mismatched types: expected `(bool,bool)`, found `A` + // (expected tuple, found enum A) _ => () } match (true, false) { (true, false, false) => () - //~^ ERROR mismatched types: expected `(bool,bool)`, found tuple + //~^ ERROR mismatched types: expected `(bool,bool)`, + // found `(,,)` // (expected a tuple with 2 elements, found one with 3 elements) } match (true, false) { box (true, false) => () - //~^ ERROR mismatched types: expected `(bool,bool)`, found a box pattern + //~^ ERROR mismatched types: expected `(bool,bool)`, found `Box<>` + // (expected tuple, found box) } match (true, false) { &(true, false) => () - //~^ ERROR mismatched types: expected `(bool,bool)`, found an `&`-pointer pattern + //~^ ERROR mismatched types: expected `(bool,bool)`, found `&` + // (expected tuple, found &-ptr) } diff --git a/src/test/compile-fail/issue-7092.rs b/src/test/compile-fail/issue-7092.rs index 8b3df6f9f95e2..cc7e8052920b2 100644 --- a/src/test/compile-fail/issue-7092.rs +++ b/src/test/compile-fail/issue-7092.rs @@ -13,8 +13,9 @@ enum Whatever { fn foo(x: Whatever) { match x { - Some(field) => field.access(), - //~^ ERROR: mismatched types: expected `Whatever`, found + Some(field) => +//~^ ERROR: mismatched types: expected `Whatever`, found `core::option::Option<>` + field.access(), //~ ERROR the type of this value must be known in this context } } diff --git a/src/test/compile-fail/match-vec-mismatch-2.rs b/src/test/compile-fail/match-vec-mismatch-2.rs index e095c7c240859..6d37eb8a63645 100644 --- a/src/test/compile-fail/match-vec-mismatch-2.rs +++ b/src/test/compile-fail/match-vec-mismatch-2.rs @@ -10,6 +10,7 @@ fn main() { match () { - [()] => { } //~ ERROR mismatched types: expected `()`, found an array pattern + [()] => { } +//~^ ERROR mismatched types: expected `()`, found `&[]` (expected (), found &-ptr) } } diff --git a/src/test/compile-fail/pattern-error-continue.rs b/src/test/compile-fail/pattern-error-continue.rs index 01feda34e0870..f438f9973cf11 100644 --- a/src/test/compile-fail/pattern-error-continue.rs +++ b/src/test/compile-fail/pattern-error-continue.rs @@ -29,7 +29,8 @@ fn main() { _ => () } match 'c' { - S { .. } => (), //~ ERROR mismatched types: expected `char`, found a structure pattern + S { .. } => (), + //~^ ERROR mismatched types: expected `char`, found `S` (expected char, found struct S) _ => () } diff --git a/src/test/compile-fail/suppressed-error.rs b/src/test/compile-fail/suppressed-error.rs index f13aabe52594a..54d6fa5bdd395 100644 --- a/src/test/compile-fail/suppressed-error.rs +++ b/src/test/compile-fail/suppressed-error.rs @@ -9,6 +9,7 @@ // except according to those terms. fn main() { - let (x, y) = (); //~ ERROR expected `()`, found tuple (types differ) + let (x, y) = (); +//~^ ERROR types: expected `()`, found `(,)` (expected (), found tuple) return x; }