about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorMichael Goulet <michael@errs.io>2022-12-30 21:26:34 -0800
committerGitHub <noreply@github.com>2022-12-30 21:26:34 -0800
commit5b74a33b8d03da897553b42270cdab541d28b33f (patch)
tree416bf3006b05d1a7ba7d7067c9d4542a5ef1cd43 /src/test
parentfad73392dc8659f34385f418c8f936bafa562dfb (diff)
parent4271ed48e90d40eb42030e153d3c7b403789c5be (diff)
downloadrust-5b74a33b8d03da897553b42270cdab541d28b33f.tar.gz
rust-5b74a33b8d03da897553b42270cdab541d28b33f.zip
Rollup merge of #106248 - dtolnay:revertupcastlint, r=jackh726
Revert "Implement allow-by-default `multiple_supertrait_upcastable` lint"

This is a clean revert of #105484.

I confirmed that reverting that PR fixes the regression reported in #106247. ~~I can't say I understand what this code is doing, but maybe it can be re-landed with a different implementation.~~ **Edit:** https://github.com/rust-lang/rust/issues/106247#issuecomment-1367174384 has an explanation of why #105484 ends up surfacing spurious `where_clause_object_safety` errors. The implementation of `where_clause_object_safety` assumes we only check whether a trait is object safe when somebody actually uses that trait with `dyn`. However the implementation of `multiple_supertrait_upcastable` added in the problematic PR involves checking *every* trait for whether it is object-safe.

FYI `@nbdd0121` `@compiler-errors`
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.rs12
-rw-r--r--src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.stderr57
-rw-r--r--src/test/ui/object-safety/issue-106247.rs9
-rw-r--r--src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.rs10
-rw-r--r--src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.stderr14
5 files changed, 9 insertions, 93 deletions
diff --git a/src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.rs b/src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.rs
deleted file mode 100644
index 0467dea621b..00000000000
--- a/src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-// check-pass
-
-#![deny(multiple_supertrait_upcastable)]
-//~^ WARNING unknown lint: `multiple_supertrait_upcastable`
-//~| WARNING unknown lint: `multiple_supertrait_upcastable`
-//~| WARNING unknown lint: `multiple_supertrait_upcastable`
-#![warn(multiple_supertrait_upcastable)]
-//~^ WARNING unknown lint: `multiple_supertrait_upcastable`
-//~| WARNING unknown lint: `multiple_supertrait_upcastable`
-//~| WARNING unknown lint: `multiple_supertrait_upcastable`
-
-fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.stderr b/src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.stderr
deleted file mode 100644
index 1f725f35417..00000000000
--- a/src/test/ui/feature-gates/feature-gate-multiple_supertrait_upcastable.stderr
+++ /dev/null
@@ -1,57 +0,0 @@
-warning: unknown lint: `multiple_supertrait_upcastable`
-  --> $DIR/feature-gate-multiple_supertrait_upcastable.rs:3:1
-   |
-LL | #![deny(multiple_supertrait_upcastable)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the `multiple_supertrait_upcastable` lint is unstable
-   = help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
-   = note: `#[warn(unknown_lints)]` on by default
-
-warning: unknown lint: `multiple_supertrait_upcastable`
-  --> $DIR/feature-gate-multiple_supertrait_upcastable.rs:7:1
-   |
-LL | #![warn(multiple_supertrait_upcastable)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the `multiple_supertrait_upcastable` lint is unstable
-   = help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
-
-warning: unknown lint: `multiple_supertrait_upcastable`
-  --> $DIR/feature-gate-multiple_supertrait_upcastable.rs:3:1
-   |
-LL | #![deny(multiple_supertrait_upcastable)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the `multiple_supertrait_upcastable` lint is unstable
-   = help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
-
-warning: unknown lint: `multiple_supertrait_upcastable`
-  --> $DIR/feature-gate-multiple_supertrait_upcastable.rs:7:1
-   |
-LL | #![warn(multiple_supertrait_upcastable)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the `multiple_supertrait_upcastable` lint is unstable
-   = help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
-
-warning: unknown lint: `multiple_supertrait_upcastable`
-  --> $DIR/feature-gate-multiple_supertrait_upcastable.rs:3:1
-   |
-LL | #![deny(multiple_supertrait_upcastable)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the `multiple_supertrait_upcastable` lint is unstable
-   = help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
-
-warning: unknown lint: `multiple_supertrait_upcastable`
-  --> $DIR/feature-gate-multiple_supertrait_upcastable.rs:7:1
-   |
-LL | #![warn(multiple_supertrait_upcastable)]
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: the `multiple_supertrait_upcastable` lint is unstable
-   = help: add `#![feature(multiple_supertrait_upcastable)]` to the crate attributes to enable
-
-warning: 6 warnings emitted
-
diff --git a/src/test/ui/object-safety/issue-106247.rs b/src/test/ui/object-safety/issue-106247.rs
new file mode 100644
index 00000000000..64bf59e5d3a
--- /dev/null
+++ b/src/test/ui/object-safety/issue-106247.rs
@@ -0,0 +1,9 @@
+// check-pass
+
+#![deny(where_clauses_object_safety)]
+
+pub trait Trait {
+    fn method(&self) where Self: Sync;
+}
+
+fn main() {}
diff --git a/src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.rs b/src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.rs
deleted file mode 100644
index 3c6ab86e4c6..00000000000
--- a/src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-#![feature(multiple_supertrait_upcastable)]
-#![deny(multiple_supertrait_upcastable)]
-
-trait A {}
-trait B {}
-
-trait C: A + B {}
-//~^ ERROR `C` is object-safe and has multiple supertraits
-
-fn main() {}
diff --git a/src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.stderr b/src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.stderr
deleted file mode 100644
index ad80a009ece..00000000000
--- a/src/test/ui/traits/trait-upcasting/multiple_supertrait_upcastable.stderr
+++ /dev/null
@@ -1,14 +0,0 @@
-error: `C` is object-safe and has multiple supertraits
-  --> $DIR/multiple_supertrait_upcastable.rs:7:1
-   |
-LL | trait C: A + B {}
-   | ^^^^^^^^^^^^^^
-   |
-note: the lint level is defined here
-  --> $DIR/multiple_supertrait_upcastable.rs:2:9
-   |
-LL | #![deny(multiple_supertrait_upcastable)]
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error
-