summaryrefslogtreecommitdiffstats
path: root/vendor/bitflags/tests/compile-fail/visibility
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/bitflags/tests/compile-fail/visibility')
-rw-r--r--vendor/bitflags/tests/compile-fail/visibility/private_field.rs13
-rw-r--r--vendor/bitflags/tests/compile-fail/visibility/private_field.stderr.beta10
-rw-r--r--vendor/bitflags/tests/compile-fail/visibility/private_flags.rs18
-rw-r--r--vendor/bitflags/tests/compile-fail/visibility/private_flags.stderr.beta18
-rw-r--r--vendor/bitflags/tests/compile-fail/visibility/pub_const.rs9
-rw-r--r--vendor/bitflags/tests/compile-fail/visibility/pub_const.stderr.beta5
6 files changed, 73 insertions, 0 deletions
diff --git a/vendor/bitflags/tests/compile-fail/visibility/private_field.rs b/vendor/bitflags/tests/compile-fail/visibility/private_field.rs
new file mode 100644
index 000000000..a6a3912ae
--- /dev/null
+++ b/vendor/bitflags/tests/compile-fail/visibility/private_field.rs
@@ -0,0 +1,13 @@
+mod example {
+ use bitflags::bitflags;
+
+ bitflags! {
+ pub struct Flags1: u32 {
+ const FLAG_A = 0b00000001;
+ }
+ }
+}
+
+fn main() {
+ let flag1 = example::Flags1::FLAG_A.bits;
+}
diff --git a/vendor/bitflags/tests/compile-fail/visibility/private_field.stderr.beta b/vendor/bitflags/tests/compile-fail/visibility/private_field.stderr.beta
new file mode 100644
index 000000000..58a046601
--- /dev/null
+++ b/vendor/bitflags/tests/compile-fail/visibility/private_field.stderr.beta
@@ -0,0 +1,10 @@
+error[E0616]: field `bits` of struct `Flags1` is private
+ --> $DIR/private_field.rs:12:41
+ |
+12 | let flag1 = example::Flags1::FLAG_A.bits;
+ | ^^^^ private field
+ |
+help: a method `bits` also exists, call it with parentheses
+ |
+12 | let flag1 = example::Flags1::FLAG_A.bits();
+ | ^^
diff --git a/vendor/bitflags/tests/compile-fail/visibility/private_flags.rs b/vendor/bitflags/tests/compile-fail/visibility/private_flags.rs
new file mode 100644
index 000000000..85a5b1863
--- /dev/null
+++ b/vendor/bitflags/tests/compile-fail/visibility/private_flags.rs
@@ -0,0 +1,18 @@
+mod example {
+ use bitflags::bitflags;
+
+ bitflags! {
+ pub struct Flags1: u32 {
+ const FLAG_A = 0b00000001;
+ }
+
+ struct Flags2: u32 {
+ const FLAG_B = 0b00000010;
+ }
+ }
+}
+
+fn main() {
+ let flag1 = example::Flags1::FLAG_A;
+ let flag2 = example::Flags2::FLAG_B;
+}
diff --git a/vendor/bitflags/tests/compile-fail/visibility/private_flags.stderr.beta b/vendor/bitflags/tests/compile-fail/visibility/private_flags.stderr.beta
new file mode 100644
index 000000000..d23f83209
--- /dev/null
+++ b/vendor/bitflags/tests/compile-fail/visibility/private_flags.stderr.beta
@@ -0,0 +1,18 @@
+error[E0603]: struct `Flags2` is private
+ --> $DIR/private_flags.rs:17:26
+ |
+17 | let flag2 = example::Flags2::FLAG_B;
+ | ^^^^^^ private struct
+ |
+note: the struct `Flags2` is defined here
+ --> $DIR/private_flags.rs:4:5
+ |
+4 | / bitflags! {
+5 | | pub struct Flags1: u32 {
+6 | | const FLAG_A = 0b00000001;
+7 | | }
+... |
+11 | | }
+12 | | }
+ | |_____^
+ = note: this error originates in the macro `bitflags` (in Nightly builds, run with -Z macro-backtrace for more info)
diff --git a/vendor/bitflags/tests/compile-fail/visibility/pub_const.rs b/vendor/bitflags/tests/compile-fail/visibility/pub_const.rs
new file mode 100644
index 000000000..b90f0ce92
--- /dev/null
+++ b/vendor/bitflags/tests/compile-fail/visibility/pub_const.rs
@@ -0,0 +1,9 @@
+use bitflags::bitflags;
+
+bitflags! {
+ pub struct Flags1: u32 {
+ pub const FLAG_A = 0b00000001;
+ }
+}
+
+fn main() {}
diff --git a/vendor/bitflags/tests/compile-fail/visibility/pub_const.stderr.beta b/vendor/bitflags/tests/compile-fail/visibility/pub_const.stderr.beta
new file mode 100644
index 000000000..b01122c7a
--- /dev/null
+++ b/vendor/bitflags/tests/compile-fail/visibility/pub_const.stderr.beta
@@ -0,0 +1,5 @@
+error: no rules expected the token `pub`
+ --> $DIR/pub_const.rs:5:9
+ |
+5 | pub const FLAG_A = 0b00000001;
+ | ^^^ no rules expected this token in macro call