summaryrefslogtreecommitdiffstats
path: root/third_party/rust/bitflags/tests/compile-pass
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/bitflags/tests/compile-pass')
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/impls/convert.rs17
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/impls/default.rs10
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/impls/inherent_methods.rs15
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/redefinition/core.rs14
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/redefinition/stringify.rs19
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/repr/c.rs10
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/repr/transparent.rs10
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/visibility/bits_field.rs11
-rw-r--r--third_party/rust/bitflags/tests/compile-pass/visibility/pub_in.rs19
9 files changed, 125 insertions, 0 deletions
diff --git a/third_party/rust/bitflags/tests/compile-pass/impls/convert.rs b/third_party/rust/bitflags/tests/compile-pass/impls/convert.rs
new file mode 100644
index 0000000000..1f02982a8f
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/impls/convert.rs
@@ -0,0 +1,17 @@
+use bitflags::bitflags;
+
+bitflags! {
+ struct Flags: u32 {
+ const A = 0b00000001;
+ }
+}
+
+impl From<u32> for Flags {
+ fn from(v: u32) -> Flags {
+ Flags::from_bits_truncate(v)
+ }
+}
+
+fn main() {
+
+}
diff --git a/third_party/rust/bitflags/tests/compile-pass/impls/default.rs b/third_party/rust/bitflags/tests/compile-pass/impls/default.rs
new file mode 100644
index 0000000000..a97b6536f2
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/impls/default.rs
@@ -0,0 +1,10 @@
+use bitflags::bitflags;
+
+bitflags! {
+ #[derive(Default)]
+ struct Flags: u32 {
+ const A = 0b00000001;
+ }
+}
+
+fn main() {}
diff --git a/third_party/rust/bitflags/tests/compile-pass/impls/inherent_methods.rs b/third_party/rust/bitflags/tests/compile-pass/impls/inherent_methods.rs
new file mode 100644
index 0000000000..3052c460ec
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/impls/inherent_methods.rs
@@ -0,0 +1,15 @@
+use bitflags::bitflags;
+
+bitflags! {
+ struct Flags: u32 {
+ const A = 0b00000001;
+ }
+}
+
+impl Flags {
+ pub fn new() -> Flags {
+ Flags::A
+ }
+}
+
+fn main() {}
diff --git a/third_party/rust/bitflags/tests/compile-pass/redefinition/core.rs b/third_party/rust/bitflags/tests/compile-pass/redefinition/core.rs
new file mode 100644
index 0000000000..4754921594
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/redefinition/core.rs
@@ -0,0 +1,14 @@
+use bitflags::bitflags;
+
+// Checks for possible errors caused by overriding names used by `bitflags!` internally.
+
+mod core {}
+mod _core {}
+
+bitflags! {
+ struct Test: u8 {
+ const A = 1;
+ }
+}
+
+fn main() {}
diff --git a/third_party/rust/bitflags/tests/compile-pass/redefinition/stringify.rs b/third_party/rust/bitflags/tests/compile-pass/redefinition/stringify.rs
new file mode 100644
index 0000000000..b04f2f6a49
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/redefinition/stringify.rs
@@ -0,0 +1,19 @@
+use bitflags::bitflags;
+
+// Checks for possible errors caused by overriding names used by `bitflags!` internally.
+
+#[allow(unused_macros)]
+macro_rules! stringify {
+ ($($t:tt)*) => { "..." };
+}
+
+bitflags! {
+ struct Test: u8 {
+ const A = 1;
+ }
+}
+
+fn main() {
+ // Just make sure we don't call the redefined `stringify` macro
+ assert_eq!(format!("{:?}", Test::A), "A");
+}
diff --git a/third_party/rust/bitflags/tests/compile-pass/repr/c.rs b/third_party/rust/bitflags/tests/compile-pass/repr/c.rs
new file mode 100644
index 0000000000..6feba36ed8
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/repr/c.rs
@@ -0,0 +1,10 @@
+use bitflags::bitflags;
+
+bitflags! {
+ #[repr(C)]
+ struct Flags: u32 {
+ const A = 0b00000001;
+ }
+}
+
+fn main() {}
diff --git a/third_party/rust/bitflags/tests/compile-pass/repr/transparent.rs b/third_party/rust/bitflags/tests/compile-pass/repr/transparent.rs
new file mode 100644
index 0000000000..e38db4dd11
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/repr/transparent.rs
@@ -0,0 +1,10 @@
+use bitflags::bitflags;
+
+bitflags! {
+ #[repr(transparent)]
+ struct Flags: u32 {
+ const A = 0b00000001;
+ }
+}
+
+fn main() {}
diff --git a/third_party/rust/bitflags/tests/compile-pass/visibility/bits_field.rs b/third_party/rust/bitflags/tests/compile-pass/visibility/bits_field.rs
new file mode 100644
index 0000000000..33a7967e62
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/visibility/bits_field.rs
@@ -0,0 +1,11 @@
+use bitflags::bitflags;
+
+bitflags! {
+ pub struct Flags1: u32 {
+ const FLAG_A = 0b00000001;
+ }
+}
+
+fn main() {
+ assert_eq!(0b00000001, Flags1::FLAG_A.bits);
+}
diff --git a/third_party/rust/bitflags/tests/compile-pass/visibility/pub_in.rs b/third_party/rust/bitflags/tests/compile-pass/visibility/pub_in.rs
new file mode 100644
index 0000000000..c11050e3ba
--- /dev/null
+++ b/third_party/rust/bitflags/tests/compile-pass/visibility/pub_in.rs
@@ -0,0 +1,19 @@
+mod a {
+ mod b {
+ use bitflags::bitflags;
+
+ bitflags! {
+ pub(in crate::a) struct Flags: u32 {
+ const FLAG_A = 0b00000001;
+ }
+ }
+ }
+
+ pub fn flags() -> u32 {
+ b::Flags::FLAG_A.bits()
+ }
+}
+
+fn main() {
+ assert_eq!(0b00000001, a::flags());
+}