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

[breaking change] Null safety changes #40686

Closed
mit-mit opened this issue Feb 19, 2020 · 5 comments
Closed

[breaking change] Null safety changes #40686

mit-mit opened this issue Feb 19, 2020 · 5 comments
Assignees
Labels
area-meta breaking-change-request NNBD
Milestone

Comments

@mit-mit
Copy link
Member

@mit-mit mit-mit commented Feb 19, 2020

This is a meta-issue summarizing breaking changes made as part of realizing the null safety feature.

We are planning on landing these breaking changes fairly soon, and this in advance of the full null safety feature to ensure that we have sufficient time to uncover any unanticipated consequences.

Language

  • type system
    • #40633: Types objects will now be normalized
    • #40633: Subtyping of type bounds in function types will switch from using structural subtyping to use mutual subtyping.
    • #40675: Type inference for local variables will not use promoted type variables.

Core libraries

  • dart:core

    • #40674: The RuneIterator class has some members which return null in the state where the iterator has no "current" element; they will now return -1 or an empty string
    • #40678: The String.fromEnvironment and int.fromEnvironment const constructors will have a non-null defaultValue default value.
    • #40317: We will make the platform TypeError class not extend/implement the AssertionError class.
      That will also make it not inherit the message getter.
  • dart:async:

    • #40681: The runZoned method will now not catch synchronously thrown errors even when given an error handler.
    • #40676: The StreamSubscription.cancel method's return type is changed to Future<void>.
    • #40683: We disallow throwing nullable values entirely, and methods which accept thrown objects requires non-null arguments. This includes methods accepting async errors.
    • #40130: We will replace a null stack trace supplied by users with a default stack trace.
  • dart:io:

    • #40483: Detached processes now throws StateError on meaningless getters
    • #40702: Destroyed/Upgraded Sockets now throw when accessing socket options
    • #40706: Provide epoch timestamps in the FileStat notFound object
    • #40709: HeaderValue parses invalid parameters as empty string instead of null
@mit-mit mit-mit added area-meta breaking-change-request NNBD labels Feb 19, 2020
@franklinyow
Copy link
Contributor

@franklinyow franklinyow commented Feb 21, 2020

@jesserwright
Copy link

@jesserwright jesserwright commented Feb 21, 2020

Announced : https://groups.google.com/a/dartlang.org/g/announce/c/JwPWiC0jTiU

This link is broken (404).

@franklinyow
Copy link
Contributor

@franklinyow franklinyow commented Feb 21, 2020

Ok, let's try this:

https://groups.google.com/a/dartlang.org/d/msg/announce/JwPWiC0jTiU/diljrydDCQAJ

@franklinyow franklinyow added this to the D28 Release milestone Feb 24, 2020
@franklinyow
Copy link
Contributor

@franklinyow franklinyow commented Mar 25, 2020

All issues landed

@mit-mit
Copy link
Member Author

@mit-mit mit-mit commented Mar 26, 2020

@franklinyow looks like some of these might be missing from https://github.com/dart-lang/sdk/blob/master/CHANGELOG.md?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-meta breaking-change-request NNBD
Projects
None yet
Development

No branches or pull requests

3 participants