summaryrefslogtreecommitdiffstats
path: root/tests/ui/consts/const-block.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:03 +0000
commit64d98f8ee037282c35007b64c2649055c56af1db (patch)
tree5492bcf97fce41ee1c0b1cc2add283f3e66cdab0 /tests/ui/consts/const-block.rs
parentAdding debian version 1.67.1+dfsg1-1. (diff)
downloadrustc-64d98f8ee037282c35007b64c2649055c56af1db.tar.xz
rustc-64d98f8ee037282c35007b64c2649055c56af1db.zip
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/consts/const-block.rs')
-rw-r--r--tests/ui/consts/const-block.rs45
1 files changed, 45 insertions, 0 deletions
diff --git a/tests/ui/consts/const-block.rs b/tests/ui/consts/const-block.rs
new file mode 100644
index 000000000..ec99c70f6
--- /dev/null
+++ b/tests/ui/consts/const-block.rs
@@ -0,0 +1,45 @@
+// run-pass
+#![allow(unused_braces)]
+#![allow(dead_code)]
+#![allow(unused_unsafe)]
+
+use std::marker::Sync;
+
+struct Foo {
+ a: usize,
+ b: *const ()
+}
+
+unsafe impl Sync for Foo {}
+
+fn foo<T>(a: T) -> T {
+ a
+}
+
+static BLOCK_INTEGRAL: usize = { 1 };
+static BLOCK_EXPLICIT_UNIT: () = { () };
+static BLOCK_IMPLICIT_UNIT: () = { };
+static BLOCK_FLOAT: f64 = { 1.0 };
+static BLOCK_ENUM: Option<usize> = { Some(100) };
+static BLOCK_STRUCT: Foo = { Foo { a: 12, b: std::ptr::null::<()>() } };
+static BLOCK_UNSAFE: usize = unsafe { 1000 };
+
+static BLOCK_FN_INFERRED: fn(usize) -> usize = { foo };
+
+static BLOCK_FN: fn(usize) -> usize = { foo::<usize> };
+
+static BLOCK_ENUM_CONSTRUCTOR: fn(usize) -> Option<usize> = { Some };
+
+pub fn main() {
+ assert_eq!(BLOCK_INTEGRAL, 1);
+ assert_eq!(BLOCK_EXPLICIT_UNIT, ());
+ assert_eq!(BLOCK_IMPLICIT_UNIT, ());
+ assert_eq!(BLOCK_FLOAT, 1.0_f64);
+ assert_eq!(BLOCK_STRUCT.a, 12);
+ assert_eq!(BLOCK_STRUCT.b, std::ptr::null::<()>());
+ assert_eq!(BLOCK_ENUM, Some(100));
+ assert_eq!(BLOCK_UNSAFE, 1000);
+ assert_eq!(BLOCK_FN_INFERRED(300), 300);
+ assert_eq!(BLOCK_FN(300), 300);
+ assert_eq!(BLOCK_ENUM_CONSTRUCTOR(200), Some(200));
+}