about summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorkadmin <julianknodt@gmail.com>2021-03-03 06:38:02 +0000
committerkadmin <julianknodt@gmail.com>2021-03-23 17:16:20 +0000
commit9fe793ae5df4bc9ea73c8e55c66616bd6e5fe565 (patch)
treea50b57acc0cf77d84e7df600381d19b5e28b1ff8 /src/test
parent0e56a086f72f9319f9c32f209bc07510dfedb70c (diff)
downloadrust-9fe793ae5df4bc9ea73c8e55c66616bd6e5fe565.tar.gz
rust-9fe793ae5df4bc9ea73c8e55c66616bd6e5fe565.zip
Add query for const_param_default
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/const-generics/defaults/auxiliary/const_defaulty.rs15
-rw-r--r--src/test/ui/const-generics/defaults/external.rs27
-rw-r--r--src/test/ui/const-generics/min_const_generics/type_and_const_defaults.rs14
3 files changed, 56 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/defaults/auxiliary/const_defaulty.rs b/src/test/ui/const-generics/defaults/auxiliary/const_defaulty.rs
new file mode 100644
index 00000000000..769b6e952dc
--- /dev/null
+++ b/src/test/ui/const-generics/defaults/auxiliary/const_defaulty.rs
@@ -0,0 +1,15 @@
+#![feature(const_generics)]
+#![feature(const_generics_defaults)]
+#![allow(incomplete_features)]
+
+pub struct Defaulted<const N: usize=3>;
+impl Defaulted {
+    pub fn new() -> Self {
+        Defaulted
+    }
+}
+impl<const N: usize> Defaulted<N> {
+    pub fn value(&self) -> usize {
+        N
+    }
+}
diff --git a/src/test/ui/const-generics/defaults/external.rs b/src/test/ui/const-generics/defaults/external.rs
new file mode 100644
index 00000000000..b39e69ab10b
--- /dev/null
+++ b/src/test/ui/const-generics/defaults/external.rs
@@ -0,0 +1,27 @@
+// aux-build:const_defaulty.rs
+// check-pass
+#![feature(const_generics_defaults)]
+#![allow(incomplete_features)]
+
+extern crate const_defaulty;
+use const_defaulty::Defaulted;
+
+struct Local<const N: usize=4>;
+impl Local {
+    fn new() -> Self {
+        Local
+    }
+}
+impl<const N: usize>Local<N> {
+    fn value(&self) -> usize {
+        N
+    }
+}
+
+fn main() {
+    let v = Defaulted::new();
+    assert_eq!(v.value(), 3);
+
+    let l = Local::new();
+    assert_eq!(l.value(), 4);
+}
diff --git a/src/test/ui/const-generics/min_const_generics/type_and_const_defaults.rs b/src/test/ui/const-generics/min_const_generics/type_and_const_defaults.rs
new file mode 100644
index 00000000000..2ce874c8bf4
--- /dev/null
+++ b/src/test/ui/const-generics/min_const_generics/type_and_const_defaults.rs
@@ -0,0 +1,14 @@
+// check-pass
+#![crate_type = "lib"]
+#![feature(const_generics_defaults)]
+#![allow(incomplete_features)]
+
+struct Both<T=u32, const N: usize=3> {
+  arr: [T; N]
+}
+
+trait BothTrait<T=u32, const N: usize=3> {}
+
+enum BothEnum<T=u32, const N: usize=3> {
+  Dummy([T; N])
+}