Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enhance the definition of "derives a future type" #3574

Merged
merged 24 commits into from
Feb 28, 2024

Conversation

eernstg
Copy link
Member

@eernstg eernstg commented Jan 18, 2024

See dart-lang/sdk#54628 for some background information.

This PR changes the definition of 'derives a future type' (which is used to define flatten) such that it includes some additional cases (in particular, it will recursively handle ? on types, which was not the case previously).

specification/dartLangSpec.tex Outdated Show resolved Hide resolved
specification/dartLangSpec.tex Outdated Show resolved Hide resolved
specification/dartLangSpec.tex Show resolved Hide resolved
@eernstg
Copy link
Member Author

eernstg commented Jan 30, 2024

Finally got around to this one again. @lrhn, you may wish to take another look because I made some significant changes.

@eernstg
Copy link
Member Author

eernstg commented Feb 1, 2024

NB: LGTM'd or not, this PR will not land before we've had the next language team meeting. We may need to treat it as a breaking change.

@eernstg eernstg merged commit 3c84691 into main Feb 28, 2024
3 of 4 checks passed
@eernstg eernstg deleted the specify_derives_future_type_jan24 branch February 28, 2024 17:32
copybara-service bot pushed a commit to dart-lang/sdk that referenced this pull request Feb 28, 2024
Issue #54628 raised the issue
that the static analysis of `await e` behaves in unexpected ways when
the static type of `e` is a subtype of a future related type, rather
than just a plain `Future<T>` or `FutureOr<T>` for some `T`.

This CL adds a test that assumes the update to the language
specification which is performed by the PR
dart-lang/language#3574. Hence, this CL
should ONLY BE LANDED if and when that PR is landed.

Change-Id: Ib8acb77e24ffbceb0b4034d3b23a0f4fef8e3d1c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/354020
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants