Commit cd60fc5
committed
Add support for
The component model `implements` clause allows a world to import
or export the same interface multiple times under
different plain names.
This threads the new `implements:Option<InterfaceId>` field from
wit-parser through the `WorldGenerator` trait
and all backends (Rust, C, C++, C#, Go, MoonBit, Markdown).
A shared `wasm_import_module_name` helper
produces the `[implements=<I>]label` binary encoding.
Key per-backend concerns handled:
- Type dedup: types are generated once per InterfaceId,
not per label
- Wasm names: all wasm-level import/export names use the
implements encoding when applicable
- Distinct bindings: each label gets its own
module/namespace with independent function bindingsimplements clause1 parent 7544b80 commit cd60fc5
15 files changed
Lines changed: 500 additions & 196 deletions
File tree
- crates
- core/src
- cpp/src
- csharp/src
- c/src
- go/src
- markdown/src
- moonbit/src
- rust/src
- tests/codegen
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
211 | 211 | | |
212 | 212 | | |
213 | 213 | | |
| 214 | + | |
214 | 215 | | |
215 | 216 | | |
216 | | - | |
| 217 | + | |
| 218 | + | |
217 | 219 | | |
218 | 220 | | |
| 221 | + | |
219 | 222 | | |
220 | 223 | | |
221 | 224 | | |
222 | 225 | | |
223 | | - | |
224 | | - | |
225 | | - | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
226 | 235 | | |
227 | 236 | | |
228 | 237 | | |
| |||
259 | 268 | | |
260 | 269 | | |
261 | 270 | | |
| 271 | + | |
262 | 272 | | |
263 | 273 | | |
264 | 274 | | |
265 | 275 | | |
| 276 | + | |
266 | 277 | | |
267 | 278 | | |
268 | 279 | | |
269 | 280 | | |
270 | | - | |
271 | | - | |
272 | | - | |
| 281 | + | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
273 | 290 | | |
274 | 291 | | |
275 | 292 | | |
| |||
601 | 618 | | |
602 | 619 | | |
603 | 620 | | |
| 621 | + | |
604 | 622 | | |
605 | 623 | | |
606 | 624 | | |
| |||
1297 | 1315 | | |
1298 | 1316 | | |
1299 | 1317 | | |
| 1318 | + | |
1300 | 1319 | | |
1301 | 1320 | | |
1302 | 1321 | | |
| |||
1893 | 1912 | | |
1894 | 1913 | | |
1895 | 1914 | | |
| 1915 | + | |
| 1916 | + | |
| 1917 | + | |
| 1918 | + | |
1896 | 1919 | | |
1897 | 1920 | | |
1898 | 1921 | | |
| |||
2122 | 2145 | | |
2123 | 2146 | | |
2124 | 2147 | | |
2125 | | - | |
| 2148 | + | |
2126 | 2149 | | |
2127 | 2150 | | |
2128 | 2151 | | |
| |||
2282 | 2305 | | |
2283 | 2306 | | |
2284 | 2307 | | |
2285 | | - | |
| 2308 | + | |
2286 | 2309 | | |
2287 | 2310 | | |
2288 | 2311 | | |
| |||
2368 | 2391 | | |
2369 | 2392 | | |
2370 | 2393 | | |
2371 | | - | |
| 2394 | + | |
2372 | 2395 | | |
2373 | 2396 | | |
2374 | 2397 | | |
| |||
2755 | 2778 | | |
2756 | 2779 | | |
2757 | 2780 | | |
2758 | | - | |
| 2781 | + | |
2759 | 2782 | | |
2760 | 2783 | | |
2761 | 2784 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
25 | 47 | | |
26 | 48 | | |
27 | 49 | | |
| |||
42 | 64 | | |
43 | 65 | | |
44 | 66 | | |
45 | | - | |
46 | | - | |
| 67 | + | |
| 68 | + | |
47 | 69 | | |
48 | 70 | | |
49 | 71 | | |
| |||
68 | 90 | | |
69 | 91 | | |
70 | 92 | | |
71 | | - | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
72 | 96 | | |
73 | 97 | | |
74 | 98 | | |
| |||
78 | 102 | | |
79 | 103 | | |
80 | 104 | | |
81 | | - | |
82 | | - | |
| 105 | + | |
| 106 | + | |
83 | 107 | | |
84 | 108 | | |
85 | 109 | | |
| |||
104 | 128 | | |
105 | 129 | | |
106 | 130 | | |
| 131 | + | |
107 | 132 | | |
108 | 133 | | |
109 | 134 | | |
| |||
118 | 143 | | |
119 | 144 | | |
120 | 145 | | |
| 146 | + | |
121 | 147 | | |
122 | 148 | | |
123 | 149 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
| 111 | + | |
| 112 | + | |
111 | 113 | | |
112 | 114 | | |
113 | 115 | | |
| |||
330 | 332 | | |
331 | 333 | | |
332 | 334 | | |
| 335 | + | |
333 | 336 | | |
334 | 337 | | |
335 | 338 | | |
| |||
513 | 516 | | |
514 | 517 | | |
515 | 518 | | |
| 519 | + | |
516 | 520 | | |
517 | 521 | | |
518 | 522 | | |
| |||
528 | 532 | | |
529 | 533 | | |
530 | 534 | | |
531 | | - | |
| 535 | + | |
| 536 | + | |
532 | 537 | | |
| 538 | + | |
533 | 539 | | |
534 | 540 | | |
535 | | - | |
536 | | - | |
537 | | - | |
| 541 | + | |
| 542 | + | |
| 543 | + | |
| 544 | + | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
538 | 548 | | |
539 | 549 | | |
540 | 550 | | |
| |||
564 | 574 | | |
565 | 575 | | |
566 | 576 | | |
| 577 | + | |
567 | 578 | | |
568 | 579 | | |
569 | 580 | | |
| |||
579 | 590 | | |
580 | 591 | | |
581 | 592 | | |
582 | | - | |
| 593 | + | |
| 594 | + | |
583 | 595 | | |
| 596 | + | |
584 | 597 | | |
585 | 598 | | |
586 | | - | |
587 | | - | |
| 599 | + | |
| 600 | + | |
| 601 | + | |
| 602 | + | |
| 603 | + | |
| 604 | + | |
| 605 | + | |
588 | 606 | | |
589 | 607 | | |
590 | 608 | | |
| |||
762 | 780 | | |
763 | 781 | | |
764 | 782 | | |
765 | | - | |
766 | 783 | | |
767 | 784 | | |
768 | 785 | | |
| |||
850 | 867 | | |
851 | 868 | | |
852 | 869 | | |
| 870 | + | |
| 871 | + | |
853 | 872 | | |
854 | 873 | | |
855 | 874 | | |
| 875 | + | |
| 876 | + | |
| 877 | + | |
| 878 | + | |
| 879 | + | |
| 880 | + | |
| 881 | + | |
| 882 | + | |
| 883 | + | |
| 884 | + | |
| 885 | + | |
| 886 | + | |
| 887 | + | |
| 888 | + | |
| 889 | + | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
856 | 899 | | |
857 | 900 | | |
858 | 901 | | |
| |||
923 | 966 | | |
924 | 967 | | |
925 | 968 | | |
926 | | - | |
| 969 | + | |
| 970 | + | |
| 971 | + | |
| 972 | + | |
| 973 | + | |
| 974 | + | |
| 975 | + | |
| 976 | + | |
| 977 | + | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
| 982 | + | |
927 | 983 | | |
928 | 984 | | |
929 | 985 | | |
| |||
0 commit comments