Skip to content

Commit 8f1e7ab

Browse files
authored
[4/n] [daft-derive] produce ::core instead of ::std
This allows daft-derive to work without std, not just daft itself. Reviewers: andrewjstone Reviewed By: andrewjstone Pull Request: #61
1 parent 7cb7e7a commit 8f1e7ab

11 files changed

+151
-139
lines changed

daft-derive/src/internals/imp.rs

+9-8
Original file line numberDiff line numberDiff line change
@@ -347,8 +347,9 @@ fn make_diff_struct(
347347
let (impl_gen, ty_gen, _) = &new_generics.split_for_impl();
348348

349349
let debug_impl = {
350-
let where_clause = diff_fields
351-
.where_clause_with_trait_bound(&parse_quote! { ::std::fmt::Debug });
350+
let where_clause = diff_fields.where_clause_with_trait_bound(
351+
&parse_quote! { ::core::fmt::Debug },
352+
);
352353
let members = diff_fields.fields.members();
353354

354355
let finish = if non_exhaustive.is_some() {
@@ -380,8 +381,8 @@ fn make_diff_struct(
380381
},
381382
};
382383
quote! {
383-
impl #impl_gen ::std::fmt::Debug for #name #ty_gen #where_clause {
384-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
384+
impl #impl_gen ::core::fmt::Debug for #name #ty_gen #where_clause {
385+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
385386
#debug_body
386387
}
387388
}
@@ -390,7 +391,7 @@ fn make_diff_struct(
390391

391392
let partial_eq_impl = {
392393
let where_clause = diff_fields.where_clause_with_trait_bound(
393-
&parse_quote! { ::std::cmp::PartialEq },
394+
&parse_quote! { ::core::cmp::PartialEq },
394395
);
395396
let members = diff_fields.fields.members();
396397

@@ -399,7 +400,7 @@ fn make_diff_struct(
399400
};
400401

401402
quote! {
402-
impl #impl_gen ::std::cmp::PartialEq for #name #ty_gen #where_clause {
403+
impl #impl_gen ::core::cmp::PartialEq for #name #ty_gen #where_clause {
403404
fn eq(&self, other: &Self) -> bool {
404405
#partial_eq_body
405406
}
@@ -409,10 +410,10 @@ fn make_diff_struct(
409410

410411
let eq_impl = {
411412
let where_clause = diff_fields
412-
.where_clause_with_trait_bound(&parse_quote! { ::std::cmp::Eq });
413+
.where_clause_with_trait_bound(&parse_quote! { ::core::cmp::Eq });
413414

414415
quote! {
415-
impl #impl_gen ::std::cmp::Eq for #name #ty_gen #where_clause {}
416+
impl #impl_gen ::core::cmp::Eq for #name #ty_gen #where_clause {}
416417
}
417418
};
418419

daft-derive/tests/fixtures/invalid/output/struct-field-not-diffable.output.rs

+10-10
Original file line numberDiff line numberDiff line change
@@ -2,31 +2,31 @@ struct MyStructDiff<'__daft> {
22
a: <i32 as ::daft::Diffable>::Diff<'__daft>,
33
b: <NonDiffable as ::daft::Diffable>::Diff<'__daft>,
44
}
5-
impl<'__daft> ::std::fmt::Debug for MyStructDiff<'__daft>
5+
impl<'__daft> ::core::fmt::Debug for MyStructDiff<'__daft>
66
where
7-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
8-
<NonDiffable as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
7+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
8+
<NonDiffable as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
99
{
10-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
10+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1111
f.debug_struct(stringify!(MyStructDiff))
1212
.field(stringify!(a), &self.a)
1313
.field(stringify!(b), &self.b)
1414
.finish()
1515
}
1616
}
17-
impl<'__daft> ::std::cmp::PartialEq for MyStructDiff<'__daft>
17+
impl<'__daft> ::core::cmp::PartialEq for MyStructDiff<'__daft>
1818
where
19-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
20-
<NonDiffable as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
19+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
20+
<NonDiffable as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
2121
{
2222
fn eq(&self, other: &Self) -> bool {
2323
self.a == other.a && self.b == other.b
2424
}
2525
}
26-
impl<'__daft> ::std::cmp::Eq for MyStructDiff<'__daft>
26+
impl<'__daft> ::core::cmp::Eq for MyStructDiff<'__daft>
2727
where
28-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
29-
<NonDiffable as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
28+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
29+
<NonDiffable as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
3030
{}
3131
impl ::daft::Diffable for MyStruct {
3232
type Diff<'__daft> = MyStructDiff<'__daft> where Self: '__daft;

daft-derive/tests/fixtures/valid/generic-struct.rs

+3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// Check that no-std works.
2+
#![no_std]
3+
14
use daft::Diffable;
25

36
#[derive(Debug, Eq, PartialEq, Diffable)]

daft-derive/tests/fixtures/valid/output/attributes.output.rs

+32-29
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,18 @@ struct WithAttrsDiff<'__daft> {
55
e: ::daft::Leaf<&'__daft usize>,
66
f: <usize as ::daft::Diffable>::Diff<'__daft>,
77
}
8-
impl<'__daft> ::std::fmt::Debug for WithAttrsDiff<'__daft>
8+
impl<'__daft> ::core::fmt::Debug for WithAttrsDiff<'__daft>
99
where
10-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
10+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
1111
<BTreeMap<
1212
Uuid,
1313
BTreeSet<usize>,
14-
> as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
15-
::daft::Leaf<&'__daft Lazy>: ::std::fmt::Debug,
16-
::daft::Leaf<&'__daft usize>: ::std::fmt::Debug,
17-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
14+
> as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
15+
::daft::Leaf<&'__daft Lazy>: ::core::fmt::Debug,
16+
::daft::Leaf<&'__daft usize>: ::core::fmt::Debug,
17+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
1818
{
19-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
19+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2020
f.debug_struct(stringify!(WithAttrsDiff))
2121
.field(stringify!(a), &self.a)
2222
.field(stringify!(b), &self.b)
@@ -26,29 +26,32 @@ where
2626
.finish()
2727
}
2828
}
29-
impl<'__daft> ::std::cmp::PartialEq for WithAttrsDiff<'__daft>
29+
impl<'__daft> ::core::cmp::PartialEq for WithAttrsDiff<'__daft>
3030
where
31-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
31+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
3232
<BTreeMap<
3333
Uuid,
3434
BTreeSet<usize>,
35-
> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
36-
::daft::Leaf<&'__daft Lazy>: ::std::cmp::PartialEq,
37-
::daft::Leaf<&'__daft usize>: ::std::cmp::PartialEq,
38-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
35+
> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
36+
::daft::Leaf<&'__daft Lazy>: ::core::cmp::PartialEq,
37+
::daft::Leaf<&'__daft usize>: ::core::cmp::PartialEq,
38+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
3939
{
4040
fn eq(&self, other: &Self) -> bool {
4141
self.a == other.a && self.b == other.b && self.d == other.d && self.e == other.e
4242
&& self.f == other.f
4343
}
4444
}
45-
impl<'__daft> ::std::cmp::Eq for WithAttrsDiff<'__daft>
45+
impl<'__daft> ::core::cmp::Eq for WithAttrsDiff<'__daft>
4646
where
47-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
48-
<BTreeMap<Uuid, BTreeSet<usize>> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
49-
::daft::Leaf<&'__daft Lazy>: ::std::cmp::Eq,
50-
::daft::Leaf<&'__daft usize>: ::std::cmp::Eq,
51-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
47+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
48+
<BTreeMap<
49+
Uuid,
50+
BTreeSet<usize>,
51+
> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
52+
::daft::Leaf<&'__daft Lazy>: ::core::cmp::Eq,
53+
::daft::Leaf<&'__daft usize>: ::core::cmp::Eq,
54+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
5255
{}
5356
impl ::daft::Diffable for WithAttrs {
5457
type Diff<'__daft> = WithAttrsDiff<'__daft> where Self: '__daft;
@@ -72,31 +75,31 @@ struct LazyDiff<'__daft> {
7275
x: <usize as ::daft::Diffable>::Diff<'__daft>,
7376
y: <usize as ::daft::Diffable>::Diff<'__daft>,
7477
}
75-
impl<'__daft> ::std::fmt::Debug for LazyDiff<'__daft>
78+
impl<'__daft> ::core::fmt::Debug for LazyDiff<'__daft>
7679
where
77-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
78-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
80+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
81+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
7982
{
80-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
83+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
8184
f.debug_struct(stringify!(LazyDiff))
8285
.field(stringify!(x), &self.x)
8386
.field(stringify!(y), &self.y)
8487
.finish()
8588
}
8689
}
87-
impl<'__daft> ::std::cmp::PartialEq for LazyDiff<'__daft>
90+
impl<'__daft> ::core::cmp::PartialEq for LazyDiff<'__daft>
8891
where
89-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
90-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
92+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
93+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
9194
{
9295
fn eq(&self, other: &Self) -> bool {
9396
self.x == other.x && self.y == other.y
9497
}
9598
}
96-
impl<'__daft> ::std::cmp::Eq for LazyDiff<'__daft>
99+
impl<'__daft> ::core::cmp::Eq for LazyDiff<'__daft>
97100
where
98-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
99-
<usize as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
101+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
102+
<usize as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
100103
{}
101104
impl ::daft::Diffable for Lazy {
102105
type Diff<'__daft> = LazyDiff<'__daft> where Self: '__daft;

daft-derive/tests/fixtures/valid/output/basic.output.rs

+13-10
Original file line numberDiff line numberDiff line change
@@ -2,37 +2,40 @@ struct BasicDiff<'__daft> {
22
a: <i32 as ::daft::Diffable>::Diff<'__daft>,
33
b: <BTreeMap<Uuid, BTreeSet<usize>> as ::daft::Diffable>::Diff<'__daft>,
44
}
5-
impl<'__daft> ::std::fmt::Debug for BasicDiff<'__daft>
5+
impl<'__daft> ::core::fmt::Debug for BasicDiff<'__daft>
66
where
7-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
7+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
88
<BTreeMap<
99
Uuid,
1010
BTreeSet<usize>,
11-
> as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
11+
> as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
1212
{
13-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
13+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1414
f.debug_struct(stringify!(BasicDiff))
1515
.field(stringify!(a), &self.a)
1616
.field(stringify!(b), &self.b)
1717
.finish()
1818
}
1919
}
20-
impl<'__daft> ::std::cmp::PartialEq for BasicDiff<'__daft>
20+
impl<'__daft> ::core::cmp::PartialEq for BasicDiff<'__daft>
2121
where
22-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
22+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
2323
<BTreeMap<
2424
Uuid,
2525
BTreeSet<usize>,
26-
> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
26+
> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
2727
{
2828
fn eq(&self, other: &Self) -> bool {
2929
self.a == other.a && self.b == other.b
3030
}
3131
}
32-
impl<'__daft> ::std::cmp::Eq for BasicDiff<'__daft>
32+
impl<'__daft> ::core::cmp::Eq for BasicDiff<'__daft>
3333
where
34-
<i32 as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
35-
<BTreeMap<Uuid, BTreeSet<usize>> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
34+
<i32 as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
35+
<BTreeMap<
36+
Uuid,
37+
BTreeSet<usize>,
38+
> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
3639
{}
3740
impl ::daft::Diffable for Basic {
3841
type Diff<'__daft> = BasicDiff<'__daft> where Self: '__daft;

daft-derive/tests/fixtures/valid/output/complex-lifetimes.output.rs

+18-16
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,16 @@ impl<
1818
'daft: 'a + '__daft,
1919
'inv: '__daft,
2020
'contra: '__daft,
21-
> ::std::fmt::Debug for SDiff<'__daft, 'a, 'b, 'daft, 'inv, 'contra>
21+
> ::core::fmt::Debug for SDiff<'__daft, 'a, 'b, 'daft, 'inv, 'contra>
2222
where
23-
<&'a &'b Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
24-
<&'daft Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
25-
<PhantomData<Cell<&'inv ()>> as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
26-
<PhantomData<fn(&'contra ())> as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
23+
<&'a &'b Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
24+
<&'daft Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
25+
<PhantomData<Cell<&'inv ()>> as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
26+
<PhantomData<
27+
fn(&'contra ()),
28+
> as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
2729
{
28-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
30+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2931
f.debug_struct(stringify!(SDiff))
3032
.field(stringify!(multi_ref), &self.multi_ref)
3133
.field(stringify!(bound_ref), &self.bound_ref)
@@ -41,16 +43,16 @@ impl<
4143
'daft: 'a + '__daft,
4244
'inv: '__daft,
4345
'contra: '__daft,
44-
> ::std::cmp::PartialEq for SDiff<'__daft, 'a, 'b, 'daft, 'inv, 'contra>
46+
> ::core::cmp::PartialEq for SDiff<'__daft, 'a, 'b, 'daft, 'inv, 'contra>
4547
where
46-
<&'a &'b Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
47-
<&'daft Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
48+
<&'a &'b Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
49+
<&'daft Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
4850
<PhantomData<
4951
Cell<&'inv ()>,
50-
> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
52+
> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
5153
<PhantomData<
5254
fn(&'contra ()),
53-
> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
55+
> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
5456
{
5557
fn eq(&self, other: &Self) -> bool {
5658
self.multi_ref == other.multi_ref && self.bound_ref == other.bound_ref
@@ -64,12 +66,12 @@ impl<
6466
'daft: 'a + '__daft,
6567
'inv: '__daft,
6668
'contra: '__daft,
67-
> ::std::cmp::Eq for SDiff<'__daft, 'a, 'b, 'daft, 'inv, 'contra>
69+
> ::core::cmp::Eq for SDiff<'__daft, 'a, 'b, 'daft, 'inv, 'contra>
6870
where
69-
<&'a &'b Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
70-
<&'daft Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
71-
<PhantomData<Cell<&'inv ()>> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
72-
<PhantomData<fn(&'contra ())> as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
71+
<&'a &'b Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
72+
<&'daft Vec<u8> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
73+
<PhantomData<Cell<&'inv ()>> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
74+
<PhantomData<fn(&'contra ())> as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
7375
{}
7476
impl<'a, 'b, 'daft: 'a, 'inv, 'contra> ::daft::Diffable
7577
for S<'a, 'b, 'daft, 'inv, 'contra> {

daft-derive/tests/fixtures/valid/output/default-type-param.output.rs

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
struct StructWithDefaultTypeParamDiff<'__daft, T: Diffable + '__daft = ()> {
22
field: <T as ::daft::Diffable>::Diff<'__daft>,
33
}
4-
impl<'__daft, T: Diffable + '__daft> ::std::fmt::Debug
4+
impl<'__daft, T: Diffable + '__daft> ::core::fmt::Debug
55
for StructWithDefaultTypeParamDiff<'__daft, T>
66
where
7-
<T as ::daft::Diffable>::Diff<'__daft>: ::std::fmt::Debug,
7+
<T as ::daft::Diffable>::Diff<'__daft>: ::core::fmt::Debug,
88
{
9-
fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
9+
fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1010
f.debug_struct(stringify!(StructWithDefaultTypeParamDiff))
1111
.field(stringify!(field), &self.field)
1212
.finish()
1313
}
1414
}
15-
impl<'__daft, T: Diffable + '__daft> ::std::cmp::PartialEq
15+
impl<'__daft, T: Diffable + '__daft> ::core::cmp::PartialEq
1616
for StructWithDefaultTypeParamDiff<'__daft, T>
1717
where
18-
<T as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::PartialEq,
18+
<T as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::PartialEq,
1919
{
2020
fn eq(&self, other: &Self) -> bool {
2121
self.field == other.field
2222
}
2323
}
24-
impl<'__daft, T: Diffable + '__daft> ::std::cmp::Eq
24+
impl<'__daft, T: Diffable + '__daft> ::core::cmp::Eq
2525
for StructWithDefaultTypeParamDiff<'__daft, T>
2626
where
27-
<T as ::daft::Diffable>::Diff<'__daft>: ::std::cmp::Eq,
27+
<T as ::daft::Diffable>::Diff<'__daft>: ::core::cmp::Eq,
2828
{}
2929
impl<T: Diffable> ::daft::Diffable for StructWithDefaultTypeParam<T> {
3030
type Diff<'__daft> = StructWithDefaultTypeParamDiff<'__daft, T> where Self: '__daft;

0 commit comments

Comments
 (0)