Commit 870f599
committed
fix(soroban): reject unsupported ABI types before codegen
Move unsupported Soroban ABI validation into the Soroban codegen path before dispatch wrapper generation, encoder/decoder lowering, spec emission, and LLVM emission can hit unsupported constructs.
Add diagnostics for unsupported Soroban external/public ABI surfaces, including unsupported bytes parameters, bytes/string/struct/array returns, public accessor returns, multiple external returns, unsupported event argument types, and internal string-helper patterns that could otherwise reach LLVM/Inkwell failures.
Target-gate the Soroban validation and early returns so non-Soroban diagnostic accumulation remains unchanged.
This avoids user-triggerable panic!, todo!, unimplemented!, and LLVM assertion paths from #1897 while keeping supported event emission, public string accessors, internal bytes helpers, and non-Soroban targets unaffected.
Signed-off-by: mohamedbasuony <mohamedbasuony@aucegypt.edu>1 parent 0f0e2e4 commit 870f599
4 files changed
Lines changed: 804 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
302 | 302 | | |
303 | 303 | | |
304 | 304 | | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
305 | 317 | | |
306 | 318 | | |
307 | 319 | | |
| |||
359 | 371 | | |
360 | 372 | | |
361 | 373 | | |
| 374 | + | |
| 375 | + | |
| 376 | + | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
362 | 381 | | |
363 | 382 | | |
364 | 383 | | |
| |||
0 commit comments