Commit graph

53240 commits

Author SHA1 Message Date
Jens Johansen beff8fdf23 [fasta] Fix bugs in incremental tests
This CL fixes errors in a few incremental tests.
The remaining (with a previous references to issue #31909) are not
related to incremental compilation, but also fail to fail on regular fasta.

Closes #31909.

Change-Id: I3c50a4cbfb926f8f74570523a10885e1bd28a94b
Reviewed-on: https://dart-review.googlesource.com/34801
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-01-16 14:47:32 +00:00
Peter von der Ahé 1bca76d012 Convert Platform.resolvedExecutable to URI correctly
Change-Id: I583b98277b1c62328885c775fcb712823c9ff405
Reviewed-on: https://dart-review.googlesource.com/34860
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-16 14:24:52 +00:00
Erik Ernst 9f803a36eb Adjusted status indications on feature specs
The Dart 1 specification of 'generic method syntax' had no status
indicator, it is now marked as 'background material' because generic
methods (in full) have been integrated into the language specification.
Several other changes of a similar nature.

Implication: It should now be possible for readers of these documents
to trust their status indication. As we go, we will need to update them
again, especially when something is integrated into the language
specification.

Do we want to migrate background material to another directory? Do we
want to rename the directory `informal` to `feature` or somesuch?

Change-Id: Ia3851bdbe7b5a46d71848c376906f95feb4db349
Reviewed-on: https://dart-review.googlesource.com/34663
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-01-16 13:22:28 +00:00
William Hesse 2d406b654e Skip front_end hot_reload_e2e test while it is broken
BUG=31901

Change-Id: I16b195f67bb8eaeb992498acefcd82e2805c42bd
Reviewed-on: https://dart-review.googlesource.com/34840
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-16 12:58:39 +00:00
Peter von der Ahé 62d2255719 Don't skip front-end tests
Change-Id: Ibbd0d63e8c23d045a898e52185fe55e5c53dd6b3
Reviewed-on: https://dart-review.googlesource.com/34621
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-16 12:00:28 +00:00
Peter von der Ahé 1b8953f256 Prevent async cross talk
Change-Id: I678cfa16a26e0f2bbda4480b0b21a53750346429
Reviewed-on: https://dart-review.googlesource.com/34664
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-16 11:33:01 +00:00
Martin Kustermann 09035067fe Update status files to get sim* builders green
Change-Id: Ib3e6b8da4ee59d83da978e44a7611388f974aa23
Reviewed-on: https://dart-review.googlesource.com/34662
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-01-16 10:04:32 +00:00
Peter von der Ahé e6683f0638 Don't crash when the delta is empty
Change-Id: I322261faad1431b7b597094048a9f904d70c33ff
Reviewed-on: https://dart-review.googlesource.com/34740
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-16 09:57:33 +00:00
William Hesse 4d99c9fdf3 Add fasta variable to status files and test.py
Change-Id: Iffecf6cb54c3a58de96c44518a0ffd86b2688e27
Reviewed-on: https://dart-review.googlesource.com/34680
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-16 09:44:30 +00:00
Lasse R.H. Nielsen c0d2671872 Make it clear that you are not allowed to have spaces in operator-names.
Remove places where you were technically allowed to add spaces between
individual characters, but no implementation actually allowed it.

Change-Id: I0a13c9e3995b897135cd578a7d8c114f7746f991
Reviewed-on: https://dart-review.googlesource.com/34640
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2018-01-16 09:34:41 +00:00
Lasse Reichstein Holst Nielsen dd7093e7a9 Fix test on Windows.
Fixes #31903.

BUG= http://dartbug.com/31903

Change-Id: I515f0d08cfdb9db695d3cf12a727d694042ca2ec
Reviewed-on: https://dart-review.googlesource.com/34661
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2018-01-16 08:16:43 +00:00
Peter von der Ahé 06040f73f2 Skip hot_reload_e2e_test on Windows.
Change-Id: I7a379c2520be98d447a6c4e12875b74c5af29518
Reviewed-on: https://dart-review.googlesource.com/34720
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-16 06:29:57 +00:00
Vyacheslav Egorov ff008ca37a [vm/kernel/async] Use proper type argument when createing async* controller.
Change-Id: I40e5d2d933b83a24c9d8177437fb6df1f21b5cc1
Reviewed-on: https://dart-review.googlesource.com/34741
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-01-15 22:06:30 +00:00
Alexander Thomas 97898a9bb6 [gardening] Correct DDK status to get CQ to pass
TBR=whesse@google.com

Change-Id: Iff23be4c81a4d8a307b67cf2c08ac106fd7b5e79
Reviewed-on: https://dart-review.googlesource.com/34780
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-15 22:05:58 +00:00
Erik Ernst d830c8ba3c Removed merge conflict markers.
Change-Id: I1feda4f3104ca100425233fb7f339a412a885f9f
Reviewed-on: https://dart-review.googlesource.com/34743
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2018-01-15 21:21:20 +00:00
Martin Kustermann 0bc46de838 [VM] Support spawning isolates when the main isolate was spawned from a Kernel IR file
Issue https://github.com/dart-lang/sdk/issues/31698

Change-Id: Ifc6662a3fd56245c10f5d924f771ef85ed9b222c
Reviewed-on: https://dart-review.googlesource.com/34742
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-15 17:51:54 +00:00
William Hesse c989cdd6ca Update status for VM kernel precompiled mode
This fixes two incorrect status changes in commit 473eb4be4.
There were duplicate lines for some tests and the wrong line
was removed for two of them.

TBR: sjindel@google.com
Change-Id: I518d444d0717f6e6b76130dd284746d6f100c54a
Reviewed-on: https://dart-review.googlesource.com/34700
Reviewed-by: William Hesse <whesse@google.com>
2018-01-15 16:02:43 +00:00
Lasse R.H. Nielsen 3727e4d28b Update specification of system/non-system import conflict to not cause warning.
Change-Id: I089561ce2770a12549476687bb0ef3d78f9cc1e1
Reviewed-on: https://dart-review.googlesource.com/33840
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-15 15:21:51 +00:00
Peter von der Ahé 2cc21f515e Remove original and minimal IKG
Change-Id: Id845a025ae9823fd3e53aaac7b5a95aa9e2ad767
Reviewed-on: https://dart-review.googlesource.com/34380
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-15 15:02:20 +00:00
Dmitry Stefantsov 3371183b24 Add tests of instantiate to bound in method bodies
Change-Id: Ife92207a5c58e7220a5607b2d798fe40bd779f4e
Reviewed-on: https://dart-review.googlesource.com/34041
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-15 14:56:41 +00:00
Dmitry Stefantsov 10058a3600 Use instantiate to bound in body builder of fasta
Change-Id: I6e3d9f60c43ccb34df0b58c635be51ea0aa2e789
Reviewed-on: https://dart-review.googlesource.com/32600
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-15 14:56:41 +00:00
William Hesse 473eb4be4b Update status for Dart kernel precompiled VM tests after commit 42a6399
Follow-up to https://dart-review.googlesource.com/c/sdk/+/34400

Change-Id: I6d07c4a0023d4a5fc227d01fe83943f7389c9ff2
Reviewed-on: https://dart-review.googlesource.com/34587
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: William Hesse <whesse@google.com>
2018-01-15 14:38:40 +00:00
Martin Kustermann e9608b25b5 [VM] Make noSuchMethod handling on simdbc work for closure calls with generic type arguments
Currently the [Invocation] class does not actually have support for
storing the type argument vector passed on the call site of an NSM (see
issue https://github.com/dart-lang/sdk/issues/27323).

Nonetheless do we need to support calling NSM where the call site has
type arguments provided.

Closes https://github.com/dart-lang/sdk/issues/31880

Change-Id: I0f7db12d3e8c60e45c2a3b501c39fc1d4fc796ae
Reviewed-on: https://dart-review.googlesource.com/34584
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-01-15 13:44:31 +00:00
Erik Ernst bf5b9087d2 Adjusted language_2/void_type_usage_test.dart
Adjusted return types such that `return` test cases test the intended
situation; added new `testReturnToVoid` function to test the case which
was previously overlooked (that is, "`return e;` where `e` has type
void is OK in void function).

Change-Id: I9859b5ff33f0ac5d1e33d16f40fe57a6c1a7b4d0
Reviewed-on: https://dart-review.googlesource.com/34582
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-01-15 11:46:06 +00:00
Samir Jindel 42a639973d [kernel] Support for partial tearoff type application operator in the VM, take 3.
The original change is available in patchset 1.
The changes since then are just status file updates.

Change-Id: I0c45c4b09a187bdd60c6a38bf23f6b7a0cf80c97
Reviewed-on: https://dart-review.googlesource.com/34400
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-15 11:24:11 +00:00
Lasse R.H. Nielsen 6178cc17ed Change the static castTo methods to be named castFrom.
It's just a better name.

Bug:
Change-Id: I0bf42b53fb5041faa307d288ffe12fb4b1ac7068
Reviewed-on: https://dart-review.googlesource.com/34180
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-15 08:59:31 +00:00
Johnni Winther e01081ef03 Split inference tests to avoid timeout
Change-Id: I94253b787e9d3356b988fe08115394165823bf52
Reviewed-on: https://dart-review.googlesource.com/34580
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-15 08:22:13 +00:00
Jens Johansen 4d5bf638c3 [kernel] Fix status files for service/bad_reload_test
TBR.

Change-Id: Ib6c287c41eaaa241b187b7de7bb64441b04576c6
Reviewed-on: https://dart-review.googlesource.com/34581
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-15 08:21:30 +00:00
Paul Berry 45b02f8216 Use the new spec for Future flattening for type inference
Change Fasta type inference and Kernel type checking to use the new
definition for Future flattening, which is really unwrapping (peeling
off one layer of Future or FutureOr).  Use this for inferring types of
`await` expressions and return types from `async` functions.

Ensure that we are using the same notion of flattening for inference
and checking.  (Maybe it was a red flag that we weren't.)

This fixes await_test so that it produces a runtime error rather than
a compile time error - see #31541.

A similar change will need to be made to the analyzer - see #31887.

Change-Id: I7d936e9788969a48fdc216628eaa793389fb5e30
Reviewed-on: https://dart-review.googlesource.com/34504
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-01-15 07:09:36 +00:00
Sigmund Cherem 72c3c8ea61 Several deferred loading improvements:
- fix some discrepancies between old and new deferred loading.
  * Kernel is now using the correct world impact
  * For the old FE, I'm more careful about avoiding metadata nodes when mirros
    are disabled as well.
  * Better approximate when a constant is deferred in the kernel codegen

- make 'dump()' independent of the IR, so we can easily compare them side by
  side.

- exclude primitives in kernel since we don't need to track them. I
  didn't change the old front end because it is not as easy to do. I did this
  change because kernel was processing many more constants than the old frontend
  (the old frontend skipped constants that were never evaluated, we have no way
  to do it selectively like that in the new front end).

Change-Id: I337d3fd818753125476b7390da5d900ebdc02709
Reviewed-on: https://dart-review.googlesource.com/34509
Reviewed-by: Emily Fortuna <efortuna@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-13 01:42:32 +00:00
Jenny Messerly 2a8d1c023b enable corelib_2 and lib_2 tests for DDK on the bots
Change-Id: I72d5b9d34bc93f888c9da5da169e3a1cab003913
Reviewed-on: https://dart-review.googlesource.com/34505
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-13 01:21:10 +00:00
Jenny Messerly 1ace9bfe00 enable corelib_2 tests for DDK on the bots
Change-Id: I97fb3f606545db64313a1c3e8d1b687d536ac589
Reviewed-on: https://dart-review.googlesource.com/34503
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-13 00:39:33 +00:00
Emily Fortuna cbd05542cc Created a signature method on closures that returns the type of the closure function.
Some additional optimization work will need to be done at the end so
that we take out these functions when they are not needed (when we
don't have type variables).


Bug:
Change-Id: I28d59d04844ec18510b9befe45f26f4109d86ffa
Reviewed-on: https://dart-review.googlesource.com/32667
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-13 00:27:22 +00:00
Natalie Weizenbaum ed431d5a61 Bring in the latest pub
Change-Id: I8d2d11394a07cd116147e2ae86f3326c85cfe0f7
Reviewed-on: https://dart-review.googlesource.com/33661
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Natalie Weizenbaum <nweiz@google.com>
2018-01-12 22:47:50 +00:00
Jenny Messerly f17ccdfbea fix #31782, implement not-null analysis for dartdevk
Conceptually this is a port of analyzer/nullable_type_inference.dart.
It contains some refactoring and other improvements, as well as tests.

Change-Id: I448440793f11e2e87583d9d47c0e6a1e54ae21f7
Reviewed-on: https://dart-review.googlesource.com/34308
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-12 22:40:50 +00:00
Harry Terkelsen 93abeeb47e new test fails in minified because runtimeType is minified
Change-Id: Iedb7bf5d022d313ce24e7a630bb74c05e8d65853
Reviewed-on: https://dart-review.googlesource.com/34502
Reviewed-by: Harry Terkelsen <het@google.com>
2018-01-12 22:39:59 +00:00
Paul Berry c567790306 Clean up closure return type handling during front end type inference
This CL fixes two minor flaws in the type inference of closure return types:

- inferReturnType needs to call _wrapAsyncOrGenerator prior to
  checking whether the inferred return type is a subtype of the
  context.  This is necessary because for async and generator
  functions, the context type is the "wrapped" type (FutureOr<>,
  Iterable<>, or Stream<>).

- _updateInferredReturnType needs to perform implicit downcasts before
  storing the inferred return type.  This is necessary because if in
  implicit downcast is added, the inferred type that should be stored
  is the type that was downcast to.  In order to make this work, the
  "unwrapping" logic needed to be moved from
  _updateInferredReturnType's two call sites into
  _updateInferredReturnType itself.

These flaws were benign because they were masked by the looseness of
the future flattening operation.  They need to be fixed so that future
flattening can be made more precise.

Change-Id: I2b5ea3f63632638b5fadbce7d52c5d028acda5ab
Reviewed-on: https://dart-review.googlesource.com/34480
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-12 22:07:20 +00:00
Johnni Winther c0e7f53041 Convert update_all.sh to a real language
Change-Id: I2b503694dab5b4d3f49f55bd83b9fb405b0f119b
Reviewed-on: https://dart-review.googlesource.com/34460
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 22:04:00 +00:00
Régis Crelier 0c2793b3db [VM runtime] Implement support for _extractTypeArguments in the VM (fixes #31805).
Update status files.

This cl includes implementing these two features on all platforms:
1) Support calling generic functions via DartEntry::InvokeFunction().
2) Support native generic functions. These are currently allowed, but type
   arguments are ignored, and therefore not accessible from the C++ side.

Change-Id: Id39e8ca46c2ba1ba3d46946c16712a8572ff64ea
Reviewed-on: https://dart-review.googlesource.com/34023
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-01-12 21:32:20 +00:00
Johnni Winther d539c78af1 Add source information to parameter stubs.
Change-Id: If942cc13203752361c3104c89190d75979073498
Reviewed-on: https://dart-review.googlesource.com/34440
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 21:23:40 +00:00
Harry Terkelsen 33952ad8f6 Add a small repro for dart2js runtime type issue
Change-Id: Ibe8720565814dd9f7b7c4ea4370548a64a880f21
Reviewed-on: https://dart-review.googlesource.com/34028
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-01-12 21:13:40 +00:00
Konstantin Shcheglov 59cbc09523 Infer () => null as returning Null.
Bug:
Change-Id: I5bf1f7c55825ddb6202422fc0025d983914c4823
Reviewed-on: https://dart-review.googlesource.com/34420
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-12 21:02:20 +00:00
Siva Chandra 4b73d12082 Link kernel service dill with the command line dart executable.
This linked in kernel service dill file will be used to load the kernel
isolate if the attempt to lookup the kernel service snapshot fails. The
kernel service snapshot is looked up in the following order.

1. If the "--dfe" option is specified, the file specified is used.
2. If the kernel service snapshot is found next to the executable,
then it is used.
3. If the kernel service snapshot is found in the "snapshots" directory
next to the executable, then it is used.

Change-Id: I5a0e757eb27b26a274b22b4bc36350fee59a100f
Reviewed-on: https://dart-review.googlesource.com/32446
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Siva Chandra <sivachandra@google.com>
2018-01-12 20:40:41 +00:00
Ryan Macnak 9cf7d6fa93 Partial static mode changes for vm-service and tests (part 4).
Bug: https://github.com/dart-lang/sdk/issues/31587
Bug: https://github.com/dart-lang/sdk/issues/31696
Change-Id: I2b37ad97da0520db08f43981fdbc48b094942a0e
Reviewed-on: https://dart-review.googlesource.com/34306
Commit-Queue: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-01-12 20:12:41 +00:00
Stephen Adams 87e5a57b9a Fix dart2js_extra/string_interpolation tests
Old dart2js behaviour is incorrect.
Fasta behaviour is correct as recently specified.

See https://github.com/dart-lang/sdk/issues/30909 for details

Bug:
Change-Id: Ie9b24d19cab81be764cec02baa327283f4a3b3ce
Reviewed-on: https://dart-review.googlesource.com/34225
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 19:21:19 +00:00
Mike Fairhurst 90f9fa5664 Fix #28513 Force an order of LUB/GLB on equivalent Top types.
A fairly internal case, so I ended up guarding it semi-heavily with
asserts, which could go against convention, but seems fairly safe here.

Two tests: One that sanity checks some edge cases & exemplary values,
and another one that checks each combination programmatically. Together
they should be the best coverage; both the reliance of computers and
the simplicity of specific cases.

Should be very easy to pop in the void type here next.

Bug: 28513
Change-Id: Id20811a77b4de3f2c4ede7a77e1da5a114432e97
Reviewed-on: https://dart-review.googlesource.com/34305
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-12 18:33:59 +00:00
Konstantin Shcheglov f79596c0ff Switch from ForwardingStub to Procedure.forwardingStubInterfaceTarget.
Fixes #31519

R=paulberry@google.com

Bug: https://github.com/dart-lang/sdk/issues/31519
Change-Id: I0e9634ba6a1413a758ff3376c69d530d4215b512
Reviewed-on: https://dart-review.googlesource.com/34261
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-12 17:54:30 +00:00
Martin Kustermann 84e7bef26d Reland "[VM] Allow the inlining code to inline implicit getters even if a StaticCallInstr is used"
This also changes the implementation of Function::LookupImplicitGetterSetterField to **not** use
token positions for finding the right field, but rather the name.

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

Change-Id: I418c89a1426c33b2bfa8adc00534511657af51f1
Reviewed-on: https://dart-review.googlesource.com/34141
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-12 17:18:29 +00:00
Konstantin Shcheglov d380e888b5 Every enum has toString() method.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I48ca2da1099bee9cab7a8661d0b7be67eb568793
Reviewed-on: https://dart-review.googlesource.com/34307
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-12 16:59:20 +00:00
Martin Kustermann fd16b58955 [VM] Allow intrinsification of implicit field getters in checked/strong mode
Since implicit field getters have the receiver as the only argument
(on which don't have to perform any type checks), we can allow
intrinsification of implicit getters even in checked/strong mode.

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

Change-Id: If08c6ee33818ab513a9dbf1457fede0eeb8c4404
Reviewed-on: https://dart-review.googlesource.com/34142
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
2018-01-12 16:50:09 +00:00