1
Fork 0

Fix compilation & test failures

This commit is contained in:
Jacob Hughes 2020-09-22 22:54:52 -04:00
parent d281620d8f
commit 3f1b4b39e3
3 changed files with 40 additions and 34 deletions

View file

@ -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,
@ -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 =
@ -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,

View file

@ -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

View file

@ -22,7 +22,7 @@ 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 };
@ -30,67 +30,67 @@ 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 };
@ -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 };