chiark / gitweb /
W
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 May 2022 14:53:01 +0000 (15:53 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 16 May 2022 14:53:01 +0000 (15:53 +0100)
src/main.rs

index 86167f913bb2cbf65f393e3c758d7fc6466b932e..4d52515cabef97896e5b5f14cacadc06aec9f39b 100644 (file)
@@ -1,15 +1,36 @@
 #![allow(dead_code)]
 
 trait Ish {
+    const N: usize;
     const F: &'static [&'static str];
 }
 
 struct Inner { i: usize, }
 
 impl Ish for Inner {
+    const N: usize = 1;
     const F: &'static [&'static str] = &["i"];
 }
 
+const fn plus<AN: usize, BN: usize>(x: &'static [&'static str],
+                                    b: &'static [&'static str])
+    -> &'static [&'static str]
+{
+    unsafe {
+        static mut A: [MaybeUninit<&'static str>; _] = [MaybeUninit::new_uninit(); an + bn];
+    }
+    panic!()
+}
+
+struct Outer { o: usize, }
+impl Ish for Outer {
+    const F: &'static [&'static str] = plus(
+        Inner::N, Inner::F,
+        1, &["o"]
+    );
+}
+
 fn main(){
     eprintln!("IF {:?}", Inner::F);
+    eprintln!("OF {:?}", Outer::F);
 }