diff --git a/design/mvp/Binary.md b/design/mvp/Binary.md index 3a2fa83b..f491761a 100644 --- a/design/mvp/Binary.md +++ b/design/mvp/Binary.md @@ -408,11 +408,15 @@ Notes: [text format](Explainer.md#import-and-export-definitions). * The ``s of a component must all be [strongly-unique]. Separately, the ``s of a component must also all be [strongly-unique]. -* Validation requires that annotated `plainname`s only occur on `func` imports - or exports and that the first label of a `[constructor]`, `[method]` or - `[static]` matches the `plainname` of a preceding `resource` import or - export, respectively, in the same scope (component, component type or - instance type). +* Validation requires that `[constructor]`, `[method]` and `[static]` annotated + `plainname`s only occur on `func` imports or exports and that the first label + of a `[constructor]`, `[method]` or `[static]` matches the `plainname` of a + preceding `resource` import or export, respectively, in the same scope + (component, component type or instance type). +* 🏷️ Validation requires that `[implements=]` annotated `plainname`s only + occur on `instance` imports or exports. +* 🏷️ Validation requires that `interfacename`-named imports or exports are + `instance`-typed. * Validation of `[constructor]` names requires a `func` type whose result type is either `(own $R)` or `(result (own $R) E?)` where `$R` is a resource type labeled `r`. diff --git a/design/mvp/Explainer.md b/design/mvp/Explainer.md index ebf37a57..15f73091 100644 --- a/design/mvp/Explainer.md +++ b/design/mvp/Explainer.md @@ -57,6 +57,7 @@ implemented, considered stable and included in a future milestone: * 🔧: fixed-length lists * 📝: the `error-context` type * 🔗: canonical interface names +* 🏷️: `[implements]` annotations for plain-named interface imports/exports (Based on the previous [scoping and layering] proposal to the WebAssembly CG, this repo merges and supersedes the [module-linking] and [interface-types] @@ -2538,6 +2539,7 @@ plainname ::=