Change the default assumption for named parameters to "assume nullable".

If a named parameter has no default value, the default behavior is now
to assume that the parameter is meant to be nullable, even if no code
path can be found that passes null.

This was inspired by discussion with Matan and Ferhat--they were
concerned that users would see the migration tool changing parameters
to required that shouldn't actually be required, and react by adding
special sentinel default values.  This is not what we want to
encourage users to do; if the parameter is truly meant to be optional,
it is sensible for it to be nullable.

I will soon add logic that allows non-null intent to override this
behavior; this means that if the user asserts that the parameter is
non-null, or uses the parameter in such a way that a null value would
guaranteed to cause an exception, we'll take that as an indication
that they really mean for it to be required.

Change-Id: Iff388d0316b922d2bacae330d94bec65478d8ee0
Reviewed-on: https://dart-review.googlesource.com/c/93366
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
1 file changed
tree: 4de6af47099b6d2f06ecd82c606d6a9a4d015cba
  1. .github/
  2. build/
  3. client/
  4. docs/
  5. pkg/
  6. runtime/
  7. samples/
  8. samples-dev/
  9. sdk/
  10. tests/
  11. third_party/
  12. tools/
  13. utils/
  14. .clang-format
  15. .gitattributes
  16. .gitconfig
  17. .gitignore
  18. .gn
  19. .mailmap
  20. .packages
  21. .vpython
  22. AUTHORS
  23. BUILD.gn
  24. CHANGELOG.md
  25. codereview.settings
  26. CONTRIBUTING.md
  27. DEPS
  28. LICENSE
  29. PATENTS
  30. PRESUBMIT.py
  31. README.dart-sdk
  32. README.md
  33. WATCHLISTS
README.md

Dart

Dart is an open-source, scalable programming language, with robust libraries and runtimes, for building web, server, and mobile apps.

Using Dart

Visit the dartlang.org to learn more about the language, tools, getting started, and more.

Browse pub.dartlang.org for more packages and libraries contributed by the community and the Dart team.

Building Dart

If you want to build Dart yourself, here is a guide to getting the source, preparing your machine to build the SDK, and building.

There are more documents on our wiki.

Contributing to Dart

The easiest way to contribute to Dart is to file issues.

You can also contribute patches, as described in Contributing.

License & patents

See LICENSE and PATENTS.