Commit Graph

250 Commits

Author SHA1 Message Date
Konstantin Shcheglov e97f1bdbf0 Switch analysis_server to language 2.12, so null safety, but opt-out files.
This should allow doing partial migration, specifically protocol files,
which are imported by other libraries, but are a small library cycle
that does not import much outside of it.

Change-Id: I904c05d6d5b444ee9a9dbd1f7ada12aabdcc5165
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/193583
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-03-30 23:39:37 +00:00
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
Danny Tuppeny 44275c6001 [Analyzer] Add support for LSP experimental SnippetTextEdit
Change-Id: Id37a1954c71fb10c4968c5af6a873ad0ef864a5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/191403
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-16 18:40:50 +00:00
Konstantin Shcheglov 9f5f825d96 Check that the element of MethodInvocatio is ExecutableElement.
Change-Id: Ibf414e624b32b6ac5a0b0fde13422db45f875a15
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189262
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Danny Tuppeny <danny@tuppeny.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-03-05 16:50:56 +00:00
Danny Tuppeny bacd31dcdf [analyzer] Flatten capabilities into a wrapper to simplify checking capabilities
Change-Id: I184e8ce3379bbb6ae4d8e81d80979510a8f1f393
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188724
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-04 19:51:09 +00:00
Danny Tuppeny dcc466919f [analyzer] Suggest named args between partially-typed names and values
Fixes https://github.com/dart-lang/sdk/issues/35414.

Change-Id: I847aa87c56de248e8e704790c163de4f83813bbf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/189081
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-04 18:39:49 +00:00
Danny Tuppeny 78dd7a4bb3 [analyzer] Suggest arg names in front of positionals
Fixes https://github.com/dart-lang/sdk/issues/40654.

Change-Id: I329d8b4af9371e8d61c4044bb003f9c22cd72c41
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182783
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-04 18:21:19 +00:00
Danny Tuppeny 0635916aeb [analyzer] Set InsertTextMode.asIs for LSP completions when supported
Fixes https://github.com/dart-lang/sdk/issues/45147.

Change-Id: Id6c758eadf9a79ec9cd285fef9e50a1540cdc280
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188723
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-04 16:44:49 +00:00
Danny Tuppeny d901f7326a [Analyzer] Add code completion for Pub package names
Change-Id: I0fa8fb1c2801e2acb2d2cf75f7efecf4f9058eeb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176120
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-03 17:12:58 +00:00
Danny Tuppeny 5c2afd5e34 [analyzer] Base LSP filterText on displayed label, not inserted text
Fixes https://github.com/dart-lang/sdk/issues/45157.

Change-Id: I13d42a1c37b30c8e4d7969a6a20ed14f9fd1f0b9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188466
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-02 17:41:32 +00:00
Danny Tuppeny f77eba360e [analyzer] Generate completion text more suited to replacements for LSP
Change-Id: Id8c20ea7e1c32759673c32c9f4b363345bc23116
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/188290
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-03-02 16:14:12 +00:00
Danny Tuppeny c4edcc4cfa [analyzer] Support separate insert/replace ranges for completions
Fixes https://github.com/Dart-Code/Dart-Code/issues/2998.

Change-Id: I8e989932c16dc97f704c79c06374c8d1d1881f7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186581
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-23 17:43:11 +00:00
Danny Tuppeny 8f9cdb3b2f [analyzer] Remove LSP fix-all-in-file functionality
To be replaced by new functionality that works with LSP + original protocol.

Change-Id: I59627e2c4e99b0a6aa0eb850168c870e5390e03b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/186360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-22 19:53:39 +00:00
pq 4302f058dd disable legacy fix-all fix creation
Tests to be re-enabled when we wire-up `FixInFileProcessor`.  (Or maybe we want a different approach to testing fix all fixes entirely?  TBD.)

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

Change-Id: I66f83d06801a71143dcc770cc38d9e2f86782264
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185180
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-16 20:50:20 +00:00
Danny Tuppeny c8c49c7cc8 [analyzer] Handle creating new files from code actions
Fixes https://github.com/Dart-Code/Dart-Code/issues/3141.

Change-Id: I44d7f20962512988ff1d54c7b38b6a144f973a58
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/185140
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-16 18:54:39 +00:00
Konstantin Shcheglov 51950ab881 Add Resource.parent2 that returns non-null Folder, add Folder.isRoot
A bigger version of than https://dart-review.googlesource.com/c/sdk/+/184381
This is breaking change, so we do this in steps.

Change-Id: I0c7212a073b605ade56657036543c604651810c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184581
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-02-12 19:09:20 +00:00
pq 2d27b34b06 appliedTogetherMessages for fixable in file fixes
Change-Id: I674f0e79c5d7ce5c44bcbddff8e6866106e860c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184621
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2021-02-12 17:10:23 +00:00
Danny Tuppeny 235292605e [analyzer] Filter code actions returned from LSP server based on params.context.only
Fixes https://github.com/Dart-Code/Dart-Code/issues/2854.

Change-Id: If6036a4361b68ae2daa66b99755dfa9b9a8adcfd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184464
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-11 18:16:20 +00:00
Danny Tuppeny ab8335b4fd [analyzer] Don't fail to initialize LSP server with non-file:// workspace folders/roots
Change-Id: I52fa0620ef563ff0362cb86b24ffc287e8e007c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/184461
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-11 16:10:19 +00:00
Danny Tuppeny 74d8cc9636 Extend analysis server benchmarks to run for LSP too
Change-Id: Ib6522b8faaa5be272d8f97043a7aa1c345ea182c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/182320
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-02-02 22:09:54 +00:00
Danny Tuppeny b94adb2bc2 [Analyzer] Add folding regions for comment blocks
Change-Id: Iafe70e977065dc68230503349b8ba3abe9b4c0c0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179777
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-01-20 16:23:45 +00:00
Danny Tuppeny 15cd98f511 [Analyzer] Add a custom semantic tokens modifier to named parameter labels
Change-Id: I5b5e4030a17bd894872884960d11eaa748c12e5c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/179769
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-01-19 15:51:22 +00:00
Danny Tuppeny f0f4f58728 [analyzer] Use generated names for extracted methods
Change-Id: I2aeaac092bc2222d6116c2e7172e73406bfa2260
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/178988
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-01-13 18:51:38 +00:00
Danny Tuppeny 65af2a0941 [analyzer] Add ExtractLocalVariable to LSP server
Change-Id: I997b9914d0c451e69a914c75da0f313430ba3722
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/178987
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-01-13 18:48:52 +00:00
Danny Tuppeny e5ed69d04d [Analyzer] Add support for LSP semanticTokens/range
Change-Id: Iebd0a5bfca29b51fe6bb309f71c1ee476d4ed9f4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/177702
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-01-06 17:50:11 +00:00
Danny Tuppeny ee2899ed17 [Analyzer] Update DartUnitHighlightsComputer to allow generating LSP semantic tokens directly
This allows additional types/modifiers that cannot be mapped from highlights region (for example where the existing `keyword` region type needs to be mapped into both `keyword` and `keyword.control` to support different colours as the original textmate grammar did.

Change-Id: Ie71b165fa6e4d902c068854cbbba4039ddefe185
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/177605
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-01-06 17:50:11 +00:00
Danny Tuppeny 28523a5e31 [Analyzer] Fix race condition in LSP semantic tokens + re-enable
Change-Id: I52c4eb18dd09e3334f21bbf5fac9ce4e716ea234
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176660
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-01-06 17:50:11 +00:00
Danny Tuppeny 0d878d1d97 [Analyzer] Ensure semantic tokens are sorted correctly before handling overlaps
Change-Id: I10a236d7c911867c654939d25c02208fa465ea3b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176524
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-22 18:15:41 +00:00
Danny Tuppeny 3ee3dac08e [Analyzer] Disable LSP semantic tokens
There's a race condition in semantic tokens that's causing errors that I've yet to track down or reproduce in a test (though can relatively easily reproduce manually).

Change-Id: Icf65ec52e0307ed71f10c74ded120076e4fcd90c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176525
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-18 20:29:15 +00:00
Danny Tuppeny 5f28cb13f8 [Analyzer] Use "variable" LSP semantic token for field declaration/references
Change-Id: I4daef717459cc2d91c642b024f564368576f5512
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176523
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-17 16:59:33 +00:00
Danny Tuppeny eb409d97bc [Analyzer] Fix an issue where LSP semantic tokens may be missing for some "import" keywords
Change-Id: Idf5a60b1d41e12d07549865ad6d6bd26ef0ac6e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176446
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-16 18:23:07 +00:00
Danny Tuppeny 222f3dcd11 [Analyzer] Prevent two sets of parens being inserted for setState() when LSP's completeFunctionCalls is enabled
Fixes https://github.com/Dart-Code/Dart-Code/issues/3006.

Change-Id: Idc1ac2b41208a13a887e0c0ece98a255114fc634
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176242
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-15 19:21:31 +00:00
Danny Tuppeny 26cee4e0db [Analyzer] Produce string highlight tokens for literal string parts of interpolated strings
Change-Id: Idadfc90ba34d4a533964b34799585d7254b16830
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176121
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 20:37:29 +00:00
Danny Tuppeny cb2ede57b7 [Analyzer] Add LSP support for textDocument/semanticTokens/full
Fixes https://github.com/Dart-Code/Dart-Code/issues/2202 + many more.

Change-Id: Ia2e8ec2415836a77618821144699971e97b4fc5c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175722
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 20:37:29 +00:00
Danny Tuppeny 069a2f83d9 [Analyzer] Add support to LSP server for updating imports on file renames
Fixes https://github.com/Dart-Code/Dart-Code/issues/2761.

Change-Id: I9e4779760a02bc91850c45aa0d0bf261ef922222
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175485
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 17:06:03 +00:00
Danny Tuppeny 5d2905e8cb [Analyzer] Add a setting to enable sending TODOs as LSP diagnostics
Fixes https://github.com/Dart-Code/Dart-Code/issues/3010.

Change-Id: Id504f46a0c0ff6dc6eb4005e3779714081df8fd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/176085
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-14 17:05:24 +00:00
Danny Tuppeny 4525525a9d [Analyzer] Handle parsing v3.16 LSP Spec
Change-Id: I6afd5c32673ba580cdf6691bdfa521766f65c3b0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/158392
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-09 20:29:30 +00:00
Danny Tuppeny 0fa6674ea9 [Analyzer] Include required-named params in defaultArgumentListString and LSP complete-function-calls
Change-Id: I8b4c09305df6e868e7447c538be4a3b540aa7e57
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174802
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-12-08 20:47:04 +00:00
Danny Tuppeny 2f2f9fc5ba [Analyzer] Support completeFunctionCalls for LSP SuggestionSet completions
Fixes https://github.com/Dart-Code/Dart-Code/issues/2992.

Change-Id: I95ee3735b7f10d9ad06c729c7b5e6aabeee005e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/175251
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-07 19:10:38 +00:00
Danny Tuppeny 9a82c5447b [Analyzer] Use ${0} for solo-tabstops in LSP snippets
Fixes https://github.com/Dart-Code/Dart-Code/issues/2975.

Change-Id: I9c4974c9f04fa10565c831672da067f5b0a2d43f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174926
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-03 17:51:43 +00:00
Danny Tuppeny bb971209d1 [Analyzer] Update to latest version of LSP spec
Change-Id: I16418caeacad044269fd3d79e28b9b800ce798f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/174804
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-12-02 20:11:08 +00:00
Danny Tuppeny 7edcd83073 [Analyzer] Re-create progress tokens after each use + fix race
Change-Id: Ibc6dd59c71d40c5f0127a2881dade13cde8cfd87
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173271
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-23 11:40:33 +00:00
Danny Tuppeny 4fe5b79c07 [Analyzer] Fix off-by-one error in LSP position -> offset calculation
Fixes https://github.com/dart-lang/sdk/issues/44274.

Change-Id: Ia1e3c0f1037ad26fca9eeef27d4c7ada0a318d55
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173270
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-11-21 16:29:23 +00:00
Danny Tuppeny db263169e5 [Analyzer] Enable code completion for YAML files in LSP
Change-Id: I13a6fe43f7b822b9c88fd0e1ca69091f82d70119
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/173000
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
2020-11-19 15:40:44 +00:00
Danny Tuppeny 732305f11e [Analyzer] Don't show duplicate LSP code actions on same line
Fixes https://github.com/Dart-Code/Dart-Code/issues/2960.

Change-Id: I63361728e80c7db843db9e2b31e76eae78f85400
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172562
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-19 10:55:33 +00:00
Danny Tuppeny 3bf25c6c40 [Analyzer] Support fix-all-for-file in LSP code fixes
Change-Id: Ic3628ee80c409feab178e237bccc5054501549e6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172400
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-19 10:44:13 +00:00
Sam Rawlins f230313871 analysis_server: remove unused imports with shared prefixes
Bug: https://github.com/dart-lang/sdk/issues/38784
Change-Id: Ifd4df564247c08606841a0e22896d767da438a47
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/172740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-11-18 17:30:21 +00:00
Danny Tuppeny 44e680ac53 [Analyzer] Add LSP support for Format Selection/Range
Fixes https://github.com/Dart-Code/Dart-Code/issues/812.

Change-Id: I099654483f3799344d68640b4d00df88e6bbca01
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171722
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-12 16:20:36 +00:00
Danny Tuppeny a36f85b5e6 [Analyzer] Generate minimal edits when formatting files using LSP
Fixes https://github.com/Dart-Code/Dart-Code/issues/1626

Change-Id: Id36a86df736ed7d31320abfd2acf1118be3f600b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171590
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-12 16:20:36 +00:00
Danny Tuppeny 8687aa6145 [Analyzer] Add an LSP setting for including parameters in completions
Fixes https://github.com/Dart-Code/Dart-Code/issues/2823.

Change-Id: I477aba5f3563c01a85bb867a1e01f294eed3636e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/171585
Commit-Queue: Danny Tuppeny <danny@tuppeny.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-11-11 19:44:12 +00:00