Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions accepted/future-releases/nnbd/feature-specification.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ Status: Draft

## CHANGELOG

2020.04.08
- **CHANGE** `NNBD_TOP_MERGE` resolves all conflicting top types to `Object?`.

2020.04.07
- Clarify semantics of boolean conditional checks in strong and weak mode.

Expand Down Expand Up @@ -1136,13 +1139,13 @@ as:
- `NNBD_TOP_MERGE(Object?, Object?) = Object?`
- `NNBD_TOP_MERGE(dynamic, dynamic) = dynamic`
- `NNBD_TOP_MERGE(void, void) = void`
- `NNBD_TOP_MERGE(Object?, void) = void`
- `NNBD_TOP_MERGE(Object?, void) = Object?`
Copy link
Member

@lrhn lrhn Mar 31, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You generally use precedence, so would it be enough to write

  • NNBD_TOP_MERGE(x, y) = Object?, x, y in {void, Object?, dynamic}
    (perhaps with an "otherwise" attached, or an x != y).

Not necessary, just perhaps easier to understand.

- And the reverse
- `NNBD_TOP_MERGE(dynamic, void) = void`
- `NNBD_TOP_MERGE(dynamic, void) = Object?`
- And the reverse
- `NNBD_TOP_MERGE(Object?, dynamic) = Object?`
- And the reverse
- `NNBD_TOP_MERGE(Object*, void) = void`
- `NNBD_TOP_MERGE(Object*, void) = Object?`
- And the reverse
- `NNBD_TOP_MERGE(Object*, dynamic) = Object?`
- And the reverse
Expand Down