Skip to content

Commit

Permalink
Fix compilation & test failures
Browse files Browse the repository at this point in the history
  • Loading branch information
Jacob Hughes committed Sep 23, 2020
1 parent d281620 commit 3f1b4b3
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 34 deletions.
10 changes: 8 additions & 2 deletions compiler/rustc_passes/src/stability.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ enum AnnotationKind {
/// have separate deprecation attributes from their parents, so we do not wish to inherit
/// deprecation in this case. For example, inheriting deprecation for `T` in `Foo<T>`
/// would cause a duplicate warning arising from both `Foo` and `T` being deprecated.
#[derive(Clone)]
enum InheritDeprecation {
Yes,
No,
Expand Down Expand Up @@ -81,7 +82,7 @@ impl<'a, 'tcx> Annotator<'a, 'tcx> {
debug!("annotate(id = {:?}, attrs = {:?})", hir_id, attrs);
let mut did_error = false;
if !self.tcx.features().staged_api {
did_error = self.forbid_staged_api_attrs(hir_id, attrs, inherit_deprecation);
did_error = self.forbid_staged_api_attrs(hir_id, attrs, inherit_deprecation.clone());
}

let depr =
Expand Down Expand Up @@ -257,7 +258,12 @@ impl<'a, 'tcx> Annotator<'a, 'tcx> {
}

// returns true if an error occurred, used to suppress some spurious errors
fn forbid_staged_api_attrs(&mut self, hir_id: HirId, attrs: &[Attribute], inherit_deprecation: InheritDeprecation) -> bool {
fn forbid_staged_api_attrs(
&mut self,
hir_id: HirId,
attrs: &[Attribute],
inherit_deprecation: InheritDeprecation,
) -> bool {
// Emit errors for non-staged-api crates.
let unstable_attrs = [
sym::unstable,
Expand Down
32 changes: 16 additions & 16 deletions src/test/ui/stability-attribute/generics-default-stability.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,30 +82,30 @@ fn main() {

let _ = STRUCT4;
let _: Struct4<isize> = Struct4 { field: 1 };
//~^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
//~^^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
//~^^^ use of deprecated item 'unstable_generic_param::Struct4::field': test [deprecated]
//~^ use of deprecated struct `unstable_generic_param::Struct4`: test [deprecated]
//~^^ use of deprecated struct `unstable_generic_param::Struct4`: test [deprecated]
//~^^^ use of deprecated field `unstable_generic_param::Struct4::field`: test [deprecated]
let _ = STRUCT4;
let _: Struct4 = STRUCT4; //~ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
let _: Struct4<usize> = STRUCT4; //~ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
let _: Struct4 = STRUCT4; //~ use of deprecated struct `unstable_generic_param::Struct4`: test [deprecated]
let _: Struct4<usize> = STRUCT4; //~ use of deprecated struct `unstable_generic_param::Struct4`: test [deprecated]
let _: Struct4<isize> = Struct4 { field: 0 };
//~^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
//~^^ use of deprecated item 'unstable_generic_param::Struct4': test [deprecated]
//~^^^ use of deprecated item 'unstable_generic_param::Struct4::field': test [deprecated]
//~^ use of deprecated struct `unstable_generic_param::Struct4`: test [deprecated]
//~^^ use of deprecated struct `unstable_generic_param::Struct4`: test [deprecated]
//~^^^ use of deprecated field `unstable_generic_param::Struct4::field`: test [deprecated]

let _ = STRUCT5;
let _: Struct5<isize> = Struct5 { field: 1 }; //~ ERROR use of unstable library feature 'unstable_default'
//~^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
//~^^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
//~^^^ use of deprecated item 'unstable_generic_param::Struct5::field': test [deprecated]
//~^ use of deprecated struct `unstable_generic_param::Struct5`: test [deprecated]
//~^^ use of deprecated struct `unstable_generic_param::Struct5`: test [deprecated]
//~^^^ use of deprecated field `unstable_generic_param::Struct5::field`: test [deprecated]
let _ = STRUCT5;
let _: Struct5 = STRUCT5; //~ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
let _: Struct5 = STRUCT5; //~ use of deprecated struct `unstable_generic_param::Struct5`: test [deprecated]
let _: Struct5<usize> = STRUCT5; //~ ERROR use of unstable library feature 'unstable_default'
//~^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
//~^ use of deprecated struct `unstable_generic_param::Struct5`: test [deprecated]
let _: Struct5<isize> = Struct5 { field: 0 }; //~ ERROR use of unstable library feature 'unstable_default'
//~^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
//~^^ use of deprecated item 'unstable_generic_param::Struct5': test [deprecated]
//~^^^ use of deprecated item 'unstable_generic_param::Struct5::field': test [deprecated]
//~^ use of deprecated struct `unstable_generic_param::Struct5`: test [deprecated]
//~^^ use of deprecated struct `unstable_generic_param::Struct5`: test [deprecated]
//~^^^ use of deprecated field `unstable_generic_param::Struct5::field`: test [deprecated]

let _: Struct6<isize> = Struct6 { field: 1 }; // ok
let _: Struct6<isize> = Struct6 { field: 0 }; // ok
Expand Down
32 changes: 16 additions & 16 deletions src/test/ui/stability-attribute/generics-default-stability.stderr
Original file line number Diff line number Diff line change
Expand Up @@ -22,75 +22,75 @@ LL | impl Trait2<usize> for S {
|
= help: add `#![feature(unstable_default)]` to the crate attributes to enable

warning: use of deprecated item 'unstable_generic_param::Struct4': test
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
--> $DIR/generics-default-stability.rs:84:29
|
LL | let _: Struct4<isize> = Struct4 { field: 1 };
| ^^^^^^^
|
= note: `#[warn(deprecated)]` on by default

warning: use of deprecated item 'unstable_generic_param::Struct4': test
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
--> $DIR/generics-default-stability.rs:84:12
|
LL | let _: Struct4<isize> = Struct4 { field: 1 };
| ^^^^^^^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct4': test
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
--> $DIR/generics-default-stability.rs:89:12
|
LL | let _: Struct4 = STRUCT4;
| ^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct4': test
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
--> $DIR/generics-default-stability.rs:90:12
|
LL | let _: Struct4<usize> = STRUCT4;
| ^^^^^^^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct4': test
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
--> $DIR/generics-default-stability.rs:91:29
|
LL | let _: Struct4<isize> = Struct4 { field: 0 };
| ^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct4': test
warning: use of deprecated struct `unstable_generic_param::Struct4`: test
--> $DIR/generics-default-stability.rs:91:12
|
LL | let _: Struct4<isize> = Struct4 { field: 0 };
| ^^^^^^^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5': test
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
--> $DIR/generics-default-stability.rs:97:29
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5': test
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
--> $DIR/generics-default-stability.rs:97:12
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^^^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5': test
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
--> $DIR/generics-default-stability.rs:102:12
|
LL | let _: Struct5 = STRUCT5;
| ^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5': test
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
--> $DIR/generics-default-stability.rs:103:12
|
LL | let _: Struct5<usize> = STRUCT5;
| ^^^^^^^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5': test
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
--> $DIR/generics-default-stability.rs:105:29
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
| ^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5': test
warning: use of deprecated struct `unstable_generic_param::Struct5`: test
--> $DIR/generics-default-stability.rs:105:12
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
Expand Down Expand Up @@ -176,25 +176,25 @@ LL | let _: Box1<isize, System> = Box1::new(1);
|
= help: add `#![feature(box_alloc_param)]` to the crate attributes to enable

warning: use of deprecated item 'unstable_generic_param::Struct4::field': test
warning: use of deprecated field `unstable_generic_param::Struct4::field`: test
--> $DIR/generics-default-stability.rs:84:39
|
LL | let _: Struct4<isize> = Struct4 { field: 1 };
| ^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct4::field': test
warning: use of deprecated field `unstable_generic_param::Struct4::field`: test
--> $DIR/generics-default-stability.rs:91:39
|
LL | let _: Struct4<isize> = Struct4 { field: 0 };
| ^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5::field': test
warning: use of deprecated field `unstable_generic_param::Struct5::field`: test
--> $DIR/generics-default-stability.rs:97:39
|
LL | let _: Struct5<isize> = Struct5 { field: 1 };
| ^^^^^^^^

warning: use of deprecated item 'unstable_generic_param::Struct5::field': test
warning: use of deprecated field `unstable_generic_param::Struct5::field`: test
--> $DIR/generics-default-stability.rs:105:39
|
LL | let _: Struct5<isize> = Struct5 { field: 0 };
Expand Down

0 comments on commit 3f1b4b3

Please sign in to comment.