|
188 | 188 | ;; equality constraints also work |
189 | 189 | (component |
190 | 190 | (import "host" (instance |
191 | | - (export $r1 "resource1" (type (sub resource))) |
| 191 | + (export "resource1" (type $r1 (sub resource))) |
192 | 192 | (export "resource2" (type (sub resource))) |
193 | 193 | (export "resource1-again" (type (eq $r1))) |
194 | 194 | )) |
|
199 | 199 | (component |
200 | 200 | (import "host" (instance |
201 | 201 | (export "resource1" (type (sub resource))) |
202 | | - (export $r1 "resource2" (type (sub resource))) |
| 202 | + (export "resource2" (type $r1 (sub resource))) |
203 | 203 | (export "resource1-again" (type (eq $r1))) |
204 | 204 | )) |
205 | 205 | ) |
|
208 | 208 | ;; equality constraints mean that types don't need to be supplied |
209 | 209 | (component |
210 | 210 | (import "host" (instance |
211 | | - (export $r1 "resource1" (type (sub resource))) |
| 211 | + (export "resource1" (type $r1 (sub resource))) |
212 | 212 | (export "resource2" (type (sub resource))) |
213 | 213 | (export "this-name-is-not-provided-in-the-wast-harness" (type (eq $r1))) |
214 | 214 | )) |
|
217 | 217 | ;; simple properties of handles |
218 | 218 | (component |
219 | 219 | (import "host" (instance $host |
220 | | - (export $r "resource1" (type (sub resource))) |
| 220 | + (export "resource1" (type $r (sub resource))) |
221 | 221 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
222 | 222 | (export "[static]resource1.assert" (func (param "r" (own $r)) (param "rep" u32))) |
223 | 223 | )) |
|
268 | 268 | ;; Using an index that has never been valid is a trap |
269 | 269 | (component |
270 | 270 | (import "host" (instance $host |
271 | | - (export $r "resource1" (type (sub resource))) |
| 271 | + (export "resource1" (type $r (sub resource))) |
272 | 272 | (export "[static]resource1.assert" (func (param "r" (own $r)) (param "rep" u32))) |
273 | 273 | )) |
274 | 274 | (alias export $host "resource1" (type $r)) |
|
296 | 296 | ;; Using an index which was previously valid but no longer valid is also a trap. |
297 | 297 | (component |
298 | 298 | (import "host" (instance $host |
299 | | - (export $r "resource1" (type (sub resource))) |
| 299 | + (export "resource1" (type $r (sub resource))) |
300 | 300 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
301 | 301 | (export "[static]resource1.assert" (func (param "r" (own $r)) (param "rep" u32))) |
302 | 302 | )) |
|
338 | 338 | ;; Also invalid to pass a previously valid handle to the drop intrinsic |
339 | 339 | (component |
340 | 340 | (import "host" (instance $host |
341 | | - (export $r "resource1" (type (sub resource))) |
| 341 | + (export "resource1" (type $r (sub resource))) |
342 | 342 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
343 | 343 | )) |
344 | 344 | (alias export $host "resource1" (type $r)) |
|
380 | 380 | ;; should not implicitly have access to that resource. |
381 | 381 | (component |
382 | 382 | (import "host" (instance $host |
383 | | - (export $r "resource1" (type (sub resource))) |
| 383 | + (export "resource1" (type $r (sub resource))) |
384 | 384 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
385 | 385 | )) |
386 | 386 |
|
387 | 387 | ;; an inner component which upon instantiation will invoke the constructor, |
388 | 388 | ;; assert that it's zero, and then forget about it. |
389 | 389 | (component $inner |
390 | 390 | (import "host" (instance $host |
391 | | - (export $r "resource1" (type (sub resource))) |
| 391 | + (export "resource1" (type $r (sub resource))) |
392 | 392 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
393 | 393 | )) |
394 | 394 | (alias export $host "[constructor]resource1" (func $ctor)) |
|
534 | 534 | ;; should not be visible in the other. |
535 | 535 | (component |
536 | 536 | (import "host" (instance $host |
537 | | - (export $r "resource1" (type (sub resource))) |
| 537 | + (export "resource1" (type $r (sub resource))) |
538 | 538 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
539 | 539 | )) |
540 | 540 | (alias export $host "resource1" (type $r)) |
|
745 | 745 | ;; Test dropping a host resource |
746 | 746 | (component |
747 | 747 | (import "host" (instance $host |
748 | | - (export $r "resource1" (type (sub resource))) |
| 748 | + (export "resource1" (type $r (sub resource))) |
749 | 749 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
750 | 750 | (export "[static]resource1.last-drop" (func (result u32))) |
751 | 751 | (export "[static]resource1.drops" (func (result u32))) |
|
809 | 809 | ;; Test some bare-bones basics of borrowed resources |
810 | 810 | (component |
811 | 811 | (import "host" (instance $host |
812 | | - (export $r "resource1" (type (sub resource))) |
| 812 | + (export "resource1" (type $r (sub resource))) |
813 | 813 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
814 | 814 | (export "[method]resource1.simple" (func (param "self" (borrow $r)) (param "rep" u32))) |
815 | 815 | (export "[method]resource1.take-borrow" (func (param "self" (borrow $r)) (param "b" (borrow $r)))) |
|
886 | 886 | ;; Cannot pass out an owned resource when it's borrowed by the same call |
887 | 887 | (component |
888 | 888 | (import "host" (instance $host |
889 | | - (export $r "resource1" (type (sub resource))) |
| 889 | + (export "resource1" (type $r (sub resource))) |
890 | 890 | (export "[constructor]resource1" (func (param "r" u32) (result (own $r)))) |
891 | 891 | (export "[method]resource1.take-own" (func (param "self" (borrow $r)) (param "b" (own $r)))) |
892 | 892 | )) |
|
927 | 927 | ;; Borrows must actually exist |
928 | 928 | (component |
929 | 929 | (import "host" (instance $host |
930 | | - (export $r "resource1" (type (sub resource))) |
| 930 | + (export "resource1" (type $r (sub resource))) |
931 | 931 | (export "[method]resource1.simple" (func (param "self" (borrow $r)) (param "b" u32))) |
932 | 932 | )) |
933 | 933 |
|
|
996 | 996 |
|
997 | 997 | (component $B |
998 | 998 | (import "a" (instance $i |
999 | | - (export $t "t" (type (sub resource))) |
| 999 | + (export "t" (type $t (sub resource))) |
1000 | 1000 | (export "[constructor]t" (func (param "x" u32) (result (own $t)))) |
1001 | 1001 | (export "[method]t.assert" (func (param "self" (borrow $t)) (param "x" u32))) |
1002 | 1002 | (export "[static]t.assert-own" (func (param "self" (own $t)) (param "x" u32))) |
|
0 commit comments