Commit afa7bd4
committed
fix(sol-macro): derive Default for dynamic arrays of non-Default elements
A dynamic Solidity array maps to Vec<T>, whose Default impl holds for any T.
can_derive_default still required the element type to be Default for dynamic
arrays, so a struct/error with a field like MyEnum[] lost its Default derive
under #[sol(all_derives)] even though Vec<MyEnum>: Default.
Only require the element to be Default (and length <= 32) for fixed-size arrays
([T; N]); dynamic arrays are always Default.1 parent f81efc7 commit afa7bd4
2 files changed
Lines changed: 28 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
229 | 229 | | |
230 | 230 | | |
231 | 231 | | |
232 | | - | |
233 | | - | |
234 | | - | |
235 | | - | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
236 | 238 | | |
237 | 239 | | |
238 | 240 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
130 | 130 | | |
131 | 131 | | |
132 | 132 | | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
0 commit comments