summaryrefslogtreecommitdiffstats
path: root/tests/ui/generic-const-items/const-trait-impl.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/generic-const-items/const-trait-impl.rs')
-rw-r--r--tests/ui/generic-const-items/const-trait-impl.rs25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/ui/generic-const-items/const-trait-impl.rs b/tests/ui/generic-const-items/const-trait-impl.rs
new file mode 100644
index 000000000..d30f7af17
--- /dev/null
+++ b/tests/ui/generic-const-items/const-trait-impl.rs
@@ -0,0 +1,25 @@
+// known-bug: #110395
+// FIXME check-pass
+
+// Test that we can call methods from const trait impls inside of generic const items.
+
+#![feature(generic_const_items, const_trait_impl)]
+#![allow(incomplete_features)]
+#![crate_type = "lib"]
+
+// FIXME(generic_const_items): Interpret `~const` as always-const.
+const CREATE<T: ~const Create>: T = T::create();
+
+pub const K0: i32 = CREATE::<i32>;
+pub const K1: i32 = CREATE; // arg inferred
+
+#[const_trait]
+trait Create {
+ fn create() -> Self;
+}
+
+impl const Create for i32 {
+ fn create() -> i32 {
+ 4096
+ }
+}