about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
authorRémy Rakic <remy.rakic+github@gmail.com>2021-08-03 19:22:39 +0200
committerRémy Rakic <remy.rakic+github@gmail.com>2021-08-03 20:30:09 +0200
commit42237cc8976e38d08e4d325a024b9cf5f819bf55 (patch)
treeab354ce82387f56aa7bb8d715bcbfd89e2419f11 /src
parentbfadfbb1939e174fdfd195a4e469f496d892863b (diff)
downloadrust-42237cc8976e38d08e4d325a024b9cf5f819bf55.tar.gz
rust-42237cc8976e38d08e4d325a024b9cf5f819bf55.zip
bless trait upcasting tests under polonius
The diagnostics are different from the NLL ones but the same errors are
emitted.
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr22
-rw-r--r--src/test/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr33
2 files changed, 55 insertions, 0 deletions
diff --git a/src/test/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr b/src/test/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr
new file mode 100644
index 00000000000..e48ba709af1
--- /dev/null
+++ b/src/test/ui/traits/trait-upcasting/type-checking-test-3.polonius.stderr
@@ -0,0 +1,22 @@
+error: lifetime may not live long enough
+  --> $DIR/type-checking-test-3.rs:13:13
+   |
+LL | fn test_wrong1<'a>(x: &dyn Foo<'static>, y: &'a u32) {
+   |                -- lifetime `'a` defined here
+LL |     let _ = x as &dyn Bar<'a>; // Error
+   |             ^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
+   |
+   = help: consider replacing `'a` with `'static`
+
+error: lifetime may not live long enough
+  --> $DIR/type-checking-test-3.rs:18:13
+   |
+LL | fn test_wrong2<'a>(x: &dyn Foo<'a>) {
+   |                -- lifetime `'a` defined here
+LL |     let _ = x as &dyn Bar<'static>; // Error
+   |             ^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
+   |
+   = help: consider replacing `'a` with `'static`
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr b/src/test/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr
new file mode 100644
index 00000000000..a3411f40ad0
--- /dev/null
+++ b/src/test/ui/traits/trait-upcasting/type-checking-test-4.polonius.stderr
@@ -0,0 +1,33 @@
+error: lifetime may not live long enough
+  --> $DIR/type-checking-test-4.rs:17:13
+   |
+LL | fn test_wrong1<'a>(x: &dyn Foo<'static>, y: &'a u32) {
+   |                -- lifetime `'a` defined here
+LL |     let _ = x as &dyn Bar<'static, 'a>; // Error
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
+   |
+   = help: consider replacing `'a` with `'static`
+
+error: lifetime may not live long enough
+  --> $DIR/type-checking-test-4.rs:22:13
+   |
+LL | fn test_wrong2<'a>(x: &dyn Foo<'static>, y: &'a u32) {
+   |                -- lifetime `'a` defined here
+LL |     let _ = x as &dyn Bar<'a, 'static>; // Error
+   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^ type annotation requires that `'a` must outlive `'static`
+   |
+   = help: consider replacing `'a` with `'static`
+
+error: lifetime may not live long enough
+  --> $DIR/type-checking-test-4.rs:29:5
+   |
+LL | fn test_wrong3<'a>(x: &dyn Foo<'a>) -> Option<&'static u32> {
+   |                -- lifetime `'a` defined here
+...
+LL |     y.get_b() // ERROR
+   |     ^^^^^^^^^ returning this value requires that `'a` must outlive `'static`
+   |
+   = help: consider replacing `'a` with `'static`
+
+error: aborting due to 3 previous errors
+