Commit Graph

507 Commits

Author SHA1 Message Date
Johnni Winther 84c2a50aa0 [analyzer,cfe,dart2js] An indices to annotations preserve original order in id_generation
Change-Id: I0894baa6771b1c5a11a33007feebd1886aea032d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130704
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-01-10 11:51:17 +00:00
Johnni Winther c1dc711ee7 [analyzer,cfe,dart2js] Use id_generation to show annotation diff
Change-Id: I1f1d96b3be023e9e9cfa25425f57a540edad6f6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130703
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-01-10 11:51:17 +00:00
Jens Johansen 201e6a86e1 [parser] Fix 'late' used as 'var'
Fixes #39858.

Change-Id: Ic2721fc56d184b3d0ad3082a7fa9cc45d6bbf45d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129060
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-01-10 10:46:17 +00:00
Jens Johansen b4a83427fd [parser] bang before type arguments
Fixes #39776.

Change-Id: If830e5d9d8fd68e98eb757f21e6c361fc496c931
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128402
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2020-01-10 09:53:19 +00:00
Paul Berry 77e0d7f400 Prepare to publish analyzer 0.39.4
Change-Id: I0be9c2601dc1cc2fa3aa2c17bda03d04a841c266
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130732
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Janice Collins <jcollins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-01-08 22:48:05 +00:00
Paul Berry b6ab691389 Flow analysis: adjust nomenclature to match spec draft.
Two renames, to make the implementation more closely match
https://github.com/dart-lang/language/pull/763:

- typesOfInterest -> tested
- promotion chain -> promoted types

Change-Id: If2c0d72c81bee45ef94fc4fb04000f5c9ed84f26
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130570
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-01-08 17:28:15 +00:00
Paul Berry c92e15f796 Sort methods in flow_anlalysis.dart
Change-Id: I3260796b637c32e8ce1a50a9a94e49938bc1bc12
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130569
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 17:28:15 +00:00
Paul Berry ed1e5220c2 Remove deprecated "author" section from _fe_analyzer_shared pubspec.yaml.
This addresses a nuisance warning when publishing the package.

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

Change-Id: I7ba813a827af08033c7884153533cb19aa8e3211
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130624
Auto-Submit: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 17:20:10 +00:00
Paul Berry 721670fc2d Stop using package:expect in _fe_analyzer_shared.
_fe_analyzer_shared is published on pub so it isn't appropriate for it
to use package:expect (which isn't published at all).  All we were
using it for was a few string equality checks; simply using operator==
and throwing an exception is an adequate replacement.

If, in the future, we decide that we really need the additional
functionality provided by package:expect, we can always convert the
test to use package:test, and then make use of the `expect` method
provided by package:test.

Partially addresses https://github.com/dart-lang/sdk/issues/40007.

Change-Id: Ib7827db0cdb480feacc454a3aa660ea4c6e7cfd7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130623
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2020-01-08 16:28:50 +00:00
Johnni Winther 008e6ae60b [analyzer,cfe,dart2js] Add skipMap to id-testing
This supports skipping tests per configuration, for instance to add
nnbd-only tests and skip these in non-nnbd configurations.

Change-Id: I7eaebaa16d67129ce60cffa3594c766ff5e5bc66
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130376
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-01-08 14:47:28 +00:00
Johnni Winther d2fcd678fd [analyzer,cfe,dart2js] Improve offset of generated library/class/member annotations
Change-Id: I76fea5f3479b5185433ec56efefb89071676e1a4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130375
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-01-08 14:47:28 +00:00
Dmitry Stefantsov 0081dfc706 [cfe] Report error on required named parameters having default values
Bug: http://dartbug.com/39660
Change-Id: I0230d5b9f0448964ba9ad83a7adf46acfee9edcf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130372
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-01-08 09:17:09 +00:00
Johnni Winther 64dae246db [dart2js] Use CFE constant evaluator for non-required constants
Change-Id: Id363332caf29e98307553ec048c2dea36c739d95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129701
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2020-01-08 08:21:59 +00:00
Paul Berry 72a0324b67 Prepare to publish analyzer 0.39.3
Change-Id: I4d5ded23383b1a823759a31dd1d3c44979e79fb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130480
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2020-01-07 20:55:46 +00:00
Johnni Winther 969fa962da [analyzer,cfe,dart2js] Do not generate annotations for empty values.
Change-Id: I0efa6287a44e340f9dc242b4ffc84fc8723e1049
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129718
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-03 20:12:39 +00:00
Johnni Winther e3a20bf361 [analyzer,cfe,dart2js] Support annotated code generation
Add support for generating annotations from actual data using
option -g

Change-Id: I88d9cdb62a38d579234b15097c9e9bb3d81ebe8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129708
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-03 13:57:39 +00:00
Konstantin Shcheglov 36ded5cdd9 Issue 39875. Don't report unchecked nullable when resovled to an extension with nullable extended type.
Bug: https://github.com/dart-lang/sdk/issues/39875
Change-Id: I8beff226da4b301b0d2903788b44705985c89823
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129323
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-12-20 23:39:44 +00:00
Johnni Winther 904a822432 [cfe+analyzer] Use TryStatement for try/catch and try/finally in CFE
This includes an alignment of assigned variables info collection between
analyzer and cfe by always collecting assigned variables info for both
the try statement and the try block.

Change-Id: I789527adc24da025a85e73cdd98392efe7fc97bd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128407
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-12-16 13:55:50 +00:00
Johnni Winther 77d066fd7d [cfe] Report errors on nnbd features used in opt-out libraries
Change-Id: I8131464fff9f09a90083581f10933430133cfaed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128406
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-12-16 09:02:17 +00:00
Johnni Winther 818ec6db92 [cfe] Implement nnbd-top-merge
+ and use nnbd-top-merge and legacy erasure in hierarchy computation

Change-Id: I4bf06ce8d3c68a9926865ebf84b24b4029828d73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/128065
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2019-12-13 17:19:59 +00:00
Jens Johansen e2d5aa352c [parser] Allow ?? after Type?
Fixes #39697.

Change-Id: I65c762304881038b205f1221d6cfdd1125ba71e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127890
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-12-12 06:59:53 +00:00
Jens Johansen 2a886d257f [parser] Allow '?.' and '?.[' after '!'
Fixes #39723

Change-Id: Ic98b7ddefcbbfefe33e6306b8fb4215419355f6e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127887
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-12-12 06:59:33 +00:00
Jens Johansen b3861c8078 [CFE] Fix bug in DebugStack
Change-Id: I606d6b5796604cd513df0cf7b9770006e2b26c33
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127891
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-12-11 12:20:29 +00:00
Konstantin Shcheglov 52dc7690ef Issue 39667. Use flow analysis in IfElement.
Bug: https://github.com/dart-lang/sdk/issues/39667
Change-Id: I4528869a8d39d1b27c0cdf21ab20173bdb0efbc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127482
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-12-07 03:32:14 +00:00
Paul Berry d85eccb186 Prepare to publish analyzer 0.39.2.
Change-Id: I502e5256eb9f469e2d18a911624a3f8ebf0df972
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127440
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Janice Collins <jcollins@google.com>
2019-12-06 17:46:20 +00:00
Erik Ernst 80a400297a [cfe] Add initial version of support for nonfunction-type-aliases
Change-Id: I9ff3f0c18a31bd1e0d16ba8b6ccd0cc261250c11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127005
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-12-06 13:35:30 +00:00
Johnni Winther 42a4442521 [cfe] Handle promotion of Null to Never
Change-Id: If784cc315e0ea179e98df45a06d4a99179e4c197
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127140
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-12-04 12:41:38 +00:00
Johnni Winther 441a17d1f9 [cfe] Fix flow analysis for type parameter promotion, initializers, switch continue and for loops
Change-Id: Ia0bbbeb7f968961846a30a31471399bef9065842
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127003
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-12-03 14:28:48 +00:00
Jens Johansen 97d6ac21d5 [CFE] Spell check on kernel src; presubmit on kernel & _fe_analyzer_shared
Change-Id: I3ca7c856bdf9e6ad6e4474c804fd4f7f6b23571e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126730
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-12-02 13:00:47 +00:00
Johnni Winther 659b32ffc8 [cfe] Handle chained null shorting and null aware if-null set
Change-Id: I39d2448a957ca7f4f3d1f027e543f773b300ce9b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/126645
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2019-11-28 12:44:55 +00:00
Aske Simon Christensen e84af9b761 [cfe] Disallow annotations on type parameters of function types
Also, do not copy annotations on type parameters of functions into
their inferred types.

See https://github.com/dart-lang/language/issues/656

Change-Id: I1460007645a32ac56a505b23ab3ee8a457c3f994
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123732
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2019-11-25 14:55:55 +00:00
Paul Berry e5ec9e2f6a Migration: improve quality of debug output when finish is called.
This ensures that if finish throws an exception while using
FlowAnalysisDebug, the exception will be printed.

Change-Id: I62ac634a838188485488777710405be9fddd6edf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125981
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-11-21 18:59:05 +00:00
Erik Ernst 6808c563aa Adjusted front end to allow non-function type aliases
This change does not enable much (because the backends do not support
non-function type aliases), but this change makes it possible to work
on this feature in dart2js code, without making the changes to the
front end and the changes to dart2js part of the same cl.

Change-Id: I0d8a27a0e87cf6908f914b2c10d97ef3d02ebec5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125961
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-11-21 15:40:45 +00:00
Brian Wilkerson 1f933abcee Convert a compile time error into a parse error (issue 39389)
Change-Id: I115c7bb4ab05f8c6e9ddc566985126a1b9a09842
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125621
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2019-11-19 18:25:29 +00:00
Dmitry Stefantsov d9d5fbc109 [cfe] Create TypeParameterTypes with default nullabilities
Change-Id: I85be937240ba5cc39840e78f374902c1e36521a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124327
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2019-11-19 11:22:43 +00:00
Jens Johansen edbff4eae7 [CFE] Encapsulate 'Stack' and create DebugStack as an option
Change-Id: Ib3dd188e3b2c65d6e6824487ae7794fe9214bfbb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125264
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-11-18 12:44:13 +00:00
Konstantin Shcheglov a64f6b81da Exclude test/inheritance/data/ from analysis.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I60d142ecb6bb89b847f9e841d378a5fcff69507a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/125280
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-11-14 17:33:07 +00:00
Johnni Winther f443bc918e [cfe] Add tests for inheritance from opt-out libraries
Change-Id: If139945dfdd808da0c24ac550ecfa235b41d3c23
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123737
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2019-11-13 10:08:08 +00:00
Jens Johansen 48f0b83ff2 [CFE] Allow ! in cascade
Fixes #39286.

Change-Id: I4e7270dacf7bc43accae4d45d26146cfb7d2b1ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124330
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-11-11 09:44:12 +00:00
Johnni Winther 9c983d2ee3 [cfe] Support extensions via prefix
Change-Id: I6c1e69e5a5c83f5177754a350f5efbca9384972b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124540
Auto-Submit: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2019-11-08 19:53:00 +00:00
Johnni Winther 462a448ac8 [cfe] Integrate definite assignment, nullability and type promotion analysis
Currently not handled: null-aware and break/continue

Change-Id: I61b3ef92c974a2e98a010e091ba81cbefa0f6069
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124127
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-11-06 12:28:52 +00:00
Jens Johansen fe3afde2eb [CFE] Parser: Don't report (recovered) operator as endClassConstructor
Before this CL any method with initializers would be ended with a call
to listener.endClassConstructor.
If we know it's an operator, though, we shouldn't: The listener has
most likely created a specific operator name and should't call it a
constructor.

Bug: 39230
Change-Id: I6ee79ba1907cb3932c461e0b00937af23b5b5edb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/124121
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-11-06 09:42:37 +00:00
Jens Johansen c75e5e4cf4 [CFE] Fix assert in parser
Change-Id: Iee9059c1f7c87191f4d4551c8c9e50766d0a520f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123731
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2019-11-04 08:05:52 +00:00
Johnni Winther a996783de5 [cfe+analyzer] Move StackListener to _fe_analyzer_shared
Change-Id: I7e0ebef15b904afc14ed3b1c0f72cde5389d9c59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123730
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-11-02 11:21:49 +00:00
Jens Johansen 5965789b92 [CFE] Fix bug in lint test
Change-Id: Ia96bb796da4c7f966fe808499388c2058c20b841
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123726
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-11-01 14:13:42 +00:00
Paul Berry 2ad5af1e13 Move resolve_relative_uri.dart into _fe_analyzer_shared
Change-Id: I2d9cc3988fd16ce1aabd6881c825d1917bb16848
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123861
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2019-11-01 13:54:22 +00:00
Paul Berry c4b6df5009 Move ID testing infrastructure into _fe_analyzer_shared.
Change-Id: I9f2692dbe750f3c31f8c86e86fe732f34e166517
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123860
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2019-11-01 12:39:00 +00:00
Johnni Winther 3e5b3b15a0 [cfe] Add the initial functionality of reachability analysis
Change-Id: Ifbd73805b1f7ecba12c68c760b6adccde2313cbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123720
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-11-01 12:08:30 +00:00
Johnni Winther 00c2962db8 [cfe+analyzer] Move messages, scanner and parser to package:_fe_analyzer_shared
Change-Id: I4fa87aee65f30a9868a6cf8f0342591869ece7ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123663
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2019-11-01 09:37:57 +00:00
Konstantin Shcheglov 489591068b Revert "Exclude flow_analysis/data directories from analysis."
This reverts commit a00376349a.

Reason for revert: Paul already landed similar change.

Original change's description:
> Exclude flow_analysis/data directories from analysis.
> 
> Change-Id: I2bde938cf6fd14c65fdf281e4164c32884fff695
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123760
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>

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

Change-Id: I244f3c3b16f6432d1957f971854525c04db41b8d
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/123687
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2019-10-31 18:22:08 +00:00