summaryrefslogtreecommitdiffstats
path: root/src/test/ui/deprecation/deprecation-lint.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /src/test/ui/deprecation/deprecation-lint.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz
rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/test/ui/deprecation/deprecation-lint.rs')
-rw-r--r--src/test/ui/deprecation/deprecation-lint.rs454
1 files changed, 0 insertions, 454 deletions
diff --git a/src/test/ui/deprecation/deprecation-lint.rs b/src/test/ui/deprecation/deprecation-lint.rs
deleted file mode 100644
index 0417e952e..000000000
--- a/src/test/ui/deprecation/deprecation-lint.rs
+++ /dev/null
@@ -1,454 +0,0 @@
-// aux-build:deprecation-lint.rs
-
-#![deny(deprecated)]
-#![allow(warnings)]
-
-#[macro_use]
-extern crate deprecation_lint;
-
-mod cross_crate {
- use deprecation_lint::*;
-
- fn test() {
- type Foo = MethodTester;
- let foo = MethodTester;
-
- deprecated(); //~ ERROR use of deprecated function `deprecation_lint::deprecated`
- foo.method_deprecated(); //~ ERROR use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated`
- Foo::method_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated`
- <Foo>::method_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated`
- foo.trait_deprecated(); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- Trait::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- <Foo>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- <Foo as Trait>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
-
- deprecated_text(); //~ ERROR use of deprecated function `deprecation_lint::deprecated_text`: text
- foo.method_deprecated_text(); //~ ERROR use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated_text`: text
- Foo::method_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated_text`: text
- <Foo>::method_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::MethodTester::method_deprecated_text`: text
- foo.trait_deprecated_text(); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- Trait::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- <Foo>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- <Foo as Trait>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
-
- let _ = DeprecatedStruct { //~ ERROR use of deprecated struct `deprecation_lint::DeprecatedStruct`: text
- i: 0 //~ ERROR use of deprecated field `deprecation_lint::DeprecatedStruct::i`: text
- };
-
- let _ = DeprecatedUnitStruct; //~ ERROR use of deprecated unit struct `deprecation_lint::DeprecatedUnitStruct`: text
-
- let _ = Enum::DeprecatedVariant; //~ ERROR use of deprecated unit variant `deprecation_lint::Enum::DeprecatedVariant`: text
-
- let _ = DeprecatedTupleStruct (1); //~ ERROR use of deprecated tuple struct `deprecation_lint::DeprecatedTupleStruct`: text
-
- let _ = nested::DeprecatedStruct { //~ ERROR use of deprecated struct `deprecation_lint::nested::DeprecatedStruct`: text
- i: 0 //~ ERROR use of deprecated field `deprecation_lint::nested::DeprecatedStruct::i`: text
- };
-
- let _ = nested::DeprecatedUnitStruct; //~ ERROR use of deprecated unit struct `deprecation_lint::nested::DeprecatedUnitStruct`: text
-
- let _ = nested::Enum::DeprecatedVariant; //~ ERROR use of deprecated unit variant `deprecation_lint::nested::Enum::DeprecatedVariant`: text
-
- let _ = nested::DeprecatedTupleStruct (1); //~ ERROR use of deprecated tuple struct `deprecation_lint::nested::DeprecatedTupleStruct`: text
-
- // At the moment, the lint checker only checks stability
- // in the arguments of macros.
- // Eventually, we will want to lint the contents of the
- // macro in the module *defining* it. Also, stability levels
- // on macros themselves are not yet linted.
- macro_test_arg!(deprecated_text()); //~ ERROR use of deprecated function `deprecation_lint::deprecated_text`: text
- macro_test_arg!(macro_test_arg!(deprecated_text())); //~ ERROR use of deprecated function `deprecation_lint::deprecated_text`: text
- }
-
- fn test_method_param<Foo: Trait>(foo: Foo) {
- foo.trait_deprecated(); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- Trait::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- <Foo>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- <Foo as Trait>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- foo.trait_deprecated_text(); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- Trait::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- <Foo>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- <Foo as Trait>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- }
-
- fn test_method_object(foo: &Trait) {
- foo.trait_deprecated(); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated`
- foo.trait_deprecated_text(); //~ ERROR use of deprecated associated function `deprecation_lint::Trait::trait_deprecated_text`: text
- }
-
- struct S;
-
- impl DeprecatedTrait for S {} //~ ERROR use of deprecated trait `deprecation_lint::DeprecatedTrait`: text
- trait LocalTrait : DeprecatedTrait { } //~ ERROR use of deprecated trait `deprecation_lint::DeprecatedTrait`: text
-
- pub fn foo() {
- let x = Stable {
- override2: 3,
- //~^ ERROR use of deprecated field `deprecation_lint::Stable::override2`: text
- };
-
- let _ = x.override2;
- //~^ ERROR use of deprecated field `deprecation_lint::Stable::override2`: text
-
- let Stable {
- override2: _
- //~^ ERROR use of deprecated field `deprecation_lint::Stable::override2`: text
- } = x;
- // all fine
- let Stable { .. } = x;
-
- let x = Stable2(1, 2, 3);
-
- let _ = x.2;
- //~^ ERROR use of deprecated field `deprecation_lint::Stable2::2`: text
-
- let Stable2(_,
- _,
- _)
- //~^ ERROR use of deprecated field `deprecation_lint::Stable2::2`: text
- = x;
- // all fine
- let Stable2(..) = x;
-
- let x = Deprecated {
- //~^ ERROR use of deprecated struct `deprecation_lint::Deprecated`: text
- inherit: 1,
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated::inherit`: text
- };
-
- let _ = x.inherit;
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated::inherit`: text
-
- let Deprecated {
- //~^ ERROR use of deprecated struct `deprecation_lint::Deprecated`: text
- inherit: _,
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated::inherit`: text
- } = x;
-
- let Deprecated
- //~^ ERROR use of deprecated struct `deprecation_lint::Deprecated`: text
- { .. } = x;
-
- let x = Deprecated2(1, 2, 3);
- //~^ ERROR use of deprecated tuple struct `deprecation_lint::Deprecated2`: text
-
- let _ = x.0;
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated2::0`: text
- let _ = x.1;
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated2::1`: text
- let _ = x.2;
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated2::2`: text
-
- let Deprecated2
- //~^ ERROR use of deprecated tuple struct `deprecation_lint::Deprecated2`: text
- (_,
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated2::0`: text
- _,
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated2::1`: text
- _)
- //~^ ERROR use of deprecated field `deprecation_lint::Deprecated2::2`: text
- = x;
- let Deprecated2
- //~^ ERROR use of deprecated tuple struct `deprecation_lint::Deprecated2`: text
- // the patterns are all fine:
- (..) = x;
- }
-}
-
-mod inheritance {
- use deprecation_lint::*;
-
- fn test_inheritance() {
- deprecated_mod::deprecated(); //~ ERROR use of deprecated function `deprecation_lint::deprecated_mod::deprecated`: text
- }
-}
-
-mod this_crate {
- #[deprecated(since = "1.0.0", note = "text")]
- pub fn deprecated() {}
- #[deprecated(since = "1.0.0", note = "text")]
- pub fn deprecated_text() {}
-
- #[deprecated(since = "99.99.99", note = "text")]
- pub fn deprecated_future() {}
- #[deprecated(since = "99.99.99", note = "text")]
- pub fn deprecated_future_text() {}
-
- pub struct MethodTester;
-
- impl MethodTester {
- #[deprecated(since = "1.0.0", note = "text")]
- pub fn method_deprecated(&self) {}
- #[deprecated(since = "1.0.0", note = "text")]
- pub fn method_deprecated_text(&self) {}
- }
-
- pub trait Trait {
- #[deprecated(since = "1.0.0", note = "text")]
- fn trait_deprecated(&self) {}
- #[deprecated(since = "1.0.0", note = "text")]
- fn trait_deprecated_text(&self) {}
- }
-
- impl Trait for MethodTester {}
-
- #[deprecated(since = "1.0.0", note = "text")]
- pub struct DeprecatedStruct {
- i: isize
- }
- pub struct UnstableStruct {
- i: isize
- }
- pub struct StableStruct {
- i: isize
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- pub struct DeprecatedUnitStruct;
-
- pub enum Enum {
- #[deprecated(since = "1.0.0", note = "text")]
- DeprecatedVariant,
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- pub struct DeprecatedTupleStruct(isize);
-
- mod nested {
- #[deprecated(since = "1.0.0", note = "text")]
- pub struct DeprecatedStruct {
- i: isize
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- pub struct DeprecatedUnitStruct;
-
- pub enum Enum {
- #[deprecated(since = "1.0.0", note = "text")]
- DeprecatedVariant,
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- pub struct DeprecatedTupleStruct(pub isize);
- }
-
- fn test() {
- use self::nested;
-
- // Only the deprecated cases of the following should generate
- // errors, because other stability attributes now have meaning
- // only *across* crates, not within a single crate.
-
- type Foo = MethodTester;
- let foo = MethodTester;
-
- deprecated(); //~ ERROR use of deprecated function `this_crate::deprecated`
- foo.method_deprecated(); //~ ERROR use of deprecated associated function `this_crate::MethodTester::method_deprecated`
- Foo::method_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::MethodTester::method_deprecated`
- <Foo>::method_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::MethodTester::method_deprecated`
- foo.trait_deprecated(); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- Trait::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- <Foo>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- <Foo as Trait>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
-
- deprecated_text(); //~ ERROR use of deprecated function `this_crate::deprecated_text`: text
- foo.method_deprecated_text(); //~ ERROR use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- Foo::method_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- <Foo>::method_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::MethodTester::method_deprecated_text`: text
- foo.trait_deprecated_text(); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- Trait::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- <Foo>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- <Foo as Trait>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
-
- // Future deprecations are only permitted with `#![feature(staged_api)]`
- deprecated_future(); //~ ERROR use of deprecated function
- deprecated_future_text(); //~ ERROR use of deprecated function
-
- let _ = DeprecatedStruct {
- //~^ ERROR use of deprecated struct `this_crate::DeprecatedStruct`: text
- i: 0 //~ ERROR use of deprecated field `this_crate::DeprecatedStruct::i`: text
- };
-
- let _ = DeprecatedUnitStruct; //~ ERROR use of deprecated unit struct `this_crate::DeprecatedUnitStruct`: text
-
- let _ = Enum::DeprecatedVariant; //~ ERROR use of deprecated unit variant `this_crate::Enum::DeprecatedVariant`: text
-
- let _ = DeprecatedTupleStruct (1); //~ ERROR use of deprecated tuple struct `this_crate::DeprecatedTupleStruct`: text
-
- let _ = nested::DeprecatedStruct {
- //~^ ERROR use of deprecated struct `this_crate::nested::DeprecatedStruct`: text
- i: 0 //~ ERROR use of deprecated field `this_crate::nested::DeprecatedStruct::i`: text
- //~| ERROR field `i` of struct `this_crate::nested::DeprecatedStruct` is private
- };
-
- let _ = nested::DeprecatedUnitStruct; //~ ERROR use of deprecated unit struct `this_crate::nested::DeprecatedUnitStruct`: text
-
- let _ = nested::Enum::DeprecatedVariant; //~ ERROR use of deprecated unit variant `this_crate::nested::Enum::DeprecatedVariant`: text
-
- let _ = nested::DeprecatedTupleStruct (1); //~ ERROR use of deprecated tuple struct `this_crate::nested::DeprecatedTupleStruct`: text
- }
-
- fn test_method_param<Foo: Trait>(foo: Foo) {
- foo.trait_deprecated(); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- Trait::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- <Foo>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- <Foo as Trait>::trait_deprecated(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- foo.trait_deprecated_text(); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- Trait::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- <Foo>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- <Foo as Trait>::trait_deprecated_text(&foo); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- }
-
- fn test_method_object(foo: &Trait) {
- foo.trait_deprecated(); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated`
- foo.trait_deprecated_text(); //~ ERROR use of deprecated associated function `this_crate::Trait::trait_deprecated_text`: text
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- fn test_fn_body() {
- fn fn_in_body() {}
- fn_in_body();
- }
-
- fn test_fn_closure_body() {
- let _ = || {
- #[deprecated]
- fn bar() { }
- bar(); //~ ERROR use of deprecated function `this_crate::test_fn_closure_body::{closure#0}::bar`
- };
- }
-
- impl MethodTester {
- #[deprecated(since = "1.0.0", note = "text")]
- fn test_method_body(&self) {
- fn fn_in_body() {}
- fn_in_body();
- }
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- pub trait DeprecatedTrait {
- fn dummy(&self) { }
- }
-
- struct S;
-
- impl DeprecatedTrait for S { } //~ ERROR use of deprecated trait `this_crate::DeprecatedTrait`: text
-
- trait LocalTrait : DeprecatedTrait { } //~ ERROR use of deprecated trait `this_crate::DeprecatedTrait`: text
-}
-
-mod this_crate2 {
- struct Stable {
- #[deprecated(since = "1.0.0", note = "text")]
- override2: u8,
- }
-
- struct Stable2(u8,
- u8,
- #[deprecated(since = "1.0.0", note = "text")] u8);
-
- #[deprecated(since = "1.0.0", note = "text")]
- struct Deprecated {
- inherit: u8,
- }
-
- #[deprecated(since = "1.0.0", note = "text")]
- struct Deprecated2(u8,
- u8,
- u8);
-
- pub fn foo() {
- let x = Stable {
- override2: 3,
- //~^ ERROR use of deprecated field `this_crate2::Stable::override2`: text
- };
-
- let _ = x.override2;
- //~^ ERROR use of deprecated field `this_crate2::Stable::override2`: text
-
- let Stable {
- override2: _
- //~^ ERROR use of deprecated field `this_crate2::Stable::override2`: text
- } = x;
- // all fine
- let Stable { .. } = x;
-
- let x = Stable2(1, 2, 3);
-
- let _ = x.2;
- //~^ ERROR use of deprecated field `this_crate2::Stable2::2`: text
-
- let Stable2(_,
- _,
- _)
- //~^ ERROR use of deprecated field `this_crate2::Stable2::2`: text
- = x;
- // all fine
- let Stable2(..) = x;
-
- let x = Deprecated {
- //~^ ERROR use of deprecated struct `this_crate2::Deprecated`: text
- inherit: 1,
- //~^ ERROR use of deprecated field `this_crate2::Deprecated::inherit`: text
- };
-
- let _ = x.inherit;
- //~^ ERROR use of deprecated field `this_crate2::Deprecated::inherit`: text
-
- let Deprecated {
- //~^ ERROR use of deprecated struct `this_crate2::Deprecated`: text
- inherit: _,
- //~^ ERROR use of deprecated field `this_crate2::Deprecated::inherit`: text
- } = x;
-
- let Deprecated
- //~^ ERROR use of deprecated struct `this_crate2::Deprecated`: text
- // the patterns are all fine:
- { .. } = x;
-
- let x = Deprecated2(1, 2, 3);
- //~^ ERROR use of deprecated tuple struct `this_crate2::Deprecated2`: text
-
- let _ = x.0;
- //~^ ERROR use of deprecated field `this_crate2::Deprecated2::0`: text
- let _ = x.1;
- //~^ ERROR use of deprecated field `this_crate2::Deprecated2::1`: text
- let _ = x.2;
- //~^ ERROR use of deprecated field `this_crate2::Deprecated2::2`: text
-
- let Deprecated2
- //~^ ERROR use of deprecated tuple struct `this_crate2::Deprecated2`: text
- (_,
- //~^ ERROR use of deprecated field `this_crate2::Deprecated2::0`: text
- _,
- //~^ ERROR use of deprecated field `this_crate2::Deprecated2::1`: text
- _)
- //~^ ERROR use of deprecated field `this_crate2::Deprecated2::2`: text
- = x;
- let Deprecated2
- //~^ ERROR use of deprecated tuple struct `this_crate2::Deprecated2`: text
- // the patterns are all fine:
- (..) = x;
- }
-
- #[derive(Debug)]
- #[deprecated(note = "Use something else instead")]
- enum DeprecatedDebugEnum {
- Variant1 { value: Option<String> },
- }
-
- #[allow(deprecated)]
- impl DeprecatedDebugEnum {
- fn new() -> Self {
- DeprecatedDebugEnum::Variant1 { value: None }
- }
- }
-
- #[allow(deprecated)]
- pub fn allow_dep() {
- let _ = DeprecatedDebugEnum::new();
- }
-}
-
-fn main() {}