Commit Graph

79322 Commits

Author SHA1 Message Date
Brian Wilkerson d00ef8611a Update the server protocol to support passing back the line and column numbers for the end of a range
Change-Id: I8310e4a32cacbe98310c1dbaa3b3563b1ff1a1ee
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191862
Reviewed-by: Danny Tuppeny <danny@tuppeny.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-18 19:22:23 +00:00
Kevin Moore 4616f47c4d dart: library spelling fixes
Change-Id: I3974094d611df8401941eba35ff0071b48d9e44f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191981
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Kathy Walrath <kathyw@google.com>
Auto-Submit: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kathy Walrath <kathyw@google.com>
2021-03-18 19:11:33 +00:00
Ryan Macnak 08295a8cb3 [vm, compiler] Consider T{_IntegerImplementation} as equivalent to T{int} for optimization purposes.
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/45297
Change-Id: Ic6a8956ad6344058c480e20018e876f5aae4c610
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191662
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-03-18 17:59:03 +00:00
Michal Terepeta 9933192f36 Move watching generated Bazel files to an isolate
This does a few optimizations to improve the performance of the analyzer
when watching for generated files:

- We do all the polling in a separate isolate.

- We detect when Bazel finished running and only poll afterwards.

- We use a batch interface and deliver all changes at once (instead of
  one by one). This allows us to avoid resetting caches more often than
  necessary.

I had to remove one of the larger tests and created an integration test
instead, since the code for detecting the Bazel builds relies on
`dart:io` directly (`ResourceProvider` does not expose a way to
check for symlink targets).

Since this required a bit more code, I've decided to create a separate
file for it (`bazel_watcher.dart`).

Change-Id: I6c2383e7fd4348ab8af1af639b10db519c7a2f33
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/183010
Commit-Queue: Michal Terepeta <michalt@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-03-18 17:50:58 +00:00
Alexander Markov 817582a155 [vm/compiler] Cleanup --no-unbox_mints flag and SupportsUnboxedInt64()
Unboxed int64 are supported on all architectures which Dart VM supports.
The only was to disable support for unboxed int64 is to use
--no-unbox_mints flag, which is not used and not tested.
This change cleans up this flag and corresponding compiler predicates.

TEST=ci

Change-Id: Ib667319eaf87f0ded8bf9d9505272a3693a9e63e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191761
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-03-18 17:49:28 +00:00
Tess Strickland 5fc2ba5fc4 [platform] Adjust Utils::StringHash() for misaligned starts.
Fixes https://github.com/dart-lang/sdk/issues/45290

TEST=vm/cc/StringHash

Cq-Include-Trybots: luci.dart.try:vm-kernel-ubsan-linux-release-x64-try,vm-kernel-precomp-ubsan-linux-release-x64-try
Change-Id: I7c1ef59cece77c6c9b705116e956e945bfcb55d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190882
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-03-18 17:42:53 +00:00
Mark Zhou ce473df469 [dartdevc] Adapting expression evaluation test suite for end-to-end evaluation.
The full workflow for an end-to-end test:
  1) Perform test/compiler options pre-initialization.
  2) Start an instance of Chrome (with 1 tab) and save a persisted debug connection for use in all tests.
  3) For each separate Dart program to be tested:
    1) Create inside a temp directory the HTML bootstrapper, DDC-compiled JS sources, and auxiliary JS files (dart_library.js or require.js).
    2) Initialize a DDC ProgramCompiler/IncrementalCompiler and perform a full compile of the program, saving the compiler's state for subsequent incremental compiles.
    3) Enable the debugger and set a URL breakpoint at the program's main JS entrypoint.
    4) For each test for this Dart program:
      1) Navigate to the HTML bootstrapper, pausing when the target module is loaded (at the breakpoint set above).
      2) Set a breakpoint at a JS location translated from a Dart breakpoint ID via source maps.
      3) Resume the debugger, pausing at that breakpoint. Remove the breakpoint.
      4) Reconstruct the local JS scope, then evaluate the Dart expression.
      5) Evaluate the JS expression inline, then compare results with expectations.
    5) Disable the debugger to clear its state.
  4) Shut down Chrome and clean up any temporary directories.

Other notes:
  * Supports bootstrapping/compilation on AMD and DDC module systems only (though expression eval is only supported on AMD)
  * Requires that Dart breakpoint IDs be set declaratively (no support for columns)

The test structure/flow is subject to change. While I port existing tests, Dart programs will consist of inline source file strings with simple breakpoints. In the future, we want to allow more complicated Dart programs to be specified (like in the modular test framework) and more complicated expression evaluation test patterns (rather than allowing only a single evaluation per test).

Change-Id: I5de7cfa66991fd14b24fa16edd1615f55c041ae3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190962
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
2021-03-18 17:41:23 +00:00
Konstantin Shcheglov 5a313c2595 Support for type arguments and inference in metadata.
Change-Id: Icb019326d73f5d1380c732b36239555a6bcb39d4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191483
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-03-18 17:26:43 +00:00
Kallen Tu 3c5c1cd3f4 [cfe] Break, continues and labels for const functions.
Change-Id: Id8fce4088042b4acf9eadebe7aa99abd5565a471
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191680
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2021-03-18 17:06:13 +00:00
Johnni Winther d59c8bc4fd [cfe,dart2js] Handle LocalFunctionInvocation in ListFactorySpecializer
The CloneVisitorNotMembers contains a mapping from variables to their
corresponding clones. The ListFactorySpecializer special cased access
to this mapping to support conditional cloning. When dart2js switchted
to used the new method invocation encoding, this left the
LocalFunctionInvocation unhandled, leading to null check error when
local functions where invoked in the closure passed to List.generate.

This CL makes this mapping private and adds getter/setter methods for
lookup and registration. The ListFactorySpecializer now instead overrides
the getter to support conditional cloning instead of handling each use
case.

Bug: b/183083319
Change-Id: I2fd3b79137c51a424f17127b502e6a945c6796a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191901
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-03-18 14:34:33 +00:00
Daco Harkes fbaf439b75 [vm/ffi] Fix ScopeBuilder uninitialized read
Closes: https://github.com/dart-lang/sdk/issues/45362

TEST=MSAN build

Change-Id: Ic51eba97b94656e75261001134e75db2fd2e352d
Cq-Include-Trybots: luci.dart.try:vm-kernel-msan-linux-release-x64-try,vm-kernel-precomp-msan-linux-release-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191882
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-03-18 12:37:48 +00:00
Daco Harkes 55082199e7 [vm/ffi] Fix Array<Pointer> loads and stores
Closes: https://github.com/dart-lang/sdk/issues/45198

TEST=tests/ffi(_2)/regress_45198_test.dart

Change-Id: I15cf5a4d48b1bfb33de039cc8b17be8e01fba752
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191881
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2021-03-18 12:26:38 +00:00
Johnni Winther 9e23810b77 [kernel] Migrate more libraries in package:kernel
Change-Id: I249c9fa9f2727544f940b3d954ce49bf38ee4918
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191402
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2021-03-18 11:06:18 +00:00
Mayank Patke 679e214f51 Fix nullability issue in id_testing.
Change-Id: Id1703aabbe6f6e425f3965770292e32ad664664b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191861
Auto-Submit: Mayank Patke <fishythefish@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2021-03-18 11:00:58 +00:00
Alexander Thomas 4b1994bdb7 [co19] Roll co19 to 1abf208ef6428aac8fee6f3175d65b1c59cd15c8
2021-03-18 irina.arkhipets@gmail.com Fixes Issue #1020: SharedOptions comment corrected.
2021-03-18 sgrekhov@unipro.ru Fixes #1014. Expect compile error on dart2js for big integers

Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-x64-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-release-x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-nnbd-linux-release-simarm64-try,vm-kernel-precomp-nnbd-linux-release-x64-try
Change-Id: I6ca1c23cbc3e2f7ed87efb8062c19d1b0c819bd8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191880
Auto-Submit: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2021-03-18 10:31:49 +00:00
Kevin Moore d59e280a62 Fix spelling mistakes in core classes
Uri, StringBuffer, int, RangeError

Change-Id: I6d22d4707aed3a871af78c584ae3a06894d8b632
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191804
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2021-03-18 10:19:48 +00:00
Sergey G. Grekhov 7c29dd9583 [co19] status file normalized
[co19] turn off tests that use big numbers on web configurations

Change-Id: Iceda118a4c06b5edf3bd97559a88559301920019
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191721
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2021-03-18 10:16:08 +00:00
Konstantin Shcheglov 14327ea035 Handle NON_CONSTANT_MAP_ELEMENT as a const error.
Bug: https://dart-review.googlesource.com/c/sdk/+/191762
Change-Id: I55c52a364079fbf797b285c48bb7eed070c00b9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191803
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-03-18 06:24:48 +00:00
Mark Zhou e692b26c7e Adding SDK dependencies required for expression evaluation tests.
This is part of a series of changes to add support for SDK expression eval tests.

This change:
  * Adds SDK dependencies on webkit_inspection_protocol.dart and browser_launcher.dart
  * Adds dev dependencies to DDC

Change-Id: I025a1f1b59e00858a33016818b6746c57c9caec4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190961
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
2021-03-18 00:30:37 +00:00
Alexander Aprelev 7b94d56d67 [observatory] Provide isolate for send data events because observatory expects it for write events.
_ConsoleStreamPrinter::onEvent expects isolate on WriteEvent. It's absence causes exceptions in Observatory. This started with https://dart-review.googlesource.com/c/sdk/+/190303

TEST=updated capture_stdio_test with isolate expectations; run observatory to ensure to exceptions are generated

Change-Id: I73efe9c1ab5b0d779d9432fd64ad5ccc5fcc14ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191661
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2021-03-17 23:30:47 +00:00
Brian Wilkerson 0599056cb2 Add another example to invalid_null_aware_operator to explain a confusing case
Change-Id: I11319c8075179890400f87cc5a8706e4569e39dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191420
Reviewed-by: Kathy Walrath <kathyw@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-17 23:03:57 +00:00
Ryan Macnak 2e56467afb [vm, compiler] Unpredicate boolean loads on x64.
This reverts part of c9e10c931c, which Golem reports as negative for Xeon.

Generate dist8 branches for these cases.

TEST=ci
Change-Id: I77432e478c0d3a46868a530a2d75036994c8809e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191469
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2021-03-17 22:59:07 +00:00
Daco Harkes 3c55d8bb3e [analyzer/ffi] Support packed Structss
This CL does not add packed structs to `dart:ffi` yet, only to the mock
SDK in the analyzer for testing the analyzer. This means we can review
and land it separately.

Bug: https://github.com/dart-lang/sdk/issues/38158

Split off https://dart-review.googlesource.com/c/sdk/+/186143.

Change-Id: I9c9ac9154e3dec0e05242f57cf7dddf8406df5fb
Cq-Include-Trybots: luci.dart.try:analyzer-analysis-server-linux-try,analyzer-linux-release-try,analyzer-nnbd-linux-release-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2021-03-17 22:13:37 +00:00
Alexander Markov bed0589676 [vm] Fix access to parameters in async closure body inside field initializer
For async closure parsed_function_ could be an outer function
which is unrelated to the closure. So, ScopeBuilder should not
attempt to mark parameters of parsed_function_ with
set_is_forced_stack() if it sees kSyncYielding FunctionNode.
Parameter variables might not be even allocated if
async closure is used inside an instance field initializer
and parsed_function_ is a constructor.

TEST=runtime/tests/vm/dart/regress_45306_test.dart
Fixes https://github.com/dart-lang/sdk/issues/45306

Change-Id: I1b0082cb0e217039c43f19b35d77190493069edc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191325
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2021-03-17 19:17:05 +00:00
Alexander Thomas aaff982970 [co19] Skip LibTest/ffi/Array/PointerArray_A01_t01
The test crashes and causes purple builds on Windows.

https://github.com/dart-lang/co19/issues/1018

Change-Id: Ifbef5bb3c30fa699f341fdfc4bd60a3a7e97e2d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191621
Reviewed-by: Ben Konyi <bkonyi@google.com>
2021-03-17 18:20:06 +00:00
Alexander Thomas 5a815526aa [co19] Roll co19 to 8cf837f5abf0a30ed91ebf480df58e5c0480947e
2021-03-17 sgrekhov@unipro.ru Fixes #1017. Use => for setter returning value tests
2021-03-16 irina.arkhipets@gmail.com Issue #996: more tests for Generic functions as type arguments and bounds added.
2021-03-16 sgrekhov@unipro.ru Fixes #1005. Description updated for method_definition tests
2021-03-16 sgrekhov@unipro.ru Fixes #1011. Expect an error if non-function type is called as a function
2021-03-16 irina.arkhipets@gmail.com Issue #996: tests for Generic functions as type arguments and bounds re-factored, more tests added.
2021-03-15 irina.arkhipets@gmail.com Issue #996: tests for Generic functions as type arguments and bounds added.
2021-03-15 irina.arkhipets@gmail.com Issue #996: tests for Generic functions as type arguments and bounds added.
2021-03-15 sgrekhov@unipro.ru Missed experiment flag added
2021-03-12 irina.arkhipets@gmail.com Issue #996: tests for Generic functions as type arguments and bounds added.
2021-03-12 sgrekhov@unipro.ru #993. Added tests checking that Struct fields cannot have initializers
2021-03-12 sgrekhov@unipro.ru #993. Tests for not external members of Struct subtype added
2021-03-11 sgrekhov@unipro.ru #993. Use package ffi in co19 ffi tests
2021-03-09 sgrekhov@unipro.ru Fixes #995. Annotations with type arguments tests added
2021-03-09 irina.arkhipets@gmail.com Issue #997: existing triple-shift tests corrected.
2021-03-09 irina.arkhipets@gmail.com More fixes for #535: split constant evaluation tests because static behavior of the strong and weak mode is different.
2021-03-04 sgrekhov@unipro.ru #993. Array tests added
2021-03-04 sgrekhov@unipro.ru #993. Pointer equality tests added
2021-03-03 sgrekhov@unipro.ru #993. Pointer.elementAt() tests added
2021-03-02 sgrekhov@unipro.ru #993. Pointer.cast() tests added
2021-03-01 sgrekhov@unipro.ru #993. Pointer tests added
2021-03-01 sgrekhov@unipro.ru Fixes #936. Change expected result according to the new left top rule
2021-02-26 irina.arkhipets@gmail.com Fixed #998: tests checks output streams correctly now.
2021-02-26 sgrekhov@unipro.ru #993. IntPtr tests added
2021-02-26 sgrekhov@unipro.ru #993. More Struct tests added
2021-02-25 irina.arkhipets@gmail.com Tests updated, missing issue tags added.
2021-02-25 sgrekhov@unipro.ru #1003. Isolate test fixed to not to be a racy
2021-02-25 sgrekhov@unipro.ru Issue numbers added
2021-02-24 sgrekhov@unipro.ru Issue number added
2021-02-24 sgrekhov@unipro.ru #988. Typo in error message fixed
2021-02-24 sgrekhov@unipro.ru #988. Fix test expectations

Cq-Include-Trybots: dart/try:analyzer-nnbd-linux-release-try,dart2js-nnbd-linux-x64-chrome-try,ddc-nnbd-linux-release-chrome-try,front-end-nnbd-linux-release-x64-try,vm-kernel-nnbd-linux-debug-x64-try,vm-kernel-nnbd-linux-release-simarm64-try,vm-kernel-nnbd-linux-release-x64-try,vm-kernel-nnbd-mac-release-x64-try,vm-kernel-nnbd-win-release-x64-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-nnbd-linux-release-simarm64-try,vm-kernel-precomp-nnbd-linux-release-x64-try
Change-Id: I718644028b1d2a9fbba0c7efdf2923bb67184fde
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191409
Reviewed-by: William Hesse <whesse@google.com>
2021-03-17 18:20:06 +00:00
Alexander Aprelev 4baf7e5e3d [vm/concurrency] Introduce GroupDebugger that takes CodeBreakpoints management away from isolate Debugger.
CodeBreakpoint class tracks patching of the call targets for the purpose of routing the call to the debugger runtime.
With this CL CodeBreakpoint instance is managed by GroupDebugger, debugger class owned by IsolateGroup, and can be associated with multiple BreakpointLocation, one location per isolate that set a breakpoint at particular code location.

TEST=observatory/tests/service/break_on_function_child_isolate_test

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

Change-Id: I3b3d0974a0fb9668742e5c1e2a2ce13b84b1d630
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190732
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-03-17 18:03:14 +00:00
Joshua Litt c5c80648b9 [dart2js] Land accurate compute merging dependency algorithm.
Change-Id: If47a670631c4c4d63b0fd834a01dc30275b416d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191241
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2021-03-17 17:27:44 +00:00
Johnni Winther 12f510fbd1 [dart2js] Use new method invocation encoding
Change-Id: Iab73f25a19fe8718cb68327fef5878d25b735030
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188523
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2021-03-17 17:26:25 +00:00
Sam Rawlins af7d2a4824 analyzer: code quality improvements in task/options.dart
* Add quotedAndCommaSeparatedWithAnd getter to List<String> extension.
  This extension getter allows multiple fields to be initialized in
  ctor initializers.
* Make all ErrorBuilder fields private which enabled analysis that all
  could also be final.
* Refactor ErrorBuilder.code to not be `late final` by using a private
  constructor and a factory constructor.
* Refactor TopLevelOptionValidator _valueProposal and _warningCode to
  not be `late final` by initializing them in ctor initializers.
* Remove the TrueOrFalseValueErrorBuilder class. The class contained
  no useful information and was basically a wrapper around
  `reporter.reportErrorForSpan`. Calling this inline simplifies.
* Change reference in parser.dart as Analysis Server renamed it to
  [_builder] when I refactored one of the fields in options.dart.

Change-Id: Ica867772fca5d3442ab754e588ec07829a822c2d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191462
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-03-17 16:59:14 +00:00
Sam Rawlins 5d1faf6cc6 Refactor yaml utilities in analyzer and analysis_server
* Two extension methods were moved from analysis_server to analyzer, to replace
  identical top-level helper functions in analyzer.
* Add nodes2 which returns a YamlMap with YamlNode keys.
* Privatize two static functions in Merger.

Change-Id: If54e73d6e8133bf1b2a3af809d6bb732c77ab9be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191381
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-03-17 16:57:05 +00:00
Sam Rawlins 7465b17ad7 front_end: Remove unnecessary imports
Bug: https://github.com/dart-lang/sdk/issues/44569
Change-Id: I0dd5d176a95289333cd42f87f49d7820c54bbe38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191470
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-03-17 16:48:40 +00:00
Kallen Tu 7ff1aebc2d [cfe] While loops for const functions.
Change-Id: I7979fa8b50a74f9e423f19805a793a0c25609abd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191580
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2021-03-17 16:11:43 +00:00
Martin Kustermann 4c0edc6720 [vm] Extend BitField class to allow storing negative numbers by sign-extending when decoding
Will be used to encode deopt-id (which can be -1) into bit field.

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

TEST=Newly added vm/cc/BitFields_SignedField.

Change-Id: I537820d813a191006388b8bfc08a3bac6f23f79f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191360
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2021-03-17 15:27:32 +00:00
Kallen Tu 54f8b6fb54 [cfe] Basic for loops for const functions.
Basic for loops with tests, breaks/continues coming in a later CL.

Change-Id: I28f832ef80689a562da99f60d682bf8e4c630697
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191340
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2021-03-17 14:53:22 +00:00
Martin Kustermann df439941e4 [vm/compiler] Change various allocation fast paths to check for --use-slow-path and --no-inline-alloc
This will allow future tests to force allocations to go to runtime. This
will be used to test deoptimization on allocation slow paths.

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

TEST=Existing test suite.

Change-Id: I0d552c2b313147ce08c5fbb22761a400388abe7b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191043
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2021-03-17 14:49:42 +00:00
Martin Kustermann 26f0eba03b [vm/compiler] Make AssertSubtypeInstr always call stub - including on ia32
This simplifies the code and makes it easier for later work
related to lazy-deopt of the instruction when returning from
runtime call.

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

TEST=Existing test suite.

Change-Id: I056baac434532d3ed034ba488252ed0ff77eb488
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191041
Reviewed-by: Tess Strickland <sstrickl@google.com>
2021-03-17 13:16:49 +00:00
Martin Kustermann 0834f9b7ac [vm/compiler] Move runtime call out of InstantiateTypeInstr to stub
This simplifies the code and makes it easier for later work
related to lazy-deopt of the instruction when returning from
runtime call.

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

TEST=Existing test suite.

Change-Id: I72e72554bdc306a9490a1460927d1dd650bfbe7d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191040
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-03-17 13:08:01 +00:00
Martin Kustermann 1055db533c [vm/compiler] Add infer range to Utf8ScanInstr
This tells the compiler that boxing the result of Utf8ScanInstr will
always fit in a Smi and the boxing instruction can therefore never go to
runtime (and e.g. cause a lazy-deopt).

Noticed as part of https://github.com/dart-lang/sdk/issues/45213

TEST=Existing test suite.

Change-Id: I30712ec50378c7e0f70e1a5d95a2390b4f5d8ebc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190481
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2021-03-17 11:17:41 +00:00
Martin Kustermann 1ca7593c44 [vm/compiler] Mark various additional IR instructions as kNoGC
Some IR instructions (e.g. RawStoreField) can never deopt by-design. Some
instructions are calling runtime entries but those are leaf calls (e.g.
InvokeMathCFunction). Some are synthetic IR instructions that never
actually emit code (e.g. Constraint). Some IR instructions cannot deopt
due to inputs (e.g. Boxing instructions whose value is guaranteed to fit
into Smi).

Part of https://dart-review.googlesource.com/c/sdk/+/190481

TEST=Existing test suite.

Change-Id: I770b7d094ef36221d357157c736710476fd6bfb2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190482
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2021-03-17 11:13:01 +00:00
Paul Berry 2724b0020e Clarify nomenclature for computeWhyNotPromotedMessages.
It's been a while since I worked with this method and I'd forgotten
what the parameters meant.  A sure sign that documentation and
clarification are needed! :)

Bug: https://github.com/dart-lang/sdk/issues/44898
Change-Id: I815c35af243ed6c9611346a058a1c1bb37ace4db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191480
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-03-17 11:01:31 +00:00
Dmitry Stefantsov e64daf805f [cfe] Handle boudness type variables in results from i2b
Closes #45317.

Bug: https://github.com/dart-lang/sdk/issues/45317
Change-Id: Ib6144778a11dc837c74b4b7992c41dbe2d654946
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191260
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2021-03-17 10:48:31 +00:00
Alexander Thomas cc09669487 [release] Add changelog for 2.12.2
Change-Id: Ia0442151ff6d1ca851e9a7ffc9bd6fd5d1145bc6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191406
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2021-03-17 09:24:41 +00:00
Erik Ernst 97e8837f12 Reorganize language/nonfunction_type_aliases/mixed/aliased_cyclic*
This test failed because it had a test outcome expectation comment in
a library which is not the entry point (cf. #44990). This CL changes
the test such that said comment is located in the entry point. The
trade-off is that this test now has a "reverse" import: A library
with null safety enabled imports a legacy library (but, apparently,
this does not cause the test to fail).

PS: This means that we don't have a test that will go green when #44990 is resolved.

Change-Id: Ie94bff22ce75bd662752c5814917e141fafc72ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191365
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
2021-03-17 07:39:21 +00:00
Robert Nystrom ce0a926c35 Roll dart_style 2.0.0 into the SDK.
No formatting changes, so no need to sync the pre-built SDK.

Change-Id: Ide5a58764e865e1226219ce6af9a5cb1444e29b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191463
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Jake Macdonald <jakemac@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
2021-03-17 02:09:11 +00:00
Regis Crelier 33cabf4313 [VM/runtime] Allow generic function types as type arguments in the VM.
Type parameter scopes were not set properly when loading bounds with generic function types from kernel file.
The trail to avoid infinite recursion while comparing type parameter bounds was not used properly.

Fixes https://github.com/dart-lang/sdk/issues/45313
Fixes https://github.com/dart-lang/sdk/issues/45322
Fixes https://github.com/dart-lang/sdk/issues/44930

TEST=regression tests added

Change-Id: I096b7d8c22aa5b3a3a9e12a59b1417388ff5171f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191465
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2021-03-17 00:16:41 +00:00
Keerti Parthasarathy 1a7d39b235 Do not compute hints for third party code
Change-Id: I4d9478fb9ebb92a26a98a9711e6fab1c0c39db59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191464
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2021-03-16 23:49:11 +00:00
Ryan Macnak c9ba99ae6d [vm, compiler] Make the difference between the CompileTypes for int and _IntegerImplementation visible when printing IL.
TEST=ci
Change-Id: I17f6a79e3642a809a57f7d240c3894a093429a81
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191460
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2021-03-16 21:57:01 +00:00
Konstantin Shcheglov 11e922f761 Update a few documentation comments for elements to remove null.
https://github.com/dart-lang/sdk/issues/45236#issuecomment-800564647

Change-Id: Ic9aa0b120cb0796ad1796c6f34aef8fc5360700a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191481
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-03-16 21:39:41 +00:00
Sam Rawlins 8bc9d55174 Remove unnecessary experiments in sdk_version_gt_gt_gt_operator_test
Change-Id: Ic49c8f6acc02ef8b1f5660ec12512f4deb8beb25
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191461
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-03-16 21:20:03 +00:00