about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2023-07-05 13:42:00 +0000
committerbors <bors@rust-lang.org>2023-07-05 13:42:00 +0000
commite4cd1610067501fa4d347eba7b18f77137dbbf48 (patch)
tree384a419aa2e8e343ce7fa9262f43cae06239ed6d /tests
parentdfe0683138de0959b6ab6a039b54d9347f6a6355 (diff)
parent25fc6c15869b0bd4241da452ddd2d30b0c16a815 (diff)
downloadrust-e4cd1610067501fa4d347eba7b18f77137dbbf48.tar.gz
rust-e4cd1610067501fa4d347eba7b18f77137dbbf48.zip
Auto merge of #113210 - fee1-dead-contrib:effects-mvp, r=oli-obk
Effects/keyword generics MVP

This adds `feature(effects)`, which adds `const host: bool` to the generics of const functions, const traits and const impls. This will be used to replace the current logic around const traits.

r? `@oli-obk`
Diffstat (limited to 'tests')
-rw-r--r--tests/ui/rfcs/rfc-2632-const-trait-impl/effects/helloworld.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/ui/rfcs/rfc-2632-const-trait-impl/effects/helloworld.rs b/tests/ui/rfcs/rfc-2632-const-trait-impl/effects/helloworld.rs
new file mode 100644
index 00000000000..49457354cc9
--- /dev/null
+++ b/tests/ui/rfcs/rfc-2632-const-trait-impl/effects/helloworld.rs
@@ -0,0 +1,29 @@
+// check-pass
+
+// gate-test-effects
+// ^ effects doesn't have a gate so we will trick tidy into thinking this is a gate test
+
+#![feature(const_trait_impl, effects, rustc_attrs)]
+
+// ensure we are passing in the correct host effect in always const contexts.
+
+pub const fn hmm</* T, */ #[rustc_host] const host: bool = true>() -> usize {
+    if host {
+        1
+    } else {
+        0
+    }
+}
+
+const _: () = {
+    let x = hmm();
+    assert!(0 == x);
+};
+
+/* FIXME(effects)
+pub const fn uwu(x: [u8; hmm::<()>()]) {
+    let [] = x;
+}
+*/
+
+fn main() {}