Commit Graph

79322 Commits

Author SHA1 Message Date
Keerti Parthasarathy 1668734697 Add a method to resolve a library
Change-Id: I0eba5b60bb46fa7dfbceb2b26e0d1d5ec3ae3ebf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194015
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2021-04-06 21:27:43 +00:00
Alexander Markov 707cd928af [vm/ffi] Fix representation of value for 8-bit and 16-bit FFI loads and stores
Previously, FFI store could use kUnboxedUint32 for value being stored
via 8-bit or 16-bit StoreIndexed instruction. However, such
StoreIndexed instructions require kUnboxedIntPtr representation.
Due to the mismatch in the representations, SelectRepresentations
pass inserts a speculative (deoptimizing) IntConverter instruction,
which cases crash in AOT mode. Similar problem exists for FFI loads.

This change corrects representation when unboxing value in the body
of FFI store intrinsics and when boxing the value in FFI loads,
so representation of the value matches representation required by
StoreIndexed / returned by LoadIndexed.

TEST=ffi/regress_flutter79441_test
Fixes https://github.com/flutter/flutter/issues/79441

Change-Id: Ida144e8d2e7a69d6767c9d4447bb20e79d847d48
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193824
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-04-06 21:11:23 +00:00
Konstantin Shcheglov 1bf4b0ce2f Migrate benchmark/integration/
R=brianwilkerson@google.com

Change-Id: I0dccc13831ec5aed82d33ee52ffeae1ad38c5b98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194109
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-06 21:10:33 +00:00
Kallen Tu b5d4d26abe [cfe] Const factories when const functions enabled.
Change-Id: Ifd24678c0ac191c5cc6f1d60443ab96f56cbba7d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192400
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2021-04-06 19:46:32 +00:00
Alexander Markov a38a2dd343 [vm/aot] Fix retaining of targets of FFI callbacks in precompiler
Account for the fact that a Function could be only reachable via
FfiTrampolineData in the FFI trampoline function.

TEST=ffi_2/function_callbacks_test
Fixes https://github.com/dart-lang/sdk/issues/45510

Change-Id: I2db81c7730ae48d1f1355aa236339e54562ee6c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193893
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2021-04-06 18:33:17 +00:00
Mark Zhou febf16a3be [dartdevc] Adding expression compiler e2e test sanity checks.
Adding the dartdevc_test target to the pkg-linux-debug bot config since some of its tests require that the sound SDK be built. Also failing more gracefully if the expected dill is not found.

Change-Id: I5d2004a3a13d9f73dcb51afb3c68c0b7c18e614e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194108
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Mark Zhou <markzipan@google.com>
2021-04-06 18:25:12 +00:00
Devon Carew c679047530 Upgrade the 'web-simple' project template to null safety.
Change-Id: I7b90a81a37085d613f6927529ef05e2a3915a32e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194106
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2021-04-06 16:40:17 +00:00
Konstantin Shcheglov b903d73c9b Migrate allowed status pages.
Change-Id: If81a0e66a22f9219535420041b6cd7efe1aa3341
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194103
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-04-06 16:17:17 +00:00
Jonas Finnemann Jensen 9558ac12bb Migrate InternetAddressType.ANY -> InternetAddressType.any
In documentation comment for `InternetAddress.lookup`.
This should make API docs a little bit prettier.

Change-Id: Ie969756a54e13b2efbef17a1a78fa0ffb8670dec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194063
Auto-Submit: Jonas Jensen <jonasfj@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Commit-Queue: Jonas Termansen <sortie@google.com>
2021-04-06 16:12:17 +00:00
Danny Tuppeny 65050020f5 [analyzer] Add LSP integration test for diagnostic context messages
See https://github.com/dart-lang/sdk/issues/44907.

Change-Id: I780e584a0e624aac232439d3f87cf1fb1284ef9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193800
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-06 16:08:47 +00:00
Konstantin Shcheglov b173c18796 Migrate LspPacketTransformer.
Change-Id: Ib0a84ae01b66e92a9406b559c1c8e4deb52ad3b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194102
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-06 15:46:37 +00:00
Johnni Winther f0ccceab4d Roll dart_style 2.0.1 into the SDK.
This pins to https://github.com/dart-lang/dart_style/pull/1016.

Change-Id: Ia7b297a03eff00c68bf76bbfd206cf88d800a92c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193961
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
Auto-Submit: Bob Nystrom <rnystrom@google.com>
2021-04-06 14:32:37 +00:00
Paul Berry c739b324a6 Make language tests for issue #45551
Previously, the "why not promoted" test cases sort of exercised this
bug, but in an unclear way that wasn't really related to the "why not
promoted" functionality.  Better to have a separate test for it.

Bug: https://github.com/dart-lang/sdk/issues/45551
Change-Id: Idd44596f021eb91679a019f9f56da1661363d0d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193829
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-06 13:01:47 +00:00
Paul Berry cf7587a160 Revert "Flow analysis: track property get targets."
This reverts commit bc6cdf54fd.

Reason for revert: Broke Golem benchmarks - https://golem.corp.goog/PerformanceChanges?repository=dart&revision=91561

Original change's description:
> Flow analysis: track property get targets.
>
> These targets are needed for "why not promoted" error messages, and
> it's easier to have flow analysis keep track of them than to have the
> analyzer and CFE try to reconstruct them at the time of reporting the
> error.
>
> Bug: https://github.com/dart-lang/sdk/issues/44898
> Change-Id: Ia8ef4a7ce13cc30860e59b7369e6230d233e252d
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193832
> Commit-Queue: Paul Berry <paulberry@google.com>
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>

TBR=paulberry@google.com,scheglov@google.com,johnniwinther@google.com

Change-Id: Ic2b66b1db621c0f4e4c5398acfe2ae61bd7625ca
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/44898
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194104
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-06 11:49:09 +00:00
Ivan Inozemtsev fc349bdbb5 Revert "[dart2js] Avoid premature interceptor optimizations"
This reverts commit db6f65e661.

Reason for revert: b/184605569

Original change's description:
> [dart2js] Avoid premature interceptor optimizations
>
> Add a SsaFinalizeInterceptors phase that does optimizations with the
> interceptor calling convention.
>
> This puts the the caller and callee sides of the dummy explicit
> receiver optimization in the same phase.
>
> Change-Id: I07fe0483c2658c3744b76a235edb24720d7ea60f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193140
> Commit-Queue: Stephen Adams <sra@google.com>
> Reviewed-by: Mayank Patke <fishythefish@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I0e2959f329030f12a43a9aef16cfee9b94bbf250
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194061
Reviewed-by: Ivan Inozemtsev <iinozemtsev@google.com>
Commit-Queue: Ivan Inozemtsev <iinozemtsev@google.com>
2021-04-06 08:09:07 +00:00
Alexander Thomas b7b8863859 [co19] Roll co19_2 to 3642f24e2e6273c6fb65a8f60cd0edc95153942e
2021-03-25 sgrekhov@unipro.ru 1037. A couple of tests that still use nonfunction-type-aliases removed from co19_2 repository
2021-03-24 sgrekhov@unipro.ru 1023. Change SplayTreeMap and SplayTreeSet tests according to the new behavior

Change-Id: Ia8ea48c30b05765bc03cd5a9ee8bb8ad9336e6ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193300
Reviewed-by: Erik Ernst <eernst@google.com>
2021-04-06 07:16:03 +00:00
Paul Berry bc6cdf54fd Flow analysis: track property get targets.
These targets are needed for "why not promoted" error messages, and
it's easier to have flow analysis keep track of them than to have the
analyzer and CFE try to reconstruct them at the time of reporting the
error.

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: Ia8ef4a7ce13cc30860e59b7369e6230d233e252d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193832
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-04-06 06:55:28 +00:00
Paul Berry a15e9bc3d2 Migration: disable "apply migration" button after handleAddHintLinkClick
Prevents file corruption if the user adds hints and then tries to
apply the migration result without running migration to account for
the hints.

Fixes #45571.

Bug: https://github.com/dart-lang/sdk/issues/45571
Change-Id: Id11584a1d8b7a6b35127ad828d37b3ef837a5e65
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194009
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-06 05:12:56 +00:00
Paul Berry 0291de4bcf Migration: do not attempt to modify named expressions.
When a method call includes a named argument such as:

  f(named: x)

the analyzer represents the AST node `named: x` as an Expression.  But
it's not safe for the migration tool to try to modify it in the same
way that it modifies other expressions (e.g. by surrounding it with
`(...) as Type`), because that would produce a parse error.

Improves the analyzer behavior for #45583.  Note however that this is
not a complete fix yet; see the test case included in this CL for why.

Bug: https://github.com/dart-lang/sdk/issues/45583
Change-Id: I79ffcdd22654221ff7e0784b3355ecfd2ec0f01c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194008
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-06 05:02:16 +00:00
Brian Wilkerson 4cba249477 Migrate a couple of additional libraries and some missed tests
Change-Id: I7c107b71a7b6226c8e294428a70656182353a048
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194018
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-05 23:01:26 +00:00
Ryan Macnak ee3a86d8ab [vm] Avoid data race querying the new-space page cache.
This access is extremely infrequent, so we may as well consistently use the mutex.

TEST=tsan
Bug: https://github.com/dart-lang/sdk/issues/45521
Change-Id: I17b276f671e20c2eed8bf26735cc11c386fba9e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194013
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
2021-04-05 22:48:16 +00:00
Danny Tuppeny 06729f230a [analyzer] Don't produce edits during MOVE_FILE for directives that don't change
Fixes https://github.com/dart-lang/sdk/issues/45593.

Change-Id: I4110c5a6bc4a08caff7d40cd288ae554625703e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194060
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-05 22:20:56 +00:00
Paul Berry 61747ae4d3 Update "why not promoted" language tests with analyzer expectations.
This is possible now that the test runner uses the analyzer's new JSON
output format.

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: Ib38e52e0c6a8f73074ef702b8a8b18bd9b128743
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194014
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-05 21:50:06 +00:00
Nicholas Shahan 7f009e528d [ddc] Fix private class exposed by typedef
- Ensure public fields of private classes exposed by typedef are
  properly treated as virtual.
- Add modular test that exercises the errors fixed by this change.

Change-Id: If97f66de5b0742612024a2f727d83ca9dc73389c
Fixes: https://github.com/dart-lang/sdk/issues/45512
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193899
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2021-04-05 18:54:56 +00:00
Ryan Macnak a6ffc74a4a [vm] Switch most Instances whose layout is determined in C++ to compressed pointers.
Instances whose layout must agree with a layout determined by Dart code are not switched: Array, GrowableObjectArray, Closure, LinkedHashMap.

TEST=ci
Change-Id: I19baf6473a29dd14f84aa1e087eee16b0e6e9d77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193442
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
2021-04-05 17:43:16 +00:00
Janice Collins 6cacbb2bf0 Update dartdoc to 0.42.0.
Also removes the mustache dependency from the SDK.

Release notes: https://github.com/dart-lang/dartdoc/releases/tag/v0.42.0

Change-Id: I2c97e1be180199db3a520f3fa020973761781dbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194011
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
2021-04-05 17:17:46 +00:00
Mark Zhou 9361234cd2 [dartdevc] Splitting SDK eval e2e tests.
Adding 'dartdevc_test' target to pkg-X builders.
Splits eval tests into sound and unsound suites.
Adding more robust event polling (instead of just waiting 500 ms).
Turns on sound mode for the ported tests.
Also ports a couple more tests.

Change-Id: Ia8e9095e1e3330ea1732a4fa4f14425777de5127
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193446
Reviewed-by: Anna Gringauze <annagrin@google.com>
Commit-Queue: Mark Zhou <markzipan@google.com>
2021-04-05 16:57:36 +00:00
Brian Wilkerson d4bc97ec16 Migrate a couple of files in the completion support
Change-Id: Idcb26425dad2b2a1d88346ad0ceea9d1fff209f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194012
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-05 16:40:06 +00:00
Konstantin Shcheglov a4fd3f8ba3 Remove remaining opt-outs to 2.9 from analysis_server_client.
Change-Id: I4d971ef7cbc433894b4219f3e942eef40db24a60
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194010
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-05 16:10:16 +00:00
Konstantin Shcheglov 4757152a0b Migrate a few random analysis_server libraries.
Mostly no-ops.

Change-Id: Ia538aed657576203ec104bd849862bcc87025bef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194006
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-05 16:06:36 +00:00
Konstantin Shcheglov 87d9364e06 Update integration/analysis/navigation_test for non-function type aliases.
The test was passing for me without changes, but failing on bots.
I suspect that this is because of a random package_config.json on
my computer. Adding one explicitly in the test should fix it.

Bug: https://github.com/dart-lang/sdk/issues/45576
Change-Id: I0ccdca5713c4fd5aeac7732dc5736c4e8dbfea9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194003
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-05 15:24:26 +00:00
Paul Berry c82c2f9948 Modify test runner to use the new dartanalyzer --format=json feature.
This allows the test runner to support context messages, for example
the context error messages associated with the new "why not promoted"
feature.

Bug: https://github.com/dart-lang/sdk/issues/44905
Change-Id: Ie342bde21c43641eafc5d117f328e9fde23c49bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193740
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-05 14:12:56 +00:00
Paul Berry 0873d4eb82 Flow analysis: remove branchTarget() construct from unit tests.
Flow analysis unit tests now support implicit branch targets, and use
`LabeledStatement` directly in the case where the branch target is
explicit.  This is more similar to how the language acutally behaves,
and paves the way for adding more sophisticated tests in the future.

Note that at the moment, there are no flow analysis tests where a
`continue` statement has a different target than the innermost loop,
so for now, the `continue_` function doesn't accept a target
parameter.  I plan to add this functionality in the future, at the
time that I add tests that require it.

Change-Id: I2591ee3322ea4adba3e32dc76a29f0b3956058e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194040
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-04-05 12:19:07 +00:00
Konstantin Shcheglov 3ea23d2f55 Migrate pkg/analysis_server/test/integration/analysis/
Change-Id: I6dc636c06e13d1ac1da6caf2e33443baca08315d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194001
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-04-05 07:46:16 +00:00
Konstantin Shcheglov 1c25329091 Migrate more analysis_server/test/integration/ tests.
Change-Id: Idbcf7a7c628a61f23120013a113b35256c26ed25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194004
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-04-05 06:19:15 +00:00
Brian Wilkerson 23bee1698f Migrate the instrumentation log viewer tool
Change-Id: I2087c3c9d25cdf3266142ba57bb8dbc57bc3fc46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194002
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-04-05 05:11:45 +00:00
Konstantin Shcheglov f1fb297ad9 Migrate analysis_server/tool/spec
Change-Id: Ic8d7596198876d78f6628121ef0feb2fc9ea886d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194005
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-05 05:08:25 +00:00
Brian Wilkerson 99814617b0 Migrate more of server to null safety
Change-Id: I8989f5f9a45a9c832f0aeb56397fed978386ce30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194041
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-04-04 21:40:55 +00:00
Brian Wilkerson 34873853d8 Migrate some of the plugin support in server
Change-Id: I1294a33725ff0d0c3d2eb981c23211a8576f60f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194023
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-04 00:23:39 +00:00
Konstantin Shcheglov 454d4db340 Use Object as the type for TypeUnion in analysis_server protocol generator.
Change-Id: I6772182341df26211ff245748afb983e9d1b6ef4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194021
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-03 19:44:24 +00:00
Brian Wilkerson 0190d20bd6 Migrate some tests and test utilities in server
Change-Id: I0a37352c903bf7139af25aab255fe6a5331ce98b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194020
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-04-03 19:23:44 +00:00
Konstantin Shcheglov 778c2361c3 Issue 45579. Report WRONG_NUMBER_OF_TYPE_ARGUMENTS and TYPE_ARGUMENT_NOT_MATCHING_BOUNDS.
Bug: https://github.com/dart-lang/sdk/issues/45579
Change-Id: I757f4d782895fb1a9c89d8238a7929e12d6a6eed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194000
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-03 17:46:16 +00:00
Paul Berry 2cfd6e421a Flow analysis: Use blocks internally in mini_ast representation.
For convenience in creating tests, the public mini_ast methods for
creating constructs like loops, try/catch, etc. accept lists of
statements as an argument where technically the language would expect
a single statement.  This CL changes the internal representation so
that each of these statement lists is converted into a single
statement by wrapping it in a block.

This makes the mini_ast representation more closely match the
representation used internally by the analyzer and CFE.

Change-Id: If2bf8a1cde694206b91b57c5907806b1965d4d99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193880
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-04-03 15:28:36 +00:00
Paul Berry 72bc3134c5 Unify "why not promoted" representations for for-loops and other writes.
This CL changes the responsibility for doing flow analysis of the
implicit variable write in a `for-in` loop as follows: if the `for-in`
loop does not declare a variable, but it assigns to a local variable,
then the flow analysis client is responsible for calling `write` on
entry to the loop.

This in turn allows us to use a single code path to track "why not
promoted" information related to all possible local variable writes;
we no longer need as much special case logic to handle for-in loops.

To make the analyzer integration slightly cleaner, we change the
argument type of FlowAnalysis.write to Node rather than Expression, so
that the analyzer can pass in the ForEachParts object when analyzing a
for-in loop.

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: I24b47be8eac2e276cd291a5b2f2e4444c911138f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193837
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-04-03 15:28:36 +00:00
Paul Berry 1cffb93ad7 Improve error message for non-promotion due to assignment.
This is clearer because:

- The use of "could not be promoted" is consistent with the other "why
  not promoted" messages.

- We avoid speculating about whether the variable might be assigned a
  null value; this should help avoid confusion in cases where the user
  can see that assigning a null value is impossible, but promotion
  still fails.

- We avoid the phrase "intervening write", which is a little too
  erudite.

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: I0b8a2132dc99dd06769677f98e6257e9b55ad9d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193820
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2021-04-03 13:43:36 +00:00
Konstantin Shcheglov a8590a287e Remove WithNonFunctionTypeAliasesMixin from analysis_server tests, enabled by default, update tests.
https://dart-review.googlesource.com/c/sdk/+/192948 was landed.

Change-Id: If5c175af47c9b324d6ca06597a4ebc3e3541cf85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193962
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-03 05:19:42 +00:00
Alexander Aprelev 9302a7427b [vm/concurrency] Assert that no SafepointRwLocks are acquired while in SafepointOperationScope.
Attempts to acquire safepoint lock while in SafepointOperationScope could result
in deadlocks if somebody else was holding that lock when they were forced to a safepoint.
Clean up few places where locks were acquired in SafepointOperationScope.

Introduce StoppedMutatorsScope and GroupDebugger::RunUnderReadLockIfNeeded that acquires
a lock only if it runs outside of StoppedMutatorsScope - to prevent such deadlocks.

Also fix tsan warning about data race around message_notify_callback by making it atomic.

TEST=tsan runs of debugger CI tests

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

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

Change-Id: Ibb53d9ce760d869e044e17075aeebf20fc0016a5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193582
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2021-04-03 03:36:32 +00:00
Leaf Petersen 39a2e69ea4 Enable non-function type aliases by default in 2.13.
TEST=language/nonfunction-type-aliases

Change-Id: Ifff4e838fbfc4f71e2d990e1f1f8a67b987adf91
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192948
Commit-Queue: Leaf Petersen <leafp@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2021-04-03 01:31:42 +00:00
Konstantin Shcheglov 48c0eadb86 Migrate more of analysis_server_client
Added a few new methods to the listener, tests.

Change-Id: I477a17da3fd31db04c4960effee076680db62301
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193895
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-02 23:36:52 +00:00
Konstantin Shcheglov ada329f6b1 Use fields and field constructor initializers in generated protocol.
Change-Id: Ic361cd51b18a289d3a6062cfbab844366e41cefa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193886
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-04-02 22:41:22 +00:00