From 43a97878ce14b72f0981164f87f2e35e14151312 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:22:09 +0200 Subject: Adding upstream version 110.0.1. Signed-off-by: Daniel Baumann --- third_party/rust/inherent/tests/compiletest.rs | 7 ++++++ third_party/rust/inherent/tests/test.rs | 25 ++++++++++++++++++++++ third_party/rust/inherent/tests/ui/blanket-impl.rs | 12 +++++++++++ .../rust/inherent/tests/ui/blanket-impl.stderr | 7 ++++++ .../rust/inherent/tests/ui/not-trait-impl.rs | 10 +++++++++ .../rust/inherent/tests/ui/not-trait-impl.stderr | 7 ++++++ third_party/rust/inherent/tests/ui/not-visible.rs | 18 ++++++++++++++++ .../rust/inherent/tests/ui/not-visible.stderr | 8 +++++++ 8 files changed, 94 insertions(+) create mode 100644 third_party/rust/inherent/tests/compiletest.rs create mode 100644 third_party/rust/inherent/tests/test.rs create mode 100644 third_party/rust/inherent/tests/ui/blanket-impl.rs create mode 100644 third_party/rust/inherent/tests/ui/blanket-impl.stderr create mode 100644 third_party/rust/inherent/tests/ui/not-trait-impl.rs create mode 100644 third_party/rust/inherent/tests/ui/not-trait-impl.stderr create mode 100644 third_party/rust/inherent/tests/ui/not-visible.rs create mode 100644 third_party/rust/inherent/tests/ui/not-visible.stderr (limited to 'third_party/rust/inherent/tests') diff --git a/third_party/rust/inherent/tests/compiletest.rs b/third_party/rust/inherent/tests/compiletest.rs new file mode 100644 index 0000000000..7974a6249e --- /dev/null +++ b/third_party/rust/inherent/tests/compiletest.rs @@ -0,0 +1,7 @@ +#[rustversion::attr(not(nightly), ignore)] +#[cfg_attr(miri, ignore)] +#[test] +fn ui() { + let t = trybuild::TestCases::new(); + t.compile_fail("tests/ui/*.rs"); +} diff --git a/third_party/rust/inherent/tests/test.rs b/third_party/rust/inherent/tests/test.rs new file mode 100644 index 0000000000..801b1c1165 --- /dev/null +++ b/third_party/rust/inherent/tests/test.rs @@ -0,0 +1,25 @@ +mod types { + use inherent::inherent; + + trait Trait { + fn f(self); + // A default method + fn g(&self) {} + } + + pub struct Struct; + + #[inherent] + impl Trait for Struct { + pub fn f(self) {} + pub fn g(&self); + } +} + +#[test] +fn test() { + // types::Trait is not in scope. + let s = types::Struct; + s.g(); + s.f::(); +} diff --git a/third_party/rust/inherent/tests/ui/blanket-impl.rs b/third_party/rust/inherent/tests/ui/blanket-impl.rs new file mode 100644 index 0000000000..d775c5e937 --- /dev/null +++ b/third_party/rust/inherent/tests/ui/blanket-impl.rs @@ -0,0 +1,12 @@ +use inherent::inherent; + +trait A { + fn a(&self); +} + +#[inherent] +impl A for T { + fn a(&self) {} +} + +fn main() {} diff --git a/third_party/rust/inherent/tests/ui/blanket-impl.stderr b/third_party/rust/inherent/tests/ui/blanket-impl.stderr new file mode 100644 index 0000000000..9b38b927c4 --- /dev/null +++ b/third_party/rust/inherent/tests/ui/blanket-impl.stderr @@ -0,0 +1,7 @@ +error[E0118]: no nominal type found for inherent implementation + --> tests/ui/blanket-impl.rs:8:15 + | +8 | impl A for T { + | ^ impl requires a nominal type + | + = note: either implement a trait on it or create a newtype to wrap it instead diff --git a/third_party/rust/inherent/tests/ui/not-trait-impl.rs b/third_party/rust/inherent/tests/ui/not-trait-impl.rs new file mode 100644 index 0000000000..a9a6a11628 --- /dev/null +++ b/third_party/rust/inherent/tests/ui/not-trait-impl.rs @@ -0,0 +1,10 @@ +use inherent::inherent; + +struct Struct; + +#[inherent] +impl Struct { + fn f() {} +} + +fn main() {} diff --git a/third_party/rust/inherent/tests/ui/not-trait-impl.stderr b/third_party/rust/inherent/tests/ui/not-trait-impl.stderr new file mode 100644 index 0000000000..ea723e86b0 --- /dev/null +++ b/third_party/rust/inherent/tests/ui/not-trait-impl.stderr @@ -0,0 +1,7 @@ +error: must be placed on a trait impl + --> tests/ui/not-trait-impl.rs:5:1 + | +5 | #[inherent] + | ^^^^^^^^^^^ + | + = note: this error originates in the attribute macro `inherent` (in Nightly builds, run with -Z macro-backtrace for more info) diff --git a/third_party/rust/inherent/tests/ui/not-visible.rs b/third_party/rust/inherent/tests/ui/not-visible.rs new file mode 100644 index 0000000000..faccf90ff4 --- /dev/null +++ b/third_party/rust/inherent/tests/ui/not-visible.rs @@ -0,0 +1,18 @@ +mod types { + use inherent::inherent; + + trait Trait { + fn f(); + } + + pub struct Struct; + + #[inherent] + impl Trait for Struct { + fn f() {} + } +} + +fn main() { + types::Struct::f(); +} diff --git a/third_party/rust/inherent/tests/ui/not-visible.stderr b/third_party/rust/inherent/tests/ui/not-visible.stderr new file mode 100644 index 0000000000..9fb9d7b892 --- /dev/null +++ b/third_party/rust/inherent/tests/ui/not-visible.stderr @@ -0,0 +1,8 @@ +error[E0624]: associated function `f` is private + --> tests/ui/not-visible.rs:17:20 + | +12 | fn f() {} + | ------ private associated function defined here +... +17 | types::Struct::f(); + | ^ private associated function -- cgit v1.2.3