Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 14223a9

Browse files
committedApr 16, 2024
crashes: add even more tests?!?
1 parent 468f115 commit 14223a9

28 files changed

+744
-0
lines changed
 

‎tests/crashes/112623.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//@ known-bug: #112623
2+
3+
#![feature(const_trait_impl, effects)]
4+
5+
#[const_trait]
6+
trait Value {
7+
fn value() -> u32;
8+
}
9+
10+
const fn get_value<T: ~const Value>() -> u32 {
11+
T::value()
12+
}
13+
14+
struct FortyTwo;
15+
16+
impl const Value for FortyTwo {
17+
fn value() -> i64 {
18+
42
19+
}
20+
}
21+
22+
const FORTY_TWO: u32 = get_value::<FortyTwo>();
23+
24+
fn main() {
25+
assert_eq!(FORTY_TWO, 42);
26+
}

‎tests/crashes/114198-2.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//@ known-bug: #114198
2+
//@ compile-flags: -Zprint-mono-items=eager
3+
4+
impl Trait for <Ty as Owner>::Struct {}
5+
trait Trait {
6+
fn test(&self) {}
7+
}
8+
9+
enum Ty {}
10+
trait Owner { type Struct: ?Sized; }
11+
impl Owner for Ty {
12+
type Struct = dyn Trait + Send;
13+
}
14+
15+
fn main() {}

‎tests/crashes/114198.rs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
//@ known-bug: #114198
2+
//@ compile-flags: -Zprint-mono-items=eager
3+
4+
#![feature(lazy_type_alias)]
5+
6+
impl Trait for Struct {}
7+
trait Trait {
8+
fn test(&self) {}
9+
}
10+
11+
type Struct = dyn Trait + Send;
12+
13+
fn main() {}

‎tests/crashes/118185.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
//@ known-bug: #118185
2+
3+
fn main() {
4+
let target: Target = create_target();
5+
target.get(0); // correct arguments work
6+
target.get(10.0); // CRASH HERE
7+
}
8+
9+
// must be generic
10+
fn create_target<T>() -> T {
11+
unimplemented!()
12+
}
13+
14+
// unimplemented trait, but contains function with the same name
15+
pub trait RandomTrait {
16+
fn get(&mut self); // but less arguments
17+
}
18+
19+
struct Target;
20+
21+
impl Target {
22+
// correct function with arguments
23+
pub fn get(&self, data: i32) {
24+
unimplemented!()
25+
}
26+
}

‎tests/crashes/120421.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
//@ known-bug: #120421
2+
//@ compile-flags: -Zlint-mir
3+
4+
#![feature(never_patterns)]
5+
6+
enum Void {}
7+
8+
fn main() {
9+
let res_void: Result<bool, Void> = Ok(true);
10+
11+
for (Ok(mut _x) | Err(!)) in [res_void] {}
12+
}

‎tests/crashes/120792.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
//@ known-bug: #120792
2+
//@ compile-flags: -Zpolymorphize=on -Zinline-mir=yes
3+
4+
impl Trait<()> for () {
5+
fn foo<'a, K>(self, _: (), _: K) {
6+
todo!();
7+
}
8+
}
9+
10+
trait Foo<T> {}
11+
12+
impl<F, T> Foo<T> for F {
13+
fn main() {
14+
().foo((), ());
15+
}
16+
}
17+
18+
trait Trait<T> {
19+
fn foo<'a, K>(self, _: T, _: K)
20+
where
21+
T: 'a,
22+
K: 'a;
23+
}
24+
25+
pub fn main() {}

‎tests/crashes/120811.rs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
//@ known-bug: #120811
2+
3+
trait Container {
4+
type Item<'a>;
5+
}
6+
impl Container for () {
7+
type Item<'a> = ();
8+
}
9+
struct Exchange<C, F> {
10+
_marker: std::marker::PhantomData<(C, F)>,
11+
}
12+
fn exchange<C, F>(_: F) -> Exchange<C, F>
13+
where
14+
C: Container,
15+
for<'a> F: FnMut(&C::Item<'a>),
16+
{
17+
unimplemented!()
18+
}
19+
trait Parallelization<C> {}
20+
impl<C, F> Parallelization<C> for Exchange<C, F> {}
21+
fn unary_frontier<P: Parallelization<()>>(_: P) {}
22+
fn main() {
23+
let exchange = exchange(|_| ());
24+
let _ = || {
25+
unary_frontier(exchange);
26+
};
27+
}

‎tests/crashes/121063.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//@ known-bug: #121063
2+
//@ compile-flags: -Zpolymorphize=on --edition=2021 -Zinline-mir=yes
3+
4+
use std::{
5+
fmt, ops,
6+
path::{Component, Path, PathBuf},
7+
};
8+
9+
pub struct AbsPathBuf(PathBuf);
10+
11+
impl TryFrom<PathBuf> for AbsPathBuf {
12+
type Error = PathBuf;
13+
fn try_from(path: impl AsRef<Path>) -> Result<AbsPathBuf, PathBuf> {}
14+
}
15+
16+
impl TryFrom<&str> for AbsPathBuf {
17+
fn try_from(path: &str) -> Result<AbsPathBuf, PathBuf> {
18+
AbsPathBuf::try_from(PathBuf::from(path))
19+
}
20+
}

‎tests/crashes/121127.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//@ known-bug: #121127
2+
//@ compile-flags: -Zpolymorphize=on -Zinline-mir=yes
3+
4+
#![feature(specialization)]
5+
6+
pub trait Foo {
7+
fn abc() -> u32;
8+
}
9+
10+
pub trait Marker {}
11+
12+
impl<T> Foo for T {
13+
default fn abc(f: fn(&T), t: &T) -> u32 {
14+
16
15+
}
16+
}
17+
18+
impl<T: Marker> Foo for T {
19+
fn def() -> u32 {
20+
Self::abc()
21+
}
22+
}

‎tests/crashes/123456.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//@ known-bug: #123456
2+
3+
trait Project {
4+
const SELF: Self;
5+
}
6+
7+
fn take1(
8+
_: Project<
9+
SELF = {
10+
j2.join().unwrap();
11+
},
12+
>,
13+
) {
14+
}
15+
16+
pub fn main() {}

‎tests/crashes/123457.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
//@ known-bug: #123457
2+
3+
pub struct KeyHolder<const K: u8> {}
4+
5+
pub trait ContainsKey<const K: u8> {}
6+
7+
pub trait SubsetExcept<P> {}
8+
9+
impl<K> ContainsKey<K> for KeyHolder<K> {}
10+
11+
impl<P, T: ContainsKey<0>> SubsetExcept<P> for T {}
12+
13+
pub fn remove_key<K, S: SubsetExcept<K>>() -> S {
14+
loop {}
15+
}
16+
17+
fn foo() {
18+
let map: KeyHolder<0> = remove_key::<_, _>();
19+
}
20+
21+
pub fn main() {}

‎tests/crashes/123461.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//@ known-bug: #123461
2+
3+
fn main() {
4+
let _: [_; unsafe { std::mem::transmute(|o_b: Option<_>| {}) }];
5+
}

‎tests/crashes/123690.rs

Lines changed: 278 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,278 @@
1+
//@ known-bug: #123690
2+
3+
fn more_discriminant_overflow() {
4+
pub enum Infallible {}
5+
6+
pub enum E1 {
7+
V2 {},
8+
V3,
9+
V4,
10+
}
11+
12+
#[repr(u8)]
13+
14+
pub enum E2<X> {
15+
V1 { f: bool },
16+
17+
/*_00*/ _01(X),
18+
_02(X),
19+
_03(X),
20+
_04(X),
21+
_05(X),
22+
_06(X),
23+
_07(X),
24+
_08(X),
25+
_09(X),
26+
_0A(X),
27+
_0B(X),
28+
_0C(X),
29+
_0D(X),
30+
_0E(X),
31+
_0F(X),
32+
_10(X),
33+
_11(X),
34+
_12(X),
35+
_13(X),
36+
_14(X),
37+
_15(X),
38+
_16(X),
39+
_17(X),
40+
_18(X),
41+
_19(X),
42+
_1A(X),
43+
_1B(X),
44+
_1C(X),
45+
_1D(X),
46+
_1E(X),
47+
_1F(X),
48+
_20(X),
49+
_21(X),
50+
_22(X),
51+
_23(X),
52+
_24(X),
53+
_25(X),
54+
_26(X),
55+
_27(X),
56+
_28(X),
57+
_29(X),
58+
_2A(X),
59+
_2B(X),
60+
_2C(X),
61+
_2D(X),
62+
_2E(X),
63+
_2F(X),
64+
_30(X),
65+
_31(X),
66+
_32(X),
67+
_33(X),
68+
_34(X),
69+
_35(X),
70+
_36(X),
71+
_37(X),
72+
_38(X),
73+
_39(X),
74+
_3A(X),
75+
_3B(X),
76+
_3C(X),
77+
_3D(X),
78+
_3E(X),
79+
_3F(X),
80+
_40(X),
81+
_41(X),
82+
_42(X),
83+
_43(X),
84+
_44(X),
85+
_45(X),
86+
_46(X),
87+
_47(X),
88+
_48(X),
89+
_49(X),
90+
_4A(X),
91+
_4B(X),
92+
_4C(X),
93+
_4D(X),
94+
_4E(X),
95+
_4F(X),
96+
_50(X),
97+
_51(X),
98+
_52(X),
99+
_53(X),
100+
_54(X),
101+
_55(X),
102+
_56(X),
103+
_57(X),
104+
_58(X),
105+
_59(X),
106+
_5A(X),
107+
_5B(X),
108+
_5C(X),
109+
_5D(X),
110+
_5E(X),
111+
_5F(X),
112+
_60(X),
113+
_61(X),
114+
_62(X),
115+
_63(X),
116+
_64(X),
117+
_65(X),
118+
_66(X),
119+
_67(X),
120+
_68(X),
121+
_69(X),
122+
_6A(X),
123+
_6B(X),
124+
_6C(X),
125+
_6D(X),
126+
_6E(X),
127+
_6F(X),
128+
_70(X),
129+
_71(X),
130+
_72(X),
131+
_73(X),
132+
_74(E1),
133+
_75(X),
134+
_76(X),
135+
_77(X),
136+
_78(X),
137+
_79(X),
138+
_7A(X),
139+
_7B(X),
140+
_7C(X),
141+
_7D(X),
142+
_7E(X),
143+
_7F(X),
144+
_80(X),
145+
_81(X),
146+
_82(X),
147+
_83(X),
148+
_84(X),
149+
_85(X),
150+
_86(X),
151+
_87(X),
152+
_88(X),
153+
_89(X),
154+
_8A(X),
155+
_8B(X),
156+
_8C(X),
157+
_8D(X),
158+
_8E(X),
159+
_8F(X),
160+
_90(X),
161+
_91(X),
162+
_92(X),
163+
_93(X),
164+
_94(X),
165+
_95(X),
166+
_96(X),
167+
_97(X),
168+
_98(X),
169+
_99(X),
170+
_9A(X),
171+
_9B(X),
172+
_9C(X),
173+
_9D(X),
174+
_9E(X),
175+
_9F(X),
176+
_A0(X),
177+
_A1(X),
178+
_A2(X),
179+
_A3(X),
180+
_A4(X),
181+
_A5(X),
182+
_A6(X),
183+
_A7(X),
184+
_A8(X),
185+
_A9(X),
186+
_AA(X),
187+
_AB(X),
188+
_AC(X),
189+
_AD(X),
190+
_AE(X),
191+
_AF(X),
192+
_B0(X),
193+
_B1(X),
194+
_B2(X),
195+
_B3(X),
196+
_B4(X),
197+
_B5(X),
198+
_B6(X),
199+
_B7(X),
200+
_B8(X),
201+
_B9(X),
202+
_BA(X),
203+
_BB(X),
204+
_BC(X),
205+
_BD(X),
206+
_BE(X),
207+
_BF(X),
208+
_C0(X),
209+
_C1(X),
210+
_C2(X),
211+
_C3(X),
212+
_C4(X),
213+
_C5(X),
214+
_C6(X),
215+
_D8(X),
216+
_C8(X),
217+
_C9(X),
218+
_CA(X),
219+
_CB(X),
220+
_CC(X),
221+
_CD(X),
222+
_CE(X),
223+
_CF(X),
224+
_D0(X),
225+
_D1(X),
226+
_D2(X),
227+
_D3(X),
228+
_D4(X),
229+
_D5(X),
230+
_D6(X),
231+
_D7(X),
232+
_D8(X),
233+
_D9(X),
234+
_DA(X),
235+
_DB(X),
236+
_DC(X),
237+
_DD(X),
238+
_DE(X),
239+
_DF(X),
240+
_E0(X),
241+
_E1(X),
242+
_E2(X),
243+
_E3(X),
244+
_E4(X),
245+
_E5(X),
246+
_E6(X),
247+
_E7(X),
248+
_E8(X),
249+
_E9(X),
250+
_EA(X),
251+
_EB(X),
252+
_EC(X),
253+
_ED(X),
254+
_EE(X),
255+
_EF(i32, i32),
256+
_F0(X),
257+
_F1(X),
258+
_F2(X),
259+
_F3(X),
260+
_F4(X),
261+
_F5(X),
262+
_F6(X),
263+
_F7(X),
264+
_F8(X),
265+
_F9(X),
266+
_FA(X),
267+
_FB(X),
268+
_FC(X),
269+
_FD(X),
270+
_FE(X),
271+
_FF(X),
272+
273+
V3,
274+
V4,
275+
}
276+
277+
if let E2::V1 { .. } = E2::V3::<Infallible> {}
278+
}

‎tests/crashes/123693.rs

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
//@ known-bug: #123693
2+
3+
#![feature(transmutability)]
4+
5+
mod assert {
6+
use std::mem::{Assume, BikeshedIntrinsicFrom};
7+
8+
pub fn is_transmutable<Src, Dst>()
9+
where
10+
Dst: BikeshedIntrinsicFrom<Src, { Assume::NOTHING }>,
11+
{
12+
}
13+
}
14+
15+
enum Lopsided {
16+
Smol(()),
17+
Lorg(bool),
18+
}
19+
20+
fn should_pad_variants() {
21+
assert::is_transmutable::<Lopsided, ()>();
22+
}

‎tests/crashes/123710.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//@ known-bug: #123710
2+
3+
#[repr(packed)]
4+
#[repr(u32)]
5+
enum E {
6+
A,
7+
B,
8+
C,
9+
}
10+
11+
fn main() {
12+
union InvalidTag {
13+
int: u32,
14+
e: E,
15+
}
16+
let _invalid_tag = InvalidTag { int: 4 };
17+
}

‎tests/crashes/123809.rs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
//@ known-bug: #123809
2+
type Positive = std::pat::pattern_type!(std::pat:: is 0..);
3+
4+
pub fn main() {}

‎tests/crashes/123810.rs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
//@ known-bug: #123810
2+
//@ compile-flags: -Zlint-mir
3+
4+
fn temp() -> (String, i32) {
5+
(String::from("Hello"), 1)
6+
}
7+
8+
fn main() {
9+
let f = if true { &temp() } else { &temp() };
10+
}

‎tests/crashes/123863.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
//@ known-bug: #123863
2+
const fn concat_strs<const A: &'static str>() -> &'static str {
3+
struct Inner<const A: &'static str>;
4+
Inner::concat_strs::<"a">::A
5+
}
6+
pub fn main() {}

‎tests/crashes/123893.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
//@ known-bug: #123893
2+
//@ compile-flags: -Zpolymorphize=on -Zinline-mir=yes -Zinline-mir-threshold=20
3+
pub fn main() {
4+
generic_impl::<bool>();
5+
}
6+
7+
fn generic_impl<T>() {
8+
trait MagicTrait {
9+
const IS_BIG: bool;
10+
}
11+
impl<T> MagicTrait for T {
12+
const IS_BIG: bool = true;
13+
}
14+
if T::IS_BIG {
15+
big_impl::<i32>();
16+
}
17+
}
18+
19+
#[inline(never)]
20+
fn big_impl<T>() {}

‎tests/crashes/123901.rs

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
//@ known-bug: #123901
2+
//@ edition:2021
3+
4+
pub fn test(test: &u64, temp: &u64) {
5+
async |check, a, b| {
6+
temp.abs_diff(12);
7+
};
8+
}

‎tests/crashes/123911.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
//@ known-bug: #123911
2+
3+
macro_rules! m {
4+
($attr_path: path) => {
5+
#[$attr_path]
6+
fn f() {}
7+
}
8+
}
9+
10+
m!(inline<{
11+
let a = CharCharFloat { a: 1 };
12+
let b = rustrt::rust_dbg_abi_4(a);
13+
println!("a: {}", b.a);
14+
}>);
15+
16+
fn main() {}

‎tests/crashes/123912.rs

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//@ known-bug: #123912
2+
3+
macro_rules! m {
4+
($attr_path: path) => {
5+
#[$attr_path]
6+
fn f() {}
7+
}
8+
}
9+
10+
m!(inline<{
11+
let a = CharCharFloat { a: 1 };
12+
println!("a: {}", a);
13+
}>);
14+
15+
fn main() {}

‎tests/crashes/123917.rs

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
//@ known-bug: #123917
2+
//@ compile-flags: -Zmir-opt-level=5 -Zpolymorphize=on
3+
4+
use std::marker::PhantomData;
5+
6+
pub struct Id<'id>();
7+
8+
pub struct Item<'life, T> {
9+
data: T,
10+
}
11+
12+
pub struct Token<'life, 'borrow, 'compact, 'reborrow, T>
13+
where
14+
'life: 'reborrow,
15+
T: Tokenize,
16+
{
17+
ptr: *mut <T as Tokenize>::Tokenized,
18+
ptr: core::ptr::NonNull<T::Tokenized>,
19+
_phantom: PhantomData<Id<'life>>,
20+
}
21+
22+
impl<'life> Arena<'life> {
23+
pub fn tokenize<'before, 'compact, 'borrow, 'reborrow, T, U>(
24+
item: Item<'life, &'before mut T>,
25+
) -> Token<'life, 'borrow, 'compact, 'reborrow, U>
26+
where
27+
T: Tokenize<'life, 'borrow, 'compact, 'reborrow, Untokenized = U>,
28+
T::Untokenized: Tokenize<'life, 'borrow, 'compact, 'reborrow>,
29+
{
30+
let dst = item.data as *mut T as *mut T::Tokenized;
31+
Token {
32+
ptr: core::ptr::NonNull::new(dst as *mut _).unwrap(),
33+
_phantom: PhantomData,
34+
}
35+
}
36+
}
37+
38+
pub trait Tokenize {
39+
type Tokenized;
40+
type Untokenized;
41+
}

‎tests/crashes/123959.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
//@ known-bug: #123959
2+
#![feature(generic_const_exprs)]
3+
fn foo<T>(_: [(); std::mem::offset_of!((T,), 0)]) {}
4+
5+
pub fn main() {}

‎tests/crashes/124004.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
//@ known-bug: #124004
2+
3+
#![feature(box_patterns)]
4+
5+
use std::ops::{ Deref };
6+
7+
struct X(dyn Iterator<Item = &'a ()>);
8+
9+
impl Deref for X {
10+
type Target = isize;
11+
12+
fn deref(&self) -> &isize {
13+
let &X(box ref x) = self;
14+
x
15+
}
16+
}
17+
18+
fn main() {}

‎tests/crashes/124020.rs

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
//@ known-bug: #124020
2+
//@ compile-flags: -Zpolymorphize=on --edition=2018 --crate-type=lib
3+
4+
#![feature(async_closure, noop_waker, async_fn_traits)]
5+
6+
use std::future::Future;
7+
use std::pin::pin;
8+
use std::task::*;
9+
10+
pub fn block_on<T>(fut: impl Future<Output = T>) -> T {
11+
let mut fut = pin!(fut);
12+
let ctx = &mut Context::from_waker(Waker::noop());
13+
14+
loop {
15+
match fut.as_mut().poll(ctx) {
16+
Poll::Pending => {}
17+
Poll::Ready(t) => break t,
18+
}
19+
}
20+
}
21+
22+
async fn call_once(f: impl async FnOnce(DropMe)) {
23+
f(DropMe("world")).await;
24+
}
25+
26+
struct DropMe(&'static str);
27+
28+
pub fn future() {
29+
block_on(async {
30+
let async_closure = async move |a: DropMe| {};
31+
call_once(async_closure).await;
32+
});
33+
}

‎tests/crashes/124021.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
//@ known-bug: #124021
2+
type Opaque2<'a> = impl Sized + 'a;
3+
4+
fn test2() -> impl for<'a, 'b> Fn((&'a str, &'b str)) -> (Opaque2<'a>, Opaque2<'a>) {
5+
|x| x
6+
}

‎tests/crashes/124031.rs

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
//@ known-bug: #124031
2+
3+
trait Trait {
4+
type RefTarget;
5+
}
6+
7+
impl Trait for () {}
8+
9+
struct Other {
10+
data: <() as Trait>::RefTarget,
11+
}
12+
13+
fn main() {
14+
unsafe {
15+
std::mem::transmute::<Option<()>, Option<&Other>>(None);
16+
}
17+
}

0 commit comments

Comments
 (0)
Please sign in to comment.