Commit Graph

79322 Commits

Author SHA1 Message Date
Martin Kustermann 1e114a88d0 [vm/concurrency] Refactor SafepointRwLock to ensure unlocking never causes safepoint transition.
The previous implementation of SafepointRwLock has an issue (discovered
by Slava, see bug) with the following code pattern:

    {
      SafepointReadRwLocker locker(...);
      return Foo(); // <-- Returns raw ptr.
    }

After the return expression has been evaluated to a raw pointer
the destructor might enter safepoint and cause GC, which leaves
the raw pointer unchanged (since it's not in a handle).

This CL refactors the implementation to ensure we don't perform any
state transition in the destructor, therefore eliminate the
possibility of GC moving the object we return.

Issue https://github.com/dart-lang/sdk/issues/44998

TEST=Relying on existing SafepointRwLock.

Change-Id: Ib7a62b36838edd4b39ad67a8c58f048aa05aa144
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185062
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-02-17 09:53:49 +00:00
Martin Kustermann 5b4349de54 [vm/concurrency] Make main hot-reload implementation independent of current isolate
Since hot-reloading will affect all isolates within a group, there
should be nothing isolate-specific inside it. We therefore add a
NoActiveIsolateScope to the main part of the reloading
implementation.

Issue https://github.com/dart-lang/sdk/issues/36097

TEST=Refactoring of existing implementation.

Change-Id: I1c8db00e6a016c77c68c2c04448de056a76d42c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184782
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-02-17 09:38:29 +00:00
ffabss c0d688e139 [docs] Fixed a typo in bigint.dart operator | documentation
Closes https://github.com/dart-lang/sdk/pull/45010
https://github.com/dart-lang/sdk/pull/45010

GitOrigin-RevId: b27d0bd0bf25a08909502e37fc86abd00bef82b9
Change-Id: Icf84e3b1ba13002d6dff992f42be55f1a808a536
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185040
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-02-17 09:15:19 +00:00
Sam Rawlins 0897b95f3c Analyzer: Support const Symbol('>>>')
Bug: https://github.com/dart-lang/sdk/issues/44908
Change-Id: I7af5587317da43f79f043dd7e92976e1011935ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185242
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-02-17 08:22:39 +00:00
Daco Harkes d763cd55fc [vm/ffi] Roll package:ffi to 1.0.0
G3 has been migrated (go/dart-ffi-1.0-g3-migration), so now we can roll
the package version which has all the deprecated methods removed.

Rolling `package:ffi` forward also means it is no longer using
`sizeOf<T>()` generically. So the problems in the CFE expect files
disappear.

Change-Id: I33c7c06c6b7b34178908b175f08f3fc0f275be41
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185141
Auto-Submit: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
Commit-Queue: Clement Skau <cskau@google.com>
2021-02-17 08:18:20 +00:00
Johnni Winther 4f65d69e5e [cfe] Handle duplicate getables and conflicting setables
Change-Id: Iea3cb2d74799f891367c27e1d5a460aa6e7ef803
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183661
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2021-02-17 07:38:01 +00:00
Filip Filmar eea10ee6f8 Revert "[vm] Replaces fuchsia.deprecatedtimezone"
This reverts commit 9474c2355d.

Reason for revert: Doesn't compile (?)

Original change's description:
> [vm] Replaces fuchsia.deprecatedtimezone
>
> (prior attempt was rolled back as it had a regression which was not
> caught by tests.  Tests are fixed now at:
> https://fuchsia-review.googlesource.com/c/fuchsia/+/409840)
>
> The FIDL library fuchsia.deprecatedtimezone is going away.  There are
> different and better ways to obtain the same functionality.  This change
> removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.
>
> Adds inspect metrics that allow whitebox testing of the runners.  Here's
> a sample `fx iquery` excerpt from a running device, showing both a dart
> and a flutter runner exposing the same OS diagnostic metrics.
>
> Adds support for asynchronous timezone updates, which was missing from
> previous versions of this commit.
>
> ```
> /hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
>   /hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
>     dst_status = 0
>     get_profile_status = 0
>     timezone_content_status = 0
>     tz_data_close_status = 0
>     tz_data_status = 0
> /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
>   /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
>     dst_status = 0
>     get_profile_status = 0
>     timezone_content_status = 0
>     tz_data_close_status = 0
>     tz_data_status = 0
> ```
>
> Under nominal operation, all of the above values should be equal to 0.
> Nonzero values indicate an error.
>
> This functionality is guarded by Fuchsia integration tests at
> //src/tests/intl.
>
>
> Tested:
>   (compile locally for Fuchsia and deploy)
>   fx test //src/tests/intl
>
> See:
>   - https://github.com/dart-lang/sdk/issues/42245
>   - https://github.com/dart-lang/sdk/issues/39650
>
> Fixes #39650
> TEST=see Tested: above
> Change-Id: Icb72ddd554c263f970e18b9cbbaab7adf43c8710
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155582
> Auto-Submit: Filip Filmar <fmil@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Commit-Queue: Martin Kustermann <kustermann@google.com>

Change-Id: Ic45c09a49796f8fb8b21cfaa8005db4b57f5eb52
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185301
Auto-Submit: Filip Filmar <fmil@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-02-17 06:50:22 +00:00
Zach Anderson 3db3d8135e [dart:io] Remove error number print from windows process spawning
The error number is already reported in the ProcessException,
and the log print might pollute the result of GetLastError().

TEST=N/A
Change-Id: Ia280d02525e688c1891bb1ff3131b1569a35083e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185203
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2021-02-17 06:03:09 +00:00
Sam Rawlins dbe2dee928 analyzer: Add tests ensuring that duplicate operator parameter errors are not raised
Change-Id: Icb9e68164d36010ea6c7b1f83356d592b2bc8416
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185204
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-02-17 05:24:40 +00:00
Filip Filmar 9474c2355d [vm] Replaces fuchsia.deprecatedtimezone
(prior attempt was rolled back as it had a regression which was not
caught by tests.  Tests are fixed now at:
https://fuchsia-review.googlesource.com/c/fuchsia/+/409840)

The FIDL library fuchsia.deprecatedtimezone is going away.  There are
different and better ways to obtain the same functionality.  This change
removes the dependency on fuchsia.deprecatedtimezone from the Dart SDK.

Adds inspect metrics that allow whitebox testing of the runners.  Here's
a sample `fx iquery` excerpt from a running device, showing both a dart
and a flutter runner exposing the same OS diagnostic metrics.

Adds support for asynchronous timezone updates, which was missing from
previous versions of this commit.

```
/hub/c/dart_jit_runner.cmx/70981/out/diagnostics:
  /hub/c/dart_jit_runner.cmx/70981/out/diagnostics#os:
    dst_status = 0
    get_profile_status = 0
    timezone_content_status = 0
    tz_data_close_status = 0
    tz_data_status = 0
/hub/c/flutter_jit_runner.cmx/29567/out/diagnostics:
  /hub/c/flutter_jit_runner.cmx/29567/out/diagnostics#os:
    dst_status = 0
    get_profile_status = 0
    timezone_content_status = 0
    tz_data_close_status = 0
    tz_data_status = 0
```

Under nominal operation, all of the above values should be equal to 0.
Nonzero values indicate an error.

This functionality is guarded by Fuchsia integration tests at
//src/tests/intl.


Tested:
  (compile locally for Fuchsia and deploy)
  fx test //src/tests/intl

See:
  - https://github.com/dart-lang/sdk/issues/42245
  - https://github.com/dart-lang/sdk/issues/39650

Fixes #39650
TEST=see Tested: above
Change-Id: Icb72ddd554c263f970e18b9cbbaab7adf43c8710
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/155582
Auto-Submit: Filip Filmar <fmil@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-02-17 04:34:10 +00:00
Sam Rawlins ff6ddd2972 Analyzer: deduplicate errors when operator defined with bad parameters
If an operator declaration has both too many parameters, and one or more
optional parameters, just report the former error.

This is better UX, and is closer aligned to what the CFE reports.

Change-Id: I1f30ab9564f4bcdc49c1f3317add6c55cca29597
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185201
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-02-16 22:39:04 +00:00
Regis Crelier 4d5f027ccb [VM/runtime] Reland: Avoid comparing unfinalized type parameters.
This is done by simplifying the code looking for a type argument vector overlap between class and super class.

This is a reland of reverted https://dart-review.googlesource.com/c/sdk/+/184202
First patchset is the reverted CL.
A check for nullability was missing.

TEST=added regression test for the reland.

Change-Id: I77de3eded631d5223e9335ee9743b95878fe5bd7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185202
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2021-02-16 22:17:00 +00:00
Danny Tuppeny a6c14e8848 [analyzer] Insert imports after annotation of first import directive in file
Fixes https://github.com/Dart-Code/Dart-Code/issues/3104.

Change-Id: Ic91727c11cda1436662a52b737094ea87927047c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185220
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-16 21:32:50 +00:00
pq 4302f058dd disable legacy fix-all fix creation
Tests to be re-enabled when we wire-up `FixInFileProcessor`.  (Or maybe we want a different approach to testing fix all fixes entirely?  TBD.)

See: https://github.com/dart-lang/sdk/issues/45026

Change-Id: I66f83d06801a71143dcc770cc38d9e2f86782264
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185180
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-16 20:50:20 +00:00
Nicholas Shahan 16ca849c65 [ddc] Don't let null sources invalidate the dart size
Null sources appear to come from files that contain only external
declarations. These sources can simply be ignored in the summation
of the sizes of dart files that make up a module.

Change-Id: I38864c7f4a3e208b19e26d5a887445fdf4622479
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184901
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2021-02-16 18:57:09 +00:00
Danny Tuppeny c8c49c7cc8 [analyzer] Handle creating new files from code actions
Fixes https://github.com/Dart-Code/Dart-Code/issues/3141.

Change-Id: I44d7f20962512988ff1d54c7b38b6a144f973a58
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-16 18:54:39 +00:00
Ryan Macnak dd83f15826 [vm] Account for compressed pointers in pointer visitors.
TEST=ci
Change-Id: I033bb30e86dfc66ddeb7316a625e3f8925528a19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183784
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2021-02-16 18:27:39 +00:00
Paul Berry 4b4cc13ff5 Flow analysis: clarifying comments for "why not promoted" logic.
These comments address code review comments from
https://dart-review.googlesource.com/c/sdk/+/181741.

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: I93d35600048318c20e6c41b290b6736d0086a574
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184980
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-02-16 17:06:46 +00:00
Johnni Winther 02f0f53ddf [cfe] Don't block nnbd top merge on typedef types
The MergeVisitor was trying to merge FunctionType.typedefType in order
to merge function types, thus preventing nnbd top merge of two
compatible types that were just introduced through different typedefs
or function type syntax.

Change-Id: Icea75598168c86ed33314db22ebeec3e666c3675
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184785
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2021-02-16 11:30:21 +00:00
Johnni Winther 78db953aa3 [kernel] Don't use increasing .length = in class_hierarchy.dart
Closes #45013

Change-Id: I1b51818f447faea50fdc34ed7504cba02d65bc34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184789
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-02-16 10:15:11 +00:00
Jens Johansen 2d064faf74 [CFE] Incremental compiler guards against multiple simultaneous calls to computeDelta
package:vm "clones" an old incremental compiler when creating a new one
for a new isolate. It does that by calling .computeDelta on the first
available compiler. If that compiler is already compiling, though, things
can go bad.

The risk of that happening was made bigger by awaiting in the standard
filesystem instead of using the sync filesystem operations, but it can
happen either way.

If it has any practial importance (outside of tests) is an open quesiton
but this should nevertheless fix the issue by only letting the
incremental compiler allow one compile at the time (creating an implicit
queue when more is tried).

TEST=Existing test suites + added test.

Change-Id: I694e360aa4bce604db41908730c66ef3b96e6d8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184788
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2021-02-16 08:32:56 +00:00
Johnni Winther 0578c66a98 [kernel] Remove TreeNode.remove
+ restrict replaceWith and replaceChild to only support replacement and
not removal.

TEST=existing

Change-Id: I5381b4907725dd0ea7cf544e133bdb296df48ee0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184469
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-02-16 08:18:51 +00:00
Brian Wilkerson 77da201b19 Add a fix for unnecessary_nullable_for_final_variable_declarations
Change-Id: Ibd6570c05f3a289fba72c42f3fc30e88649a9004
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185000
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-15 16:26:39 +00:00
Jens Johansen 4216dc8d12 [CFE] Attempt at 'benchmarking' intrumenter
Ultimatley this proved not very useful (for me at this time at least).
As it might be useful in the future, though, I'll land it here.

Change-Id: I7e6c7ad878d290763d2b2c0f3c372bf7f6521ea1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184422
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-02-15 10:14:40 +00:00
Dmitry Stefantsov b994d51d98 [cfe] Disallow super-bounded aliased constructor invocations
This CL also threads through the inferredness of type arguments for
the factories, so that the error that is checked twice isn't reported
twice because the arguments are recognized as inferred in one place
and as explicit in the other.

Closes #42446.

Bug: https://github.com/dart-lang/sdk/issues/42446
Change-Id: I8cc158b6d8070d34c1489386962fa1f5e2592719
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184270
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2021-02-15 09:51:27 +00:00
Srujan Gaddam 774b80f2d3 [pkg:test_runner] Replace space from test config name
https://dart-review.googlesource.com/c/sdk/+/181404 disallows spaces
in Configurations.

Change-Id: I0582eca064bd6d88ebcbbf411e44a6147895148c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184902
Auto-Submit: Srujan Gaddam <srujzs@google.com>
Commit-Queue: William Hesse <whesse@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2021-02-13 21:35:39 +00:00
Paul Berry c2eb847697 Add "why not promoted" support for method invocations to CFE.
This required moving the logic for computing the context messages from
the inference visitor to the type inferrer.

This includes support for extension method invocations and invocation
of `.call` on a function type.

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: Icda160f69cc815953c43edc92be910c5f49f9401
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184842
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-02-13 15:39:17 +00:00
Paul Berry e0fd546dc3 Improve "why not promoted" context message for the case of writes.
The new message phrasing should flow better, especially in the analyzer CLI.

For the motivation for this change, please see
https://github.com/dart-lang/sdk/issues/44904#issuecomment-776286501

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: I595492c64b42aff25cae5a8936c32aa8a218edd8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184601
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-02-13 15:21:06 +00:00
Sam Rawlins e05ad3ae9d Migrate NonErrorResolverTest to null safety
In order to do this, I split the test into two:

* many test cases were concerned with type promotion
  which only seemed to pertain to pre-null safe code.
* some code could not be made valid in both null safe
  and pre-null safe environments.

Bug: https://github.com/dart-lang/sdk/issues/44666
Change-Id: I818a39f2e3eb3cae17de18b008d9e4c7b8ff84c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184844
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-02-13 03:40:48 +00:00
Brian Wilkerson e6b5d2c7c0 Add the fix data file to analyzableFilePatterns
Devon noticed the other day that this was missing. I was curious so I
commented out all of the non-Dart file patterns and ran the tests. There
were no failures. There were failures when I also commented out the
file pattern for Dart files, so that much is being used. My guess is
that it would be better to remove the seemingly unused patterns, but
then I have to ask whether we shouldn't just remove this field and
replace uses by a check that the name ends in '.dart'. Let me know what
you think.

Change-Id: Icda44a6fa532989f86cdb52acb3bd0f7a5b28e20
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184900
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-13 00:40:29 +00:00
Keerti Parthasarathy 5a97dc8fc2 Add lineinfo to CiderErrorFixes
Change-Id: Ic2b82c27a98794a456a43a129ccfc9bd1fc0c07a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184841
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2021-02-13 00:04:11 +00:00
Ben Konyi 7315480f5d [ VM ] Skip get_allocation_traces_test on AppJIT, SIMARM, and AOT
AOT lacks debugger() support and AppJIT/SIMARM allocation traces don't
exactly match those listed in the test.

Follow up to https://dart-review.googlesource.com/c/sdk/+/182666

TEST=N/A

Change-Id: I74a4d124c5e2ec10e28521b46f553eae87fea540
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184845
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2021-02-12 23:52:00 +00:00
Sam Rawlins 33910fe2b8 Analyzer: Add wrong-number-of-params error for triple-shift
Also, add more triple-shift tests.

Fixes https://github.com/dart-lang/sdk/issues/42353

Change-Id: Ic14c6fe4f24d955fbdfd1875b21b1881251bd859
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184700
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-12 22:48:40 +00:00
Paul Berry 957c0a1c9d Improve "why not promoted" info for field/property reference.
When reporting that a null check is needed due to a lack of type
promotion, and the thing that was not promoted was a reference to a
field or property, the CFE and analyzer now report "why not promoted"
using a context message that points to the definition of the field or
getter.  (Previously the CFE reported a context message with no
location, and the analyzer didn't report "why not promoted").

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: If1841727b8b60dd87c43f239e6a06b98f363801f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184522
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-02-12 22:43:55 +00:00
Nicholas Shahan 8eda75fc1a [ddc] Allow dynamic, Null, and void in assert
This assertion fails when compiling the SDK because the types
dynamic, Null, and void all have `Nullability.nullable`.

They are safe to allow through unchanged because each has their own
visitor that avoids the nullability wrapper at runtime.

Change-Id: I0ce345ce11dddb345eab3708804cbde6a540fdd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184880
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2021-02-12 22:32:29 +00:00
Sam Rawlins 89f563c4d3 analyzer: add triple-shift experiment to all tests
Change-Id: I560f82b239d78b748f6e2298a291d71cd2c831a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184840
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-12 21:17:54 +00:00
Ben Konyi 3e83400e0f [ VM / Service ] Added getAllocationTraces and setTraceClassAllocation RPCs and identity hash support
This change adds two new RPCs and various new properties:
  - getAllocationTraces
  - setTraceClassAllocation
  - classId and identityHashCode properties in CpuSample
  - traceAllocations property in Class

TEST=get_allocation_traces_test.dart

package:vm_service has been regenerated for 3.43 of the service protocol
and is ready for a 6.1.0 release.
Change-Id: Ia8ed055423798d7d17fe9f5fd74efb4239b875fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182666
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2021-02-12 21:15:35 +00:00
Brian Wilkerson bf8b510a8b Use the type of literal keywords for relevance
This has little negative impact on the completion metrics and some
positive impact in several places. The impact is fairly small overall,
but still worth having in my opinion. The biggest improvement is at the
beginning of a statement. The overall changes in relevance and relevance
by element kind (lower is better) are:

                            shipping  |  keyword type    delta
all completions                4.013  |         3.930   -0.083
successful completions         3.995  |         3.912   -0.083

class                         28.359  |        28.325   -0.034
constructor                    4.739  |         4.739    0.000
enum                          12.928  |        12.928    0.000
instance member                3.273  |         3.153   -0.120
keyword dynamic              136.713  |       136.223   -0.490
keyword void                 239.200  |       227.453  -11.747
local function               161.336  |       161.340    0.004
local variable                 1.632  |         1.616   -0.015
parameter                      4.406  |         4.383   -0.023
prefix                       363.871  |       368.868    4.997
static member                  6.012  |         5.984   -0.028
top level member              12.443  |        12.443    0.000
type parameter               252.785  |       254.135    1.350

Change-Id: Ia449feb716bfd6150f0204885e05fc0e812f1448
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184861
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-12 20:56:01 +00:00
Martin Kustermann 2439c412f0 [vm/concurrency] Make main Kernel loading independent of current isolate
Since loading kernel will affect all isolates within a group, there
should be nothing isolate-specific inside the kernel loader. To ensure
we don't have (or introduce) any accidental uses, we add a
NoActiveIsolateScope to the main parts of kernel loading.

Only loading of native extensions - done by the kernel loader -
currently requires an active isolate. The reason for this is that
loading native extensions happen by calling out to embedder, which calls
back into the VM using the our embedding API (which currently requires
an active isolate)

Issue https://github.com/dart-lang/sdk/issues/36097

TEST=Refactoring of existing implementation.

Change-Id: I96e64dbfe7148b76b8fa006fe5dbde8c1f904504
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184269
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2021-02-12 19:45:05 +00:00
Konstantin Shcheglov 51950ab881 Add Resource.parent2 that returns non-null Folder, add Folder.isRoot
A bigger version of than https://dart-review.googlesource.com/c/sdk/+/184381
This is breaking change, so we do this in steps.

Change-Id: I0c7212a073b605ade56657036543c604651810c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184581
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-12 19:09:20 +00:00
Nate Bosch 85ef96ac6b Update to the latest package:matcher
Change-Id: I7db1da41fb0aa8f402bae67a995e553b2c35393d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183762
Auto-Submit: Nate Bosch <nbosch@google.com>
Reviewed-by: Gary Roumanis <grouma@google.com>
2021-02-12 18:59:51 +00:00
William Hesse 88b6c207e7 [dartdev] Fix analytics test on Windows
The default Process.runSync doesn't expect utf-8 on stdout on Windows.

Fixes: https://github.com/dart-lang/sdk/issues/44981
Change-Id: If80fcaa9ce54fdd64c2c8f40779c646f1c37fdea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184468
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2021-02-12 18:37:52 +00:00
Konstantin Shcheglov 5ba061c4e1 Un-experiment null safety APIs.
Change-Id: Ib1d0502458625e5569b057140b9a066cc9c0f0b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184642
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-12 18:23:12 +00:00
Konstantin Shcheglov 0a04e2ec0f Either2, update Glob to it.
Change-Id: Iae85869339b0c7a35950408c74be08d52b6b5a4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184622
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-02-12 18:02:05 +00:00
Sam Rawlins 337bba0ee9 Analyzer: add triple-shift constant test
Bug: https://github.com/dart-lang/sdk/issues/44908
Change-Id: If510a9aa36fa028e8f91d3cc9dd161282d2db383
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184701
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-02-12 17:45:36 +00:00
Konstantin Shcheglov f6a6e57689 Issue 44223. Improve diagnostics for type arguments violating type parameter bounds.
Bug: https://github.com/dart-lang/sdk/issues/44223
Change-Id: Ia3ffddbc7d2a1be8455f642c5799d21051eefb1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184524
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-02-12 17:37:53 +00:00
Sam Rawlins 896d72a841 Analyzer: introduce more non-function typedef test cases
Bug: https://github.com/dart-lang/sdk/issues/44078
Change-Id: I9b4f299c61034301b5a9c403f128a614384236ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184680
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-02-12 17:37:33 +00:00
Konstantin Shcheglov 875af7c991 Deprecated TypeProvider.futureType2/listType2/etc
Change-Id: Ia994be1e29b4d96b89d714beafcb9256a0cb4de6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184641
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-02-12 17:26:07 +00:00
Lasse R.H. Nielsen d352bc28b8 Remove (most) uses of the "non-nullable" experiment flag.
Since the flag is now enabled by default, there should be no mention of it.
There are still some uses in front_end/testcases that are not just removable
(it also uses `no-non-nullable`). There migth be more uses that are not
as easily found as grepping for `--enable-experiment

Removes two VM tests where fixing them meant they were just duplicating
the corresponding non *_2/ tests.
Fixes #44941

TEST= Large number of tests chaged.=(no-)?non-nullable`.

Change-Id: Ief755981ccde9a5482fcdf408c2929c74433a710
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183688
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2021-02-12 17:16:54 +00:00
pq 2d27b34b06 appliedTogetherMessages for fixable in file fixes
Change-Id: I674f0e79c5d7ce5c44bcbddff8e6866106e860c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184621
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2021-02-12 17:10:23 +00:00