Commit graph

53552 commits

Author SHA1 Message Date
Dan Rubel c284670f54 Refactor fasta parse class member modifiers
This CL moves modifier parsing out of parseMethod and parseFields
into parseClassMember and before findMemberName.
This is the next step in evenally removing findMemberName
and improving top level declaration recovery.

This CL also removes unused parameters from several fasta parser events.
Per discussion with Peter, tokens will be added back to each of these
events in a subsequent CL.

Change-Id: I4ffc0622b75581b5fdb527feeb19ae0b68c4eeaf
Reviewed-on: https://dart-review.googlesource.com/36820
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-26 13:39:08 +00:00
Lasse R.H. Nielsen c10d7f402c Update tests to not assume Expect.throws catches ExpectException.
Change-Id: I283a5286b15e479eb3fa507b1dc69189f5f42888
Reviewed-on: https://dart-review.googlesource.com/36882
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2018-01-26 12:25:03 +00:00
Jens Johansen 29c76d7604 [kernel] Update Windows status files take #5
Change-Id: Ia3bc3affba3100453846678b03d2a83402187418
Reviewed-on: https://dart-review.googlesource.com/36881
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-26 08:46:23 +00:00
Jens Johansen d944e19da7 [kernel] Update status files
Change-Id: I50e1f25a27e4e406f0e2b2b66c8607190227ae45
Reviewed-on: https://dart-review.googlesource.com/36920
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-26 08:24:58 +00:00
William Hesse c5306595f4 Update status for Chrome 64 and Firefox 59 on linux
TBR: athom@google.com
Change-Id: I96dc0dddaeb590d3852dccc23be73254fab51a5f
Reviewed-on: https://dart-review.googlesource.com/36861
Reviewed-by: William Hesse <whesse@google.com>
2018-01-26 01:26:02 +00:00
Paul Berry d68fbb7454 Add new warning StrongModeCode.TOP_LEVEL_INSTANCE_METHOD.
This warning fires if a top level initializer depends on the type of a
method whose type is subject to type inference.  This warning is
needed because the analyzer implementation of top level type inference
doesn't guarantee that the method type will be inferred prior to the
initializer, so it's possible that type inference will produce an
incorrect result.  See #31925 for more details.

Change-Id: Iec048d2638877c16ae11a87eae0382b7352f726c
Reviewed-on: https://dart-review.googlesource.com/36841
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-26 01:10:00 +00:00
Alexander Thomas c508eb6f29 [infra] Add support for to status.dart results
Change-Id: I17294da087152d7c9d5bc04c9146d05bfac1e6a9
Reviewed-on: https://dart-review.googlesource.com/36843
Reviewed-by: William Hesse <whesse@google.com>
2018-01-26 00:15:11 +00:00
Ryan Macnak a369b88497 Teach package:kernel and patch_sdk.dart about dart_runner.
Change-Id: Ie39e278031b8d484086f3b4ad0c2eb323a152fc3
Reviewed-on: https://dart-review.googlesource.com/36489
Reviewed-by: Zach Anderson <zra@google.com>
2018-01-26 00:05:08 +00:00
Konstantin Shcheglov 32cfb6a9e3 Implement wrapping Widget into some single-child container.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: If6f393c0eb80ba2fb670eda19ff7dfde845e2f73
Reviewed-on: https://dart-review.googlesource.com/36780
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-25 22:21:11 +00:00
Paul Berry 68fd556216 Rework _validateTopLevelInitializer to use a visitor.
The old implementation only validated a whitelisted set of use cases,
so it would often miss important subexpressions.  The new
implementation is based on a RecursiveAstVisitor so by default it
visits all subexpressions; we use overrides for the specific cases
where it's not necessary to visit all subexpressions.

Fixes #31963.

Change-Id: Icb9833f51bef26874f655cd2ba4ffc509bfffef3
Reviewed-on: https://dart-review.googlesource.com/36803
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-25 21:47:46 +00:00
Siva Chandra 6a6103b9c1 Do not compile script to kernel if the isolate was not created from kernel.
This change, and the code introduced, is probably not going to be required
once the platform kernel file is linked into the executable.

Change-Id: I24a837c3a633a625145cf90ff83d3e51b3d23eb6
Reviewed-on: https://dart-review.googlesource.com/36720
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Siva Chandra <sivachandra@google.com>
2018-01-25 18:18:25 +00:00
Lasse R.H. Nielsen 87e7861ec8 Make Expect.throws not accept an expectation error as a throw.
Some small clean-up, and fixing one test that relies on the changed behavior.

Change-Id: Ibfed0c41c3121f2dc13a0d67b7534693165eb5e2
Reviewed-on: https://dart-review.googlesource.com/36620
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-25 13:24:03 +00:00
Jens Johansen b2e105ac17 [kernel] Update Windows status files take #4
Change-Id: I76aae5cedd1be2f676ffcc794db623fb6ff26dcc
Reviewed-on: https://dart-review.googlesource.com/36760
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-25 12:36:32 +00:00
Lasse R.H. Nielsen d2aae0a45f Fix tests in language_2 to test strong mode semantics.
Change-Id: I74dced985475fe48c900bfd6b6cece85f64b54cd
Reviewed-on: https://dart-review.googlesource.com/36581
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-25 10:57:42 +00:00
Martin Kustermann cf8a6063f8 [VM] Improve AssertAssignable/InstanceOf by having a fast case for non-generic, instantiated types
When the type to test against is instantiated and has no type arguments
there is a high probability that we receive instances of that class or
subclasses at runtime.

This CL therefore extends the fast-path of AssertAssignable/InstanceOf
by checking whether the instance class id is within the cid ranges that
directly/indirectly implement/extend the type to test against.

Currently we have an almost depth-first preorder numbering of class ids
in AOT, but there are exceptions.  So each class can have a number of
cid-ranges as subclasses / classes which implement it's interface.

This seems to improve performance of dart-aot-v2
  * flutter stock build by 15+%
  * DeltaBlueClosures by 10+%

and reduces code size on
  * flutter gallery by -3%

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

Change-Id: I07dd91589cc3fcd8c5952bdba339e2e2a459e08e
Reviewed-on: https://dart-review.googlesource.com/35620
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-25 07:13:42 +00:00
Dan Rubel 2be7b9566f Refactor fasta parse top level modifiers
This CL moves modifier parsing out of parseTopLevelMethod
and parseFields into parseTopLevelMember and before findMemberName.
This is the next step in evenally removing findMemberName
and improving top level declaration recovery.

* New ModifierRecoveryContext2 which will soon replace
   both ModifierContext and ModifierContext2
* Remove now unused TopLevelModifierRecoveryContext
* Remove unused beginTopLevelMethod event arguments
* Remove unused handleNoType event arguments
* Address comment in https://dart-review.googlesource.com/c/sdk/+/36500

Change-Id: I6842a83d9604cdcca611d7209e3ebcc78de469d3
Reviewed-on: https://dart-review.googlesource.com/36680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-25 00:05:46 +00:00
Matt Perry 04e91a3ef5 [fuchsia] Use newer ioctl_netc_get_if_info_at.
This replaces the now-deprecated ioctl_netc_get_if_info.

Bug: 31970
Change-Id: If343eed52c7a53e3b85185108582a6abbd9136ed
Reviewed-on: https://dart-review.googlesource.com/36540
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-24 23:22:34 +00:00
Jenny Messerly 46dc1afd9f fix #31897 - wrong number of type arguments should call noSuchMethod
Change-Id: I2a5835bc369c9c4e933a1d53b9ac73f8291264b9
Reviewed-on: https://dart-review.googlesource.com/36488
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-24 20:51:42 +00:00
Jenny Messerly 2a0f060bcb fix printing of generic function bounds
This changes DDC/K to handle `dynamic` and `Object` equivalently at
runtime for the purposes of printing `extends` bounds of generic
function types.

Technically speaking DDK is the correct one (`<T>` is short for
`<T extends Object>` in the spec, not `<T extends dynamic>`).
In contrast DDC/Analyzer treat the absence of a bound as `dynamic`.
At runtime this distinction will disappear in Dart 2, and we may
stop tracking it completely, so this change is a step towards that.

Change-Id: Ie1ead2ad55b72718485fe0817456981873a6d04f
Reviewed-on: https://dart-review.googlesource.com/36563
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-24 20:19:08 +00:00
Paul Berry 1891084dec Generate fresh type parameters prior to inferring an invocation.
This is necessary to avoid confusion when a generic function or method
recursively calls itself.

Fixes #31759.

Change-Id: I4e3be2093e9d6b81f084250435ea7493ca6b2464
Reviewed-on: https://dart-review.googlesource.com/36363
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-24 19:41:58 +00:00
Jenny Messerly 0073457000 fix first_class_types_test to work for Dart 2
Change-Id: I9f6665e1afd4d783158b170d62fcb2636ea3a081
Reviewed-on: https://dart-review.googlesource.com/36560
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-01-24 19:33:00 +00:00
Sam Rawlins da1f52592e Bump quiver to 0.28.0 for a Dart 2.0 core libs fix
Change-Id: Ic06d1abca75b45a37d148a4b6c5d3d3eead31b43
Reviewed-on: https://dart-review.googlesource.com/36124
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-24 18:54:48 +00:00
Zachary Anderson c8f1af91a1 [dart:io] Update changelog for ProcessStartMode.INHERIT_STDIO
Change-Id: I917152a42c3054021047724d49624dcee77481dc
Reviewed-on: https://dart-review.googlesource.com/36565
Reviewed-by: Kevin Moore <kevmoo@google.com>
2018-01-24 16:39:57 +00:00
Paul Berry 314b89e11d Update the analyzer to require noSuchMethod overrides to be concrete.
See 38dcb10543 for details.

Change-Id: I00608f7106e1b37cde81b8145d8d748f8cd97804
Reviewed-on: https://dart-review.googlesource.com/36520
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-24 13:55:18 +00:00
Jens Johansen 2f2d6b5cfb [kernel] Update Windows status files take #3
Change-Id: I2012724893e7366b36ad05b6d7942e9bad58ced2
Reviewed-on: https://dart-review.googlesource.com/36600
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-24 13:04:39 +00:00
Dan Rubel d5bd271430 Refactor modifiers in parseFields
This is the next step towards removing findMemberName
and improving class member and top level declaration
recovery.

* Remove modifiers from findMemberName results
* Inline modifier parsing in parseFields
* move non modifier recovery out of ModifierRecoveryContext

Change-Id: I9cb4abd7632021720ba184440f0b1af382e72794
Reviewed-on: https://dart-review.googlesource.com/36500
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-24 12:18:28 +00:00
Jens Johansen 57a3368b7f [kernel] Update Windows status files take #2
Change-Id: I41d78a6bbfb66dc0a8ce399b79890f7ed851dd39
Reviewed-on: https://dart-review.googlesource.com/36580
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-24 09:06:51 +00:00
Konstantin Shcheglov 6393a247fc Add support for boolean/integer attributes.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I574931e558d45370c33a1d7626e17b5fb5e60480
Reviewed-on: https://dart-review.googlesource.com/36561
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-24 05:49:35 +00:00
Siva Chandra b47a5b2da9 Cleanup how isolate creation callback flow decides to load a kernel program.
The isolate creation callback flow was using DFE::kernel_file_specified()
to decide whether to load kernel program or not. However, since this flag
is not isolate specific, it was causing problems in the case where a dill
file was passed as the main dart program; the other isolates, even if
they were loading a snapshot, were looking for a kernel program.

This change was originally submitted as
"Make the decision, on whether to start the kernel isolate, liberal." It
was reverted due to failures on simdbc bots. This change is another
attempt which fixes those failures.

Change-Id: I096445faf470e77ab8f7cc810082891dcede5b60
Reviewed-on: https://dart-review.googlesource.com/36125
Commit-Queue: Siva Chandra <sivachandra@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-01-24 01:40:37 +00:00
Siva Chandra 2f9f2017fb Get runtime/bin/loader.cc in sync with kernel_service.dart.
This change also includes: Return error if --kernel-binaires is not
specified when compiling source to kernel using dfe.

Change-Id: I29a98a17e111421e046c8de51580c5a6cba9df3b
Reviewed-on: https://dart-review.googlesource.com/36521
Commit-Queue: Siva Chandra <sivachandra@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-01-24 01:03:37 +00:00
Zachary Anderson 6e605c3d86 [dart:io] Fix process_inherit_stdio_test
Change-Id: I49a15bc559879e6f07895caacd7e8ab3b25e6b20
Reviewed-on: https://dart-review.googlesource.com/36522
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-24 00:00:14 +00:00
Jenny Messerly 4532c99730 fix covariance checks for DDK, and setters in DDC/K
Change-Id: I388f58eb918110494d70eeb34f1dae68184195ee
Reviewed-on: https://dart-review.googlesource.com/35840
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-23 23:48:06 +00:00
Zachary Anderson 6523896c6f [dart:io] Adds ProcessStartMode.INHERIT_STDIO
Adds a ProcessStartMode in which the child process inherits the stdio
handles from the parent.

Change-Id: Ibe7b8ae08caccaed827ae0a911a3cced7803cb6b
Reviewed-on: https://dart-review.googlesource.com/36362
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-23 22:50:06 +00:00
Jenny Messerly 5de9c20fb0 fix #31434 - recursive generic classes
Change-Id: I5a30de9e7d48eccacddee621c94088dbd65cc77b
Reviewed-on: https://dart-review.googlesource.com/36381
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-23 22:11:27 +00:00
Jenny Messerly a5dbba427b fix scoping bug in DDK helper function
I've removed this helper as it appears to be premature optimization.

Change-Id: Ib1a20171a62e4141d902ad3ad0eaecaaa0c75583
Reviewed-on: https://dart-review.googlesource.com/35809
Reviewed-by: Vijay Menon <vsm@google.com>
2018-01-23 21:39:27 +00:00
Sigmund Cherem 33ea67b3a3 One more round of status fixes
TBR=johnniwinther@google.com

Change-Id: I44fd9160879311e845ad1d5e068506662b420e75
Reviewed-on: https://dart-review.googlesource.com/36491
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-23 20:30:14 +00:00
Jenny Messerly 5d02dd5929 fix mixins in DDK
This brings back the mixin unrolling code used by DDC's Analyzer backend,
because it handles features kernel's unrolling does not:
- constructor forwarding for all constructors
- mixin field initializers
- mixin constructor calls
- mixin aliases (mixin applications that are themselves valid mixins)
- covariance check stubs for mixin aliases
- mixable classes that have an unnamed factory constructor but no generative
constructors

Change-Id: Ibb49ec45d0feff0bd0a2a0ba18a346bda75db882
Reviewed-on: https://dart-review.googlesource.com/35810
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-01-23 19:36:46 +00:00
Sigmund Cherem 266e283072 One more set of fixes
TBR=johnniwinther@google.com

Change-Id: Ifc6d225a4d86821e4a90d41d3ae5d8e12e1ff616
Reviewed-on: https://dart-review.googlesource.com/36486
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-23 19:19:15 +00:00
Sigmund Cherem 7f72ad6c18 Fix again
We are still running _2 suites on the legacy compiler, so I incorrectly removed
entries in the previous "fix".

TBR=johnniwinther@google.com

Change-Id: Ie251393e53d35c2eb2f7a5bd301e3cb837fce8a5
Reviewed-on: https://dart-review.googlesource.com/36482
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-23 18:32:18 +00:00
Sigmund Cherem 729ebbe043 Fix status files some more
The _2.status files are not normalized properly, so our script missed this.

We need to follow up with some additional fixes to the .status files and to add
to our script a way to detect these issues (typically whenever we have a "Pass"
and can't find the line that said otherwise).

TBR=johnniwinther@google.com

Change-Id: Icd4a6c003df86c0bf5c0894e971be13bc927f4ba
Reviewed-on: https://dart-review.googlesource.com/36480
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-23 17:06:36 +00:00
Paul Berry d031b0aecf Remove unnecessary typeNeeded booleans from type inference engine.
Change-Id: I35039a5662e48a983b214ceb3732c3e900396db4
Reviewed-on: https://dart-review.googlesource.com/36380
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-23 15:22:58 +00:00
Jens Johansen 827573fc2c Status file updates after changes to Windows crash-sniffing
Change-Id: I1fbf5ca58d1bb99811e622896ceb0d7177c87b43
Reviewed-on: https://dart-review.googlesource.com/36400
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-23 14:35:26 +00:00
Sigmund Cherem 444f65315e Pass --strong to dart2js when running in strong mode
Change-Id: I6ddf9e51547e2c7163c82e4433ce3f0fb527173a
Reviewed-on: https://dart-review.googlesource.com/36382
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-23 08:23:26 +00:00
Jens Johansen 51f50fa922 [test.py] Refactor and change crash-sniffing (take #2)
test.py looks at the status code to find out if a test crashed or not.
On linux everything < 0 is a crash, but on Windows a bit pattern is
in play.
It is unclear why this is the case, but some test currently 'Fail'
(instead of the expected 'Crash') on Windows because of exit code
-1073740791 (aka 3221226505 aka 0xC0000409 aka
STATUS_STACK_BUFFER_OVERRUN
(https://msdn.microsoft.com/en-us/library/cc704588.aspx)) indicating
that something isn't quite right with the crash-sniffing on Windows.

This CL changes it to indicate a crash if the exit-code is "0xC0...",
"0x80..." or "0x40..." as listed by
https://msdn.microsoft.com/en-us/library/cc704588.aspx.

Change-Id: I6c692173c3c3b5fb6c857a55a739d8f136d662bf
Reviewed-on: https://dart-review.googlesource.com/36261
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-01-23 06:58:08 +00:00
Konstantin Shcheglov 402af4db46 Add a new experimental 'flutter' domain and move FLUTTER_OUTLINE there.
R=brianwilkerson@google.com, devoncarew@google.com

Change-Id: I8f829f10a630e38c5a3f1638d077e37832a08daa
Reviewed-on: https://dart-review.googlesource.com/36320
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-01-23 00:57:55 +00:00
Erik Corry 42e2a555be [VM] Reland 'Use quadratic probing in hash_table.h'
This was reverted due to https://github.com/dart-lang/sdk/issues/31944 which
now looks unrelated. Originally reviewed at
https://dart-review.googlesource.com/c/sdk/+/34760

R=kustermann@google.com

Change-Id: I78d54e9081bbeac36d01a843f4d281a076c00748
Reviewed-on: https://dart-review.googlesource.com/36340
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Erik Corry <erikcorry@google.com>
2018-01-22 22:54:45 +00:00
Adam Barth 85b73ddd40 [fuchsia] Migrate from zx_time_get to zx_clock_get
Change-Id: I498d751037ae240cb639d30adc125e0b14d756ef
Reviewed-on: https://dart-review.googlesource.com/36321
Reviewed-by: Zach Anderson <zra@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
2018-01-22 22:46:35 +00:00
Erik Corry 5c7804fe32 [VM] Add SIMD arrays to raw snapshot code
This has not been done earlier because no decision was made about
how to handle endian issues. This change assumes the same low
level format at either end of the serialization/deserialization.

R=kustermann@google.com

Bug: 21818
Change-Id: I5d97c1d0b89badf9cb972f0b1977eba0d1c0b9f8
Reviewed-on: https://dart-review.googlesource.com/35962
Commit-Queue: Erik Corry <erikcorry@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-01-22 22:09:59 +00:00
Zachary Anderson 71d356d5fe [fuchsia][dart:io] Allow the embedder to specify handles for stdio
The content handlers on Fuchsia can potentially give each Isolate
different handles to use for stdout and stderr. This change provides
a hook for an embedder to call to supply the handles to Dart, and
removes hardcoding of stdio handles to 0, 1, 2.

Change-Id: Ic03b77adc9a911e9c754562fa6a91f9929e10dfc
Reviewed-on: https://dart-review.googlesource.com/36122
Commit-Queue: Zach Anderson <zra@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2018-01-22 21:09:39 +00:00
Brian Wilkerson 86b27dd577 Add a hint for unused labels (issue 31930)
Change-Id: I0d2f41fdb8a7399e6664dcf57503de84991c075d
Reviewed-on: https://dart-review.googlesource.com/36181
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2018-01-22 18:34:28 +00:00