diff options
| author | David Wood <david@davidtw.co> | 2018-08-08 14:50:16 +0200 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2018-08-14 11:12:09 +0200 |
| commit | 3fc7ab237314a4ce85e612b4ce590c27f1425291 (patch) | |
| tree | c775f852e05e1272032cb053ee347315c973c7b5 /src/test/ui/derived-errors | |
| parent | 3e0a4079884eab5b54489c92f7428cda2797ea5c (diff) | |
| download | rust-3fc7ab237314a4ce85e612b4ce590c27f1425291.tar.gz rust-3fc7ab237314a4ce85e612b4ce590c27f1425291.zip | |
Merged migrated compile-fail tests and ui tests. Fixes #46841.
Diffstat (limited to 'src/test/ui/derived-errors')
| -rw-r--r-- | src/test/ui/derived-errors/issue-30580.rs | 27 | ||||
| -rw-r--r-- | src/test/ui/derived-errors/issue-30580.stderr | 9 | ||||
| -rw-r--r-- | src/test/ui/derived-errors/issue-31997.rs | 27 | ||||
| -rw-r--r-- | src/test/ui/derived-errors/issue-31997.stderr | 9 |
4 files changed, 72 insertions, 0 deletions
diff --git a/src/test/ui/derived-errors/issue-30580.rs b/src/test/ui/derived-errors/issue-30580.rs new file mode 100644 index 00000000000..553ad0a3341 --- /dev/null +++ b/src/test/ui/derived-errors/issue-30580.rs @@ -0,0 +1,27 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Test that we do not see uninformative region-related errors +// when we get some basic type-checking failure. See #30580. + +pub struct Foo { a: u32 } +pub struct Pass<'a, 'tcx: 'a>(&'a mut &'a (), &'a &'tcx ()); + +impl<'a, 'tcx> Pass<'a, 'tcx> +{ + pub fn tcx(&self) -> &'a &'tcx () { self.1 } + fn lol(&mut self, b: &Foo) + { + b.c; //~ ERROR no field `c` on type `&Foo` + self.tcx(); + } +} + +fn main() {} diff --git a/src/test/ui/derived-errors/issue-30580.stderr b/src/test/ui/derived-errors/issue-30580.stderr new file mode 100644 index 00000000000..bf9a5a299e3 --- /dev/null +++ b/src/test/ui/derived-errors/issue-30580.stderr @@ -0,0 +1,9 @@ +error[E0609]: no field `c` on type `&Foo` + --> $DIR/issue-30580.rs:22:11 + | +LL | b.c; //~ ERROR no field `c` on type `&Foo` + | ^ + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0609`. diff --git a/src/test/ui/derived-errors/issue-31997.rs b/src/test/ui/derived-errors/issue-31997.rs new file mode 100644 index 00000000000..2e1d3c55a8f --- /dev/null +++ b/src/test/ui/derived-errors/issue-31997.rs @@ -0,0 +1,27 @@ +// Copyright 2012 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +// Test that the resolve failure does not lead to downstream type errors. +// See issue #31997. + +trait TheTrait { } + +fn closure<F, T>(x: F) -> Result<T, ()> + where F: FnMut() -> T, T: TheTrait, +{ + unimplemented!() +} + +fn foo() -> Result<(), ()> { + try!(closure(|| bar(0 as *mut _))); //~ ERROR cannot find function `bar` in this scope + Ok(()) +} + +fn main() { } diff --git a/src/test/ui/derived-errors/issue-31997.stderr b/src/test/ui/derived-errors/issue-31997.stderr new file mode 100644 index 00000000000..25088e8654b --- /dev/null +++ b/src/test/ui/derived-errors/issue-31997.stderr @@ -0,0 +1,9 @@ +error[E0425]: cannot find function `bar` in this scope + --> $DIR/issue-31997.rs:23:21 + | +LL | try!(closure(|| bar(0 as *mut _))); //~ ERROR cannot find function `bar` in this scope + | ^^^ not found in this scope + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0425`. |
