Commit Graph

10502 Commits

Author SHA1 Message Date
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
Konstantin Shcheglov b38238888a Issue 37122. Fix for downwards inference for FunctionExpressionInvocation.
Bug: https://github.com/dart-lang/sdk/issues/37122
Change-Id: Ie24f3ed5f1d22f2c226143f183dcc004a3a5afbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130961
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-09 23:41:06 +00:00
Konstantin Shcheglov 22fa09a168 Issue 40033. Fix for 'bool' context type for '!' prefix expression.
Bug: https://github.com/dart-lang/sdk/issues/40033
Change-Id: I2c9020f54f794fb7f009bec22af7753e73271c3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130921
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-09 22:30:46 +00:00
Konstantin Shcheglov 30785388a6 Issue 37122. Fix inference for FunctionExpressionInvocation.
Bug: https://github.com/dart-lang/sdk/issues/37122
Change-Id: I5f8cb9a315bd1231d3cc2275067d11df02194c53
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-09 22:00:16 +00:00
Konstantin Shcheglov 3f099b05bd Extract PrefixExpressionResolver.
R=brianwilkerson@google.com

Change-Id: Icaee778f5135a802940d925eb4ea0dbf892e164d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130886
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-09 20:57:02 +00:00
Konstantin Shcheglov 29f8e0a7bb First steps in cleaning up FunctionExpressionInvocationResolver.
There is more to do around inference, will continue in following CLs.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I7c74a7ddccfdc834883863a2a15c6028cf449f22
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130825
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-09 20:19:26 +00:00
Sam Rawlins dd5fa9cf33 Do not complain about a lone unused private constructor
Change-Id: If721b2c86b8e99018a9b32992a8dab437dac865d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130821
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-09 09:58:03 +00:00
Konstantin Shcheglov d745cab70b Extract FunctionExpressionInvocationResolver.
The code is pretty chaotic (evil) at the moment, and will require
more cleaning in following CL(s). Currently this is just what we had,
moved.

R=brianwilkerson@google.com

Change-Id: I9049521a1f3acaae8149e44cdcb83ad3a0742bb3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130743
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 22:56:10 +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
Konstantin Shcheglov 903966ece4 Extract TypePropertyResolver and use in ElementResolver.
R=brianwilkerson@google.com

Change-Id: Ib7f85a6fbe046b75b228a56f3c64085338a54e89
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130742
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-08 21:23:20 +00:00
Konstantin Shcheglov 02b1b58f6c Inline getType() in TypedLiteralResolver.
R=brianwilkerson@google.com

Change-Id: I0d94837b6b457d7b7f7f121e2870e88081ee583c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 18:47:15 +00:00
Janice Collins f55470fdaf Fix a problem where '?.call()' could propagate a non-legacy type.
BUG=https://dartbug.com/39996

Change-Id: Ifc2eb7040ba70b7cf0da392a30a25e5989c925eb
Fixed: 39996
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130581
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Janice Collins <jcollins@google.com>
2020-01-08 18:44:27 +00:00
Konstantin Shcheglov 68bb711226 Remove now unused 'isNullAware' from ElementResolver.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I50f1e4a1382ce0ee37356e04b4ca74e4d55c0eac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130720
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-08 18:39:11 +00:00
Konstantin Shcheglov 06ce8d4fc5 Inline getType() in TypeNameResolver.
R=brianwilkerson@google.com

Change-Id: I59ce8ae65d88ca90b118362f650e88ab68a35183
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130722
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 18:36:21 +00:00
Konstantin Shcheglov a8397d8bac Replace assertElementTypeString with assertType.
TBR, somehow I missed these invocation sites initially.

R=brianwilkerson@google.com

Change-Id: Iaf372750c5cb3b9d1912037a03092e1d487316ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130721
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 17:51:03 +00:00
Konstantin Shcheglov 5bfabfb4f0 Merge some resolution assertions.
Change-Id: I4a5d79d13d890acd641f302c85c7b0f463a11200
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130660
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 17:30:35 +00:00
Konstantin Shcheglov 1fee7f0263 Remove unnecessary casts to TypeImpl.
Change-Id: I48dcc4a448fa60551905c3d73c8df90a31230738
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130572
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 17:22:30 +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 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
Konstantin Shcheglov e85e203e73 Deprecate DartType.name
Change-Id: If3a967bba976aa78493764513edbb3d406b08d27
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130625
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-08 07:00:59 +00:00
Konstantin Shcheglov 9e7c401d4f InterfaceTypeImpl has one constructor.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Iea88ae0fa035ffa7154460ac61752cf90dc004c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130571
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-08 06:16:23 +00:00
Konstantin Shcheglov accd08fa64 Resolve with Never and Never? receivers.
Change-Id: I388c05d09238a20fc5a84503816b9102c51a573a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130620
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-08 04:07:46 +00:00
Paul Berry cf063d3ba4 Analyzer: add some deprecation messages.
Change-Id: I7acce67a51d74c1a7ab043443169f8a62f33e1d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130568
Commit-Queue: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Auto-Submit: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-08 00:59:29 +00:00
Konstantin Shcheglov b7326f2807 Fix deferredPrefix.loadLibrary() resolution to check for extra arguments.
R=brianwilkerson@google.com

Change-Id: I75cab6bf235110e32e4d9c21d656c12eb42685d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130600
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2020-01-07 22:30:19 +00:00
Sam Rawlins 6d826735af Report unused constructors
Fixes #35108

Change-Id: I639f1165ec626fc0e8eadf6fa501200ec98af053
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127205
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-01-07 21:49: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
Konstantin Shcheglov 64bbddd972 Always return a type from getReadType(), possibly dynamic.
R=brianwilkerson@google.com, paulberry@google.com

Change-Id: I816f7e9b232d342b178a12f59db51704be021108
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130580
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-07 20:41:19 +00:00
Konstantin Shcheglov 94b69ae149 Fix TypeParameterType.== when reloaded elements and recursive bounds.
Change-Id: I648d8461f4909660af91152c780aa6c581a20525
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130463
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-07 18:34:14 +00:00
Sam Rawlins 4c6757a9ff new analyzer compile-time error: load_library_takes_no_arguments
Fixes #38281

Change-Id: I8a626a9e006a988bcd449e6aa89338afc716ad94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129901
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-07 05:20:12 +00:00
Brian Wilkerson 6e8f0e1035 Unify two diagnostics for documentation purposes and improve the highlighting range associated with them
Change-Id: I02ff33cde1d56a24b2eccf782dc8927f02746235
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130440
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-07 01:38:12 +00:00
Brian Wilkerson a96e0bc784 Improve the selection range for return_without_value
Change-Id: I4a1fe0c25d40e5228b2a94af25c6bc671d30a014
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130443
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-07 01:35:22 +00:00
Konstantin Shcheglov 1c7518c1b8 Remove duplicate type substitution in TypeSystem.
Change-Id: I2f0434cffa5a16afc43642455343a514edbeddf0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130320
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-06 16:45:00 +00:00
Konstantin Shcheglov 39f14a000e Rewrite most getDisplayString() to ElementDisplayStringBuilder.
R=brianwilkerson@google.com

Change-Id: I500d0045873a12d550d9ffe302e066a63ba56660
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130221
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-06 16:43:40 +00:00
Sam Rawlins a325691756 analyzer: Add failing test for #38162
Also move return_of_invalid_type tests to their own file.

Change-Id: Ie02acee903dde7cc498d3ecbb1d9f5b0c1691298
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130006
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-01-06 05:15:29 +00:00
Brian Wilkerson 877d6f745d Improve the range selected for const_constructor_with_non_final_field
Change-Id: I168e92c32b581dffcad25804161b56f4d99c1dd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130300
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-05 23:50:22 +00:00
Konstantin Shcheglov b975366803 Directly instantiate none/star collection.
R=brianwilkerson@google.com

Change-Id: I748230e097e703724cd94e9fa8a17832a8b63c0a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130241
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 23:50:12 +00:00
Konstantin Shcheglov d89e8b7fad Remove unused fields from TypeNameResolver.
R=brianwilkerson@google.com

Change-Id: I92fa8f47334d3cd24804225f20b2806585cb0c77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130240
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 23:42:19 +00:00
Konstantin Shcheglov 36fb383a6c Remove unused TypeSystem.instantiateTypeFormalsToBounds2()
R=brianwilkerson@google.com

Change-Id: I7dde98d43f47695565c89c593303fa124a07c5df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130223
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 23:42:09 +00:00
Brian Wilkerson 5323d60b97 Unify two error codes from the perspective of documentation
Change-Id: I53586ba07d3980045a9d869ce33100fcf7c4c604
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130280
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-05 20:59:27 +00:00
Konstantin Shcheglov 08bd1d6be7 Merge instantiating ClassElement(s) in TypeNameResolver into _instantiateElement().
Change-Id: I3d97c9f03a8ccbc85b025191a85042528e80a8c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130201
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-04 19:43:06 +00:00
Sam Rawlins b5834c4261 analyzer: Add failing test for #38200
Change-Id: I38ff8e62574ee86a859364624733a67a6f351b19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129981
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-04 17:20:55 +00:00
Sam Rawlins bebc7d3af5 analyzer: Add a failing test for #38188
Also move tests for illegal_async_return_type

Change-Id: Icd76c1ece456470ce734df2ac6628d5aedcd6e8e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129940
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-01-04 05:21:45 +00:00
Konstantin Shcheglov 76e3faa982 Resolve MethodInvocation(s) with Never and Never? receivers.
Change-Id: I7314efe7ccc352da7a407c3a657a30cc0956580b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-04 01:41:05 +00:00
Mike Fairhurst 6e7a900283 [nnbd_migration] Fix ConditionalModification on IfElement
Change-Id: I1e8ec4bead2aaa9147850d27cd5ac4d9c2a700be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130137
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2020-01-03 23:47:50 +00:00
Konstantin Shcheglov be4acb4cd5 Remove duplication in checking elements in TypeNameResolver.
R=brianwilkerson@google.com

Change-Id: I36b81e80057cab05e5c12818cc19edd53f5071c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130135
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 23:39:55 +00:00
Konstantin Shcheglov 4f2a9e083d Resolve MethodInvocation fully in MethodInvocationResolver.
So, it is not separated into ElementResolver and StatisTypeAnalyzer.

Change-Id: I413a71b703ab93304760e1f912c3d55585411397
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130132
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 21:40:19 +00:00
Konstantin Shcheglov c913b01ec0 Report error during constant evaluation for ForElement.
R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: Ic87094ed1dcfb4e630e3e62b9ed7e7ec8feab2c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130133
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 21:18:59 +00:00
Konstantin Shcheglov b94bad1fca Check for MigrationResolutionHooks directly in StaticTypeAnalyzer and ResolverVisitor.
I want to extract invocation inference into a separate helper, and
perform MethodInvocation resolution as a single step inside
MethodInvocationResolver. So, I want to set `Expression.staticType`
in several places. Using special subclass of StaticTypeAnalyzer does
not fit this intention.

I think `is` check is JIT optimizable well, and during analysis
we will have just one type of ElementTypeProvider.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ie718db35ac9426b35b538b92a2e2177828ae7ad8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130120
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 17:40:19 +00:00
Konstantin Shcheglov 3e961f4e91 Stop using assertHasTestErrors() where possible.
R=brianwilkerson@google.com

Change-Id: I0ab8d2afd27c3a18d4fd49cb0e3864078cc163ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130121
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 16:12:49 +00:00
Danny Tuppeny 2678ee01ac Don't include end of comment markers in TODO range
Fixes https://github.com/Dart-Code/Dart-Code/issues/2181.

Bug: https://github.com/Dart-Code/Dart-Code/issues/2181
Change-Id: I670f8f46ef60d09ec3f1fd743084734048f3cfc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129440
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 15:48:09 +00:00