Require async types when lift/lower uses async#2512
Draft
alexcrichton wants to merge 1 commit intobytecodealliance:mainfrom
Draft
Require async types when lift/lower uses async#2512alexcrichton wants to merge 1 commit intobytecodealliance:mainfrom
async types when lift/lower uses async#2512alexcrichton wants to merge 1 commit intobytecodealliance:mainfrom
Conversation
This is an adjustment to the validation of component-model-async functions and types to correspond to WebAssembly/component-model#646. Specifically when using the `async` option to lift or lower a function it's now required that the component model type is additionally `async`. This means, for example, that `canon lower` of a sync-typed function cannot use the `async` ABI option. Additionally `canon lift` cannot use `async` if the destination component function type is synchronous. This notably required a number of updates throughout tests. My personal judgement on the required updates here is that everything was originally written without `async` function types since that didn't exist, then most of these weren't updated, but should have been, once `async` was added as a function type. In that sense I don't feel these are reflective of real-world breakage, but instead I think it's reflective of the history of the implementation's development.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is an adjustment to the validation of component-model-async functions and types to correspond to WebAssembly/component-model#646. Specifically when using the
asyncoption to lift or lower a function it's now required that the component model type is additionallyasync. This means, for example, thatcanon lowerof a sync-typed function cannot use theasyncABI option. Additionallycanon liftcannot useasyncif the destination component function type is synchronous.This notably required a number of updates throughout tests. My personal judgement on the required updates here is that everything was originally written without
asyncfunction types since that didn't exist, then most of these weren't updated, but should have been, onceasyncwas added as a function type. In that sense I don't feel these are reflective of real-world breakage, but instead I think it's reflective of the history of the implementation's development.