Skip to content

Commit 116cd50

Browse files
committed
Fix exportdecl validation rule and sync with export
1 parent 62a94bb commit 116cd50

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

design/mvp/Binary.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -260,8 +260,8 @@ Notes:
260260
* Validation rejects `resourcetype` type definitions inside `componenttype` and
261261
`instancettype`. Thus, handle types inside a `componenttype` can only refer
262262
to resource types that are imported or exported.
263-
* Validation requires all types used in the type of an export are introduced
264-
by an `exportdecl` (not an `importdecl`).
263+
* Validation requires that all resource types transitively used in the type of an
264+
export are introduced by a preceding `exportdecl`.
265265
* The uniqueness validation rules for `externname` described below are also
266266
applied at the instance- and component-type level.
267267
* Validation of `externdesc` requires the various `typeidx` type constructors
@@ -334,8 +334,8 @@ URL ::= b*:vec(byte) => char(b)*, if char(b)* parses a
334334
Notes:
335335
* All exports (of all `sort`s) introduce a new index that aliases the exported
336336
definition and can be used by all subsequent definitions just like an alias.
337-
* Validation requires that any handle type that is part of the type of any
338-
export must refer to a resource type whose index was produced by an `export`.
337+
* Validation requires that all resource types transitively used in the type of an
338+
export are introduced by a preceding `exportdecl`.
339339
* The "parses as a URL" condition is defined by executing the [basic URL
340340
parser] with `char(b)*` as *input*, no optional parameters and non-fatal
341341
validation errors (which coincides with definition of `URL` in JS and `rust-url`).

0 commit comments

Comments
 (0)