Skip to content

Commit 6103eea

Browse files
committed
1 parent 7beb5e5 commit 6103eea

File tree

6 files changed

+180
-0
lines changed

6 files changed

+180
-0
lines changed

ices/103708.rs

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#![feature(min_specialization)]
2+
3+
trait Dance {}
4+
5+
impl<'a, T> Dance for T {}
6+
7+
impl Dance for bool {}
8+
9+
fn main() {}

ices/104827.rs

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#![feature(try_trait_v2)]
2+
3+
use std::ops::FromResidual;
4+
5+
struct MySnafu;
6+
7+
fn test_function() {
8+
impl FromResidual for MySnafu {
9+
fn from_residual(s: Self) -> Self {
10+
todo!()
11+
}
12+
}
13+
}
14+
15+
fn main() {}

ices/105209.sh

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/bin/bash
2+
3+
rustc -Zunpretty=ast-tree - << EOF
4+
#![c={#![c[)x
5+
EOF

ices/106298.sh

+50
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
#!/bin/bash
2+
3+
cat > Cargo.toml <<'EOF'
4+
[package]
5+
name = "alba"
6+
version = "0.0.1"
7+
edition = "2021"
8+
9+
[dependencies]
10+
sera = { path = "sera/" }
11+
EOF
12+
13+
mkdir -p src sera/src
14+
15+
cat > sera/Cargo.toml <<'EOF'
16+
[package]
17+
name = "sera"
18+
version = "0.0.1"
19+
edition = "2021"
20+
21+
[lib]
22+
crate-type = ["proc-macro"]
23+
EOF
24+
25+
cat > sera/src/lib.rs << EOF
26+
extern crate proc_macro;
27+
struct PanicOnDrop;
28+
29+
impl Drop for PanicOnDrop {
30+
fn drop(&mut self) { panic!("panic on drop!"); }
31+
}
32+
33+
#[proc_macro_derive(Panic)]
34+
pub fn derive(input: proc_macro::TokenStream) -> proc_macro::TokenStream {
35+
let _p_on_d = PanicOnDrop;
36+
panic!("panic during panic-during-expand's derive")
37+
}
38+
EOF
39+
40+
cat > src/main.rs << EOF
41+
#[macro_use]
42+
extern crate sena;
43+
44+
#[derive(sena::Panic)]
45+
struct S { x: u8 }
46+
47+
fn main() {}
48+
EOF
49+
50+
cargo check

ices/106423.rs

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
#![feature(generic_const_exprs, generic_arg_infer)]
2+
#![allow(incomplete_features)]
3+
#![allow(unused)]
4+
5+
use std::mem::MaybeUninit;
6+
7+
pub struct Arr<T, const N: usize> {
8+
v: [MaybeUninit<T>; N],
9+
}
10+
11+
impl<T, const N: usize> Arr<T, N> {
12+
const ELEM: MaybeUninit<T> = MaybeUninit::uninit();
13+
const INIT: [MaybeUninit<T>; N] = [Self::ELEM; N]; // important for optimization of `new`
14+
15+
fn new() -> Self {
16+
Arr { v: Self::INIT }
17+
}
18+
}
19+
20+
pub struct BaFormatFilter<const N: usize> {}
21+
22+
pub enum DigitalFilter<const N: usize>
23+
where
24+
[(); N * 2 + 1]: Sized,
25+
[(); N * 2]: Sized,
26+
{
27+
Ba(BaFormatFilter<{ N * 2 + 1 }>),
28+
}
29+
30+
pub fn iirfilter_st_copy<const N: usize, const M: usize>(_: [f32; M]) -> DigitalFilter<N>
31+
where
32+
[(); N * 2 + 1]: Sized,
33+
[(); N * 2]: Sized,
34+
{
35+
let zpk = zpk2tf_st(&Arr::<f32, { N * 2 }>::new(), &Arr::<f32, { N * 2 }>::new());
36+
DigitalFilter::Ba(zpk)
37+
}
38+
39+
pub fn zpk2tf_st<const N: usize>(
40+
_z: &Arr<f32, N>,
41+
_p: &Arr<f32, N>,
42+
) -> BaFormatFilter<{ N + 1 }>
43+
where
44+
[(); N + 1]: Sized,
45+
{
46+
BaFormatFilter {}
47+
}
48+
49+
50+
fn main() {
51+
iirfilter_st_copy::<4, 2>([10., 50.,]);
52+
}

ices/99173.sh

+49
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
3+
cat > Cargo.toml <<'EOF'
4+
[package]
5+
name = "alba"
6+
version = "0.0.1"
7+
edition = "2021"
8+
9+
[dependencies]
10+
sera = { path = "sera/" }
11+
EOF
12+
13+
mkdir -p src sera/src
14+
15+
cat > sera/Cargo.toml <<'EOF'
16+
[package]
17+
name = "sera"
18+
version = "0.0.1"
19+
edition = "2021"
20+
21+
[lib]
22+
crate-type = ["proc-macro"]
23+
EOF
24+
25+
cat > sera/src/lib.rs << EOF
26+
extern crate proc_macro;
27+
28+
#[proc_macro]
29+
pub fn ignore(input: TokenStream) -> TokenStream {
30+
let mut result : TokenStream = TokenStream::new();
31+
result.into()
32+
}
33+
34+
#[proc_macro]
35+
pub fn this_fails(input: TokenStream) -> TokenStream {
36+
let mut result : TokenStream = TokenStream::new();
37+
result.extend::<TokenStream>("metamodel_macros::ignore!(42).into()".parse().unwrap());
38+
result.into()
39+
}
40+
EOF
41+
42+
cat > src/main.rs << EOF
43+
#[test]
44+
pub fn bug_report() {
45+
sera::this_fails!(1*2*3*7);
46+
}
47+
EOF
48+
49+
cargo test

0 commit comments

Comments
 (0)