From c413250757a8212d2718a2d7b33bd8c0b1aa2288 Mon Sep 17 00:00:00 2001 From: Urgau Date: Sat, 21 May 2022 09:59:57 +0200 Subject: [PATCH] Add tests for "not sure" case of cfg_accessible --- ...cfg_accessible-not_sure.edition2015.stderr | 106 ++++++++++++++++++ ...cfg_accessible-not_sure.edition2021.stderr | 106 ++++++++++++++++++ .../cfg_accessible-not_sure.rs | 91 +++++++++++++++ 3 files changed, 303 insertions(+) create mode 100644 src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2015.stderr create mode 100644 src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2021.stderr create mode 100644 src/test/ui/conditional-compilation/cfg_accessible-not_sure.rs diff --git a/src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2015.stderr b/src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2015.stderr new file mode 100644 index 00000000000..f0a57def525 --- /dev/null +++ b/src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2015.stderr @@ -0,0 +1,106 @@ +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:14:18 + | +LL | #[cfg_accessible(Struct::existing)] + | ^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:16:18 + | +LL | #[cfg_accessible(Struct::unresolved)] + | ^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:25:18 + | +LL | #[cfg_accessible(Union::existing)] + | ^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:27:18 + | +LL | #[cfg_accessible(Union::unresolved)] + | ^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:36:18 + | +LL | #[cfg_accessible(Enum::unresolved)] + | ^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:46:18 + | +LL | #[cfg_accessible(Trait::existing)] + | ^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:48:18 + | +LL | #[cfg_accessible(Trait::unresolved)] + | ^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:55:18 + | +LL | #[cfg_accessible(TypeAlias::existing)] + | ^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:57:18 + | +LL | #[cfg_accessible(TypeAlias::unresolved)] + | ^^^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:66:18 + | +LL | #[cfg_accessible(ForeignType::unresolved)] + | ^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:75:18 + | +LL | #[cfg_accessible(AssocType::AssocType::unresolved)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:80:18 + | +LL | #[cfg_accessible(u8::unresolved)] + | ^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:82:18 + | +LL | #[cfg_accessible(u8::is_ascii)] + | ^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: aborting due to 13 previous errors + diff --git a/src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2021.stderr b/src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2021.stderr new file mode 100644 index 00000000000..f0a57def525 --- /dev/null +++ b/src/test/ui/conditional-compilation/cfg_accessible-not_sure.edition2021.stderr @@ -0,0 +1,106 @@ +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:14:18 + | +LL | #[cfg_accessible(Struct::existing)] + | ^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:16:18 + | +LL | #[cfg_accessible(Struct::unresolved)] + | ^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:25:18 + | +LL | #[cfg_accessible(Union::existing)] + | ^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:27:18 + | +LL | #[cfg_accessible(Union::unresolved)] + | ^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:36:18 + | +LL | #[cfg_accessible(Enum::unresolved)] + | ^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:46:18 + | +LL | #[cfg_accessible(Trait::existing)] + | ^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:48:18 + | +LL | #[cfg_accessible(Trait::unresolved)] + | ^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:55:18 + | +LL | #[cfg_accessible(TypeAlias::existing)] + | ^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:57:18 + | +LL | #[cfg_accessible(TypeAlias::unresolved)] + | ^^^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:66:18 + | +LL | #[cfg_accessible(ForeignType::unresolved)] + | ^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:75:18 + | +LL | #[cfg_accessible(AssocType::AssocType::unresolved)] + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:80:18 + | +LL | #[cfg_accessible(u8::unresolved)] + | ^^^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: not sure whether the path is accessible or not + --> $DIR/cfg_accessible-not_sure.rs:82:18 + | +LL | #[cfg_accessible(u8::is_ascii)] + | ^^^^^^^^^^^^ + | + = note: the type may have associated items, but we are currently not checking them + +error: aborting due to 13 previous errors + diff --git a/src/test/ui/conditional-compilation/cfg_accessible-not_sure.rs b/src/test/ui/conditional-compilation/cfg_accessible-not_sure.rs new file mode 100644 index 00000000000..3baf72b0de9 --- /dev/null +++ b/src/test/ui/conditional-compilation/cfg_accessible-not_sure.rs @@ -0,0 +1,91 @@ +// revisions: edition2015 edition2021 +// [edition2015]compile-flags: --edition=2015 +// [edition2021]compile-flags: --edition=2021 + +#![feature(extern_types)] +#![feature(cfg_accessible)] + +// Struct::unresolved - error + +struct Struct { + existing: u8, +} + +#[cfg_accessible(Struct::existing)] //~ ERROR not sure +const A: bool = true; +#[cfg_accessible(Struct::unresolved)] //~ ERROR not sure +const B: bool = true; + +// Union::unresolved - error + +struct Union { + existing: u8, +} + +#[cfg_accessible(Union::existing)] //~ ERROR not sure +const A: bool = true; +#[cfg_accessible(Union::unresolved)] //~ ERROR not sure +const B: bool = true; + +// Enum::unresolved - error + +enum Enum { + Existing { existing: u8 }, +} + +// FIXME: Currently returns `false` but should be "not sure" +#[cfg_accessible(Enum::Existing::existing)] +const A: bool = true; +// FIXME: Currently returns `false` but should be "not sure" +#[cfg_accessible(Enum::Existing::unresolved)] +const B: bool = true; +#[cfg_accessible(Enum::unresolved)] //~ ERROR not sure +const C: bool = true; + +// Trait::unresolved - false or error, depending on edition (error if you can write Trait::foo +// instead of ::foo for methods like impl dyn Trait { fn foo() {} }) + +trait Trait {} +impl dyn Trait { fn existing() {} } + +// FIXME: Should be a error for edition > 2015 +#[cfg_accessible(Trait::existing)] //~ ERROR not sure +const A: bool = true; +#[cfg_accessible(Trait::unresolved)] //~ ERROR not sure +const B: bool = true; + +// TypeAlias::unresolved - error + +type TypeAlias = Struct; + +#[cfg_accessible(TypeAlias::existing)] //~ ERROR not sure +const A: bool = true; +#[cfg_accessible(TypeAlias::unresolved)] //~ ERROR not sure +const B: bool = true; + +// ForeignType::unresolved - error + +extern { + type ForeignType; +} + +#[cfg_accessible(ForeignType::unresolved)] //~ ERROR not sure +const A: bool = true; + +// AssocType::unresolved - error + +trait AssocType { + type AssocType; +} + +#[cfg_accessible(AssocType::AssocType::unresolved)] //~ ERROR not sure +const A: bool = true; + +// PrimitiveType::unresolved - error + +#[cfg_accessible(u8::unresolved)] //~ ERROR not sure +const A: bool = true; +#[cfg_accessible(u8::is_ascii)] //~ ERROR not sure +const B: bool = true; + +fn main() {}