Now that the sound null safety mode is a compile time flag
instead of a runtime flag there is no need to set the value in
the bootstrapping code before running main(). The sound and weak
versions of the sdk now have it already set.
Add compileTimeFlag() method that will inline the constant value
directly into the generated output.
Change-Id: I5b9243c47cffc421067ac820ef49342b9d0efff9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154100
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
The bootstrapping was still loading the wrong version of the sdk and
pre-compiled packages when running tests for DDC.
Update constant_null_safety_mode_test to test a constant that is
defined within the sdk itself in addition to one defined in the test.
Change-Id: I8938ed92d866cfca0ce42567f03bed5f3dd9f10c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154121
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
The bug was reported on https://github.com/Dart-Code/Dart-Code/issues/2629.
The fix is not ideal, but the best I know how to do quickly. I think
that a better fix would be to not have a `DartChangeBuilder` and to have
`ChangeBuilder` be able to build file builders for both Dart and non-Dart
files. The reason I haven't done that yet is that I want to spend some
time thinking about the best API for that change.
Change-Id: Idbc55e347f724cd1102b6032c2f7239cd9ee7fc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154240
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
The future non-basic version is to include the following:
* adding missing annotations on nodes
* adding URIs and file offsets to the nodes
* adding nullability markers to types
* stylistic changes
* optimizations
* better surface syntax
* better error messages
Change-Id: If2fc51e4932d9043dd1719b766bd23ff4e0fc1ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154001
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
This doesn't significantly improve the overall scores, but it does cause
the element kind to be used for available declarations, which means that
constructors are suggested before classes.
Change-Id: I75e7bb13bd867b9209a43c4d737c5079c42eb25a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154080
Reviewed-by: Jaime Wren <jwren@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
I thought that this landed over a month ago. This needs to be rolled into the Dart SDK 2.9
New output from dart format --help:
Idiomatically formats Dart source code.
Usage: dart format [options...] <files or directories...>
-h, --help Print this usage information.
Common options:
-o, --output Where formatted output should be written.
[json] Print code and selection as JSON
[none] Discard.
[show] Print code to terminal.
[write] (default) Overwrite formatted files on disc.
--show Which filenames to print.
[all] All visited files and directories.
[changed] (default) Only the names of files whose formatting is changed.
[none] No file names or directories.
--summary Summary shown after formatting completes.
[line] (default) Single line summary.
[none] No summary.
[profile] Tracks how long it took for format each file.
Non-whitespace fixes (off by default):
--fix Apply all style fixes.
--fix-doc-comments Use triple slash for documentation comments.
--fix-function-typedefs Use new syntax for function type typedefs.
--fix-named-default-separator Use "=" as the separator before named parameter default values.
--fix-optional-const Remove "const" keyword inside constant context.
--fix-optional-new Remove "new" keyword.
--fix-single-cascade-statements Remove unnecessary single cascades from expression statements.
Other options:
-l, --line-length Wrap lines longer than this.
(defaults to "80")
-i, --indent Spaces of leading indentation.
(defaults to "0")
--set-exit-if-changed Return exit code 1 if there are any formatting changes.
--follow-links Follow links to files and directories.
If unset, links will be ignored.
--version Show version information.
Options when formatting from stdin:
--selection Selection to preserve formatted as "start:length".
--stdin-name The path name to show when an error occurs.
(defaults to "stdin")
Run "dart help" to see global options.
Change-Id: I18a49abd919672e988296f83c23636b14c29bdeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153900
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Jaime Wren <jwren@google.com>
The emitter creates classes in bulk, and then later connects them together
except for adding stubs for JS-interop is checks. We assumed the class for
JavaScriptObject was previously created and stored stubs eagerly while creating
classes.
We believe this caused a crash with flutter because the class was not yet
defined in that case.
One theory why this wasn't hit as much externally is that we sort classes by
location and process dart:* classes first. Flutter is the first use case where
JS-interop classes can be defined within SDK libraries.
Fixes#42612Fixes#25517
Change-Id: Icad0a9a16ec0d05481ed60f581a23c9eeb1ed5d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153943
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Supplementary changes for handling Classes done in this CL are the
following:
* handling Supertypes
* handling Constructors
* handling remaining kinds of Procedure
* serializing AsyncMarker the same way as flags
* eliminating the need to wrap flags into IntLiteral
Change-Id: Id69c6e37f093cf80206f4657b649f79c75484775
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154000
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
This is a reland of 40c79c8ed7
The build recipes now use forward slashes on Windows to pass the path to
the browser executable to test.py.
Original change's description:
> [test] Add paths to chrome and firefox to the environment when present
>
> This adds a CHROME_PATH or FIREFOX_PATH environment variable to the
> test's evnironment which contains a path to the browser's executable.
> This is only set if the --chrome or --firefox argument was passed to
> test.py.
>
> https://github.com/dart-lang/sdk/issues/42417
>
> Change-Id: I711de6ab91b8ffbbe72c7fb1530b68c4189a4b8a
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153209
> Commit-Queue: Alexander Thomas <athom@google.com>
> Reviewed-by: William Hesse <whesse@google.com>
Change-Id: Ib61b8c6424fa7bce525d76d8b94756a215d28c1e
Cq-Include-Trybots: dart/try:dart2js-strong-win-x64-chrome-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153980
Commit-Queue: Alexander Thomas <athom@google.com>
Commit-Queue: William Hesse <whesse@google.com>
Auto-Submit: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
The flags on the fields are serialized as lists of flag names,
allowing for any combination of the flags in any order. Similar
technique is used in this CL to serialize the flags on Procedures and
VariableDeclarations. This is in the contrast with the previous
approach for those nodes, when the flags were the part of the
serialized name of the node (such as "static-method" for static
Procedures or "final" for final VariableDeclarations).
Change-Id: I02eb5ac92f6273542f08f269aee8e6519d3085e9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153766
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
This CL adds round-trip serialization support for FunctionDeclarations
and the remining kinds of VariableDeclarations, completing the support
for statements. Additionally, the CL fixes a variable scope issue in
Catch clauses, namely that the exception and the stack trace variables
should be visible in the body.
Change-Id: I3843d491b85a65c4953d6fc10a59ecbde5017029
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153611
Reviewed-by: Johnni Winther <johnniwinther@google.com>
+ use the inferred return type in error reporting when no return type is
declared. This turned up in this particular case where we report an
error between the returned value and the inferred return type.
Closes#42546
Change-Id: I48da24047f2e92ca91a514dfcb43c2ba6f65ee46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153610
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Account for the size of the a generative constructor factory.
The factory evaluates all the initializers up the inheritance/mixin chain,
allocates the object, and then calls all the constructors down the
inheritance chain. All this is missed by the old code looking at the
immediate constructor body, sometimes causing extremely large
constructors to be inlined.
Change-Id: I8803b0f4b4155dec0f7878fd5527c1dd507b9c80
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153560
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>