Commit Graph

9686 Commits

Author SHA1 Message Date
Danny Tuppeny 8eb9bcd7f0 [analysis_server] Verify with/without documentChanges for EditArguments tests
The tests by default run with documentChanges (set in `setUp`), but it's possible LSP-over-Legacy clients won't support it.

Change-Id: I40c65f05127c88e15a43f16669f64675285955dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406002
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-27 12:54:48 -08:00
Danny Tuppeny 1ec4ea79fd [analysis_server] Include "get" or "set" in LSP override completions to distinguish them
Screenshot of how this looks here: https://github.com/dart-lang/sdk/issues/59929#issuecomment-2602188244

Fixes https://github.com/dart-lang/sdk/issues/59929

Change-Id: I220ee8facb96dbf31ee88868c8c44223de5e8406
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405007
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-27 09:06:38 -08:00
Danny Tuppeny 8884a8b4ad [analysis_server] Make it easier to print protocol messages when running LSP-over-Legacy tests
This moves the existing `debugPrintCommunication` flag out of `test/lsp` into `test/` and passes it to the `MockServerChannel` to simplify printing protocol messages for LSP-over-Legacy tests (similar to what MockLspServerChannel already does).

Change-Id: Ic5fa6309e8de01ce0c624584ad6eb653ced90698
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/406021
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2025-01-27 08:47:42 -08:00
Brian Wilkerson 83f540b4f0 Fix three links to the contributing docs for the sdk
Change-Id: I7da01e06279b649021c3c40e44c223cd1cec02c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405860
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Auto-Submit: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2025-01-27 08:12:11 -08:00
Sam Rawlins c550de7c40 analysis server: simplify LegacyAnalysisServer
This class had a few methods which only pertain to the resource provider
and can just be extensions on ResourceProvider. They also have the
exact same impl! So one can redirect to the other.

Change-Id: I3a0433304adba1b71f69d0a4afc8a44515a23d10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405600
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-25 11:52:58 -08:00
Danny Tuppeny 0d90ccc2ec [analysis_server] Use unique request IDs in tests to avoid flaky tests
Some of the LSP-over-Legacy tests were intermittently failing because the test did not correctly wait for the `setClientCapabilities` request to complete.

The reason for this was that it used the ID `0` (from `_newRequestId`) but so did `setAnalysisRoots`. If the timing was right, the second request would appear to complete when the first did (because the response had id=0) and the test would start before the capabilities had actually been set (and since the test reads them directly off the server, they would be incorrect).

This moves the `_nextRequestId` field down into a base class and updates the helpers for requests like `setAnalysisRoots` to use it too.

Change-Id: Ice44191aad39c7ea81c40e501827557fe563e3d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-24 09:26:38 -08:00
FMorschel a0db69f182 [DAS] Considers factory keyword on constructors auto-complete
R=keertip@google.com

Fixes https://github.com/dart-lang/sdk/issues/59896

Change-Id: I47c51bc521f97398ae19a8d124e836baadfdabd4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405200
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Auto-Submit: Felipe Morschel <git@fmorschel.dev>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2025-01-24 08:45:46 -08:00
Sam Rawlins 994b474b74 analysis_server_plugin: Bump versions of dependencies
Change-Id: I6f4a04732ef8ad5af178ea64b1ab259c891ea451
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405541
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2025-01-24 07:46:20 -08:00
Sam Rawlins be4d4fd5ed analysis_server: minor nits
Change-Id: Ic31459d36fa425ba1cbda30e97655c1a1441c21d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405580
Auto-Submit: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2025-01-23 09:59:03 -08:00
Paul Berry 6a927feb20 [analyzer] Change types in CollectionLiteralContext to TypeImpl.
The types of the following members of `CollectionLiteralContext` are
all changed to use `TypeImpl` rather than `DartType`:

- `elementType`
- `iterableType`
- `keyType`
- `valueType`

To reduce the number of casts that need to be added, some field types,
getter types, method return types, and method parameter types are
changed to `Impl` types in the following classes, mixins, and
extensions:

- `BodyInferenceContext`
- `ElementsTypesMixin`
- `ErrorDetectionHelpers`
- `ExecutableMember`
- `ExtensionMemberResolver`
- `ExtensionsExtensions`
- `ExtensionsExtensions2`
- `FormalParameterElementMixin`
- `FragmentedFunctionTypedElementMixin`
- `FunctionTypeImpl`
- `GenericFunctionInferenceTest`
- `InstantiatedExtensionWithMember`
- `InterfaceTypeImpl`
- `InvocationInferrer`
- `LeastUpperBoundHelper`
- `LowerBoundTest`
- `MethodMember`
- `NotInstantiatedExtensionsExtensions`
- `NotInstantiatedExtensionsExtensions2`
- `ParameterElementExtension`
- `ParameterElementMixin`
- `ResolverVisitor`
- `StringTypes`
- `TypedLiteralResolver`
- `TypeSystemImpl`
- `TypeSystemOperations`
- `_BoundsTestBase`
- `_InferredCollectionElementTypeInformation`
- `_NotInstantiatedExtension`
- `_ParamInfo`

There is no change to the analyzer public API.

This is part of a larger arc of work to change the analyzer's use of
the shared code so that the type parameters it supplies are not part
of the analyzer public API. See
https://github.com/dart-lang/sdk/issues/59763.

Change-Id: I7a5f7c411e81b829be205f1919c933f8f874e5ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405404
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2025-01-23 06:09:09 -08:00
Chloe Stefantsova b0813fb9e2 [analyzer] Add trailing comma test for null-aware elements
Part of https://github.com/dart-lang/sdk/issues/56989

Change-Id: Iad92a1144374ba24cc5b228f7e4b58c6329c8fbd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405380
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-22 23:32:01 -08:00
Danny Tuppeny ecf74c5c54 [analysis_server] Add widget name + documentation to EditableArguments
Change-Id: I8b8424b77ff1f9683934c64636a9f56097be870f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405123
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-22 15:48:23 -08:00
Danny Tuppeny 1165528f9f [analysis_server] Improve the formatting of inserted arguments
This improves the formatting of inserted arguments by including newlines and indentation if an invocation spans multiple lines.

Change-Id: Idef4602ee9ac9f145879a4628190ec44f87a0018
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405122
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
2025-01-22 15:15:31 -08:00
Danny Tuppeny 199d50aab1 [analysis_server] Check for applyEdit support before handling EditArguments
If we get an editArgument request (usually via DDS), we should verify the connected editor supports edits and return an explicit message if not.

Also adds a `setUp()` declaration to `SharedTestInterface` so shared tests can set client capabilities instead of them being duplicated in each test class (and moves the same for ApplyEdit tests to this).

Change-Id: Ie6a85620b3b53663ce92e55d93e3aefcaf4dc980
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405342
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-22 15:15:19 -08:00
Danny Tuppeny 154b473cdb [analysis_server] Fix missing dartdoc references in Library comments
Fixes https://github.com/dart-lang/sdk/issues/59946

Change-Id: I3b8558f72b6cc932f2c87ee4f2e993c5584907a7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405361
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-22 13:00:30 -08:00
pq 26f220614c [fix] fix unnecessary_ignore eol ignore corrections
Change-Id: Ifdae16f0a401d28322796b3fecc2e575896fca37
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405246
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-22 09:46:56 -08:00
Mohamed Abdelaal 9b7bb9df90 Fix "the the" typo
Closes https://github.com/dart-lang/sdk/pull/59926

GitOrigin-RevId: cb37bca473b0c177b876a0f4e75858cd1862e699
Change-Id: I6827241b22e99db455945afcdfbaee0450999ce9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404923
Reviewed-by: Devon Carew <devoncarew@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2025-01-21 14:08:20 -08:00
Paul Berry 751fe131e9 [analyzer] Use TypeImpl for type annotation types.
The types of `TypeAnnotationImpl.type`, and the fields that override
it, are changed from `DartType?` to `TypeImpl?`. Also, the type of
`TypeAnnotationExtension.typeOrThrow` is changed from `DartType` to
`TypeImpl`.

To reduce the number of casts that need to be added, the following
changes are made in parallel:

- An additional extension `TypeAnnotationImplExtension.typeOrThrow` is
  added; this has the same behavior as
  `TypeAnnotationExtension.typeOrThrow`, but it doesn't require a type
  cast.

- Some field types, getter types, method return types, and method
  parameter types are changed to `Impl` types in the following
  classes:
  - `AstRewriter`
  - `EraseNonJSInteropTypes`
  - `ExtensionTypeErasure`
  - `FreshTypeParameters`
  - `FullInvocationInferrer`
  - `FunctionExpressionInvocationResolver`
  - `FunctionReferenceResolver`
  - `FunctionTypeBuilder`
  - `InstanceCreationInferrer`
  - `InvocationExpressionInferrer`
  - `InvocationInferrer`
  - `NamedTypeBuilder`
  - `NamedTypeResolver`
  - `ResolutionReader`
  - `TypeAliasElementImpl`
  - `TypeAliasElementImpl2`
  - `TypeImpl`
  - `TypeParameterElementImpl`
  - `TypeSystemImpl`

There is no change to the analyzer public API.

This is part of a larger arc of work to change the analyzer's use of
the shared code so that the type parameters it supplies are not part
of the analyzer public API. See
https://github.com/dart-lang/sdk/issues/59763.

Change-Id: I7f753508b53f6744677fd18f66858d70eb974093
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/405221
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2025-01-21 10:46:52 -08:00
Sam Rawlins 6c5fe06d70 DAS plugins: Add an SDK constraint to generated pubspec
Change-Id: I98765c019d5e41b347b11b874165e3de0e381002
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404760
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2025-01-21 10:30:20 -08:00
FMorschel 667730a0b5 [DAS] Fixes import prefix highlighting
R=scheglov@google.com

Fixes: https://github.com/dart-lang/sdk/issues/59942
Change-Id: Id5c971f040dc2dcdddde6e36055e9045eb4b2aef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404925
Auto-Submit: Felipe Morschel <git@fmorschel.dev>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2025-01-20 10:11:52 -08:00
Danny Tuppeny dd9a061f4e [analysis_server] Enable "EditArgument" request to work over the legacy protocol
+ move all related tests to a shared mixin so they run for both servers.

Change-Id: I853e8f24948c07fdde2a5d6a64ddc65962357b6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404841
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2025-01-18 10:59:08 -08:00
Danny Tuppeny b908274b8c [analysis_server] Minor refactors to enable running EditArgument through legacy server
This is some minor refactoring to support the next CL that will enable the EditArgument request (the one that actually edits arguments, not the one that gets the list of arguments) over legacy.

It moves some code for sending LSP reverse-requests through the legacy server from test code into the actual server (and fixes that they weren't correctly wrapped in the 'lsp.handle' protocol classes) and updates the tests to use the shared interface ready.

Change-Id: I06492138645538072fb12f2fc2d424e214f8055b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404824
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-18 10:06:46 -08:00
pq 54981a484b [fix] add remove_comment producer and ignore bulk fixes
Change-Id: I0e86531a84860488d79905e4a43719465f3e7fce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404960
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-17 14:30:59 -08:00
Danny Tuppeny 95f0052267 [analysis_server] Add tests for unversioned documents for EditableArguments
The legacy protocol does not currently version documents, so this adds some additional tests for that.

The tests are in the Legacy class and not the shared class because in LSP versions are not optional for opening/changing documents (they are optional in some of the other APIs, but not for open/change).

Change-Id: I7e75b813025b3f67ed143e1b3a8b717224bfa80f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404820
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2025-01-17 11:50:22 -08:00
pq fa2f2ddf91 [fix] add remove_ignore correction producer
Change-Id: I48ed5c612492e79e1b42ffd8e1522e960981fe63
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404524
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-16 13:22:20 -08:00
Brian Wilkerson 2556d0155c Add documentation for code completion
Change-Id: Ic2954ff86e4fa36ea12e96ffebef6d5621137eb5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404522
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-15 14:25:28 -08:00
pq fa065954e5 [lint] new unnecessary_ignore error codes
(Fixes to follow)

Bug: https://github.com/dart-lang/sdk/issues/35234
Change-Id: I7a9255ffba7d9b0dc5e3ce9783f8f4ba63d8c854
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404701
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-15 13:37:13 -08:00
Danny Tuppeny 93621ccfc1 [analysis_server] Move all EditableArgument tests to a shared mixin and run for legacy
This moves all tests (without any changes) to a shared mixin, and then applies that mixin to the original test class. It also adds a new test class for LSP-over-Legacy, meaning the tests will now run for both protocols.

There are two failing tests when using LSP-over-Legacy so they are overridden with `@FailingTest()` temporarily.

Change-Id: I8c7efcf8f5d85d874b3483f4f3953d4d8b68a31a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404621
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2025-01-15 12:30:26 -08:00
Danny Tuppeny 549a78500a [analysis_server] Add a shared test interface to simplify sharing tests between LSP, LSP-over-Legacy
This is refactor extracted from an upcoming change (to make property editor tests run against both servers) to make that change smaller and easier to review.

There are some existing shared tests that run for both LSP and Legacy servers, but they currently do not touch much server API (one is for DTD and one tests reverse-requests). Migrating other tests (such as EditableArguments) requires some additional API be the same between the different test/server base classes.

This change adds an `abstract interface class SharedTestInterface` to serve as a common interface for methods that shared tests need to use that have different implementations between LSP and Legacy. For example, updating the overlays in an LSP-over-Legacy test needs to use the Legacy APIs for updating the overlay and not the LSP ones (so we can't just use the LSP methods like we would for calling something like getHover for LSP-over-Legacy).

It also:

- adds some new futures to the LSP test base to match the behaviour of the legacy one (wait for in-progress analysis)
- replaces the shared mixins with real base classes that implement the shared interface (for ex. `abstract class SharedLspOverLegacyTest extends LspOverLegacyTest implements SharedTestInterface`) to make it easier to create shared tests
- renames `sendLspRequest` to `sendLspRequestToClient` to make it clearer what direction this method is for

Change-Id: I070c2c005b11b9afd8a87aa22b04972a9dde2320
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404680
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-15 12:28:45 -08:00
pq 2dc6d31f8a [lint] new lint: unnecessary_ignore
See: https://github.com/dart-lang/sdk/issues/35234

As a follow-up, I'll update the reporting to skip generated files.


Change-Id: Icddcdf59269d82576eefd810671a3e992f2bcca5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-15 10:21:42 -08:00
Danny Tuppeny fb3255dd9e [analysis_server] Add support/tests for reverse-requests for LSP-over-Legacy
This adds shared tests for sending workspace/applyEdit reverse-requests that run for both the LSP and Legacy servers.

It involved moving some code out of the base LSP test onto mixins to be used by LSP-over-Legacy tests and I extracted some mixins that can be used in tests to provide a common interface to both servers for writing shared tests.

Change-Id: I8c6d09f220b2593680547311a4fce66013f86e2e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404420
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-15 07:33:38 -08:00
Danny Tuppeny a0b6a489f3 [analysis_server] Allow legacy clients to set LSP capabilities in setClientCapabilities
This adds a new field to the existing (legacy) setClientCapabilities parameters that accepts an LSP ClientCapabilities.

This will allow a legacy client to indicate that it supports things like the `workspace/applyEdit` reverse-request.

Change-Id: Ia3b75c701f1699c92f902e058daec4844ce664fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404106
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-14 08:56:41 -08:00
Danny Tuppeny 9b71817072 [analysis_server] Fix duplicate reporting of some LSP type parsing errors
Parse errors for spec types were being reported twice - once by the containing object (in canParse()), and once by the nested canParse() call for the nested type.

This skips reporting the error for nested calls to a canParse() method, which will always report the error itself.

Change-Id: I03e4a9638fd6a3fc77eac918f6fd16def93327d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404105
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-14 08:56:41 -08:00
pq c988e32a56 [cq] remove unnecessary ignores
See: https://github.com/dart-lang/sdk/issues/35234

Change-Id: I4563df48df9d71332b3de6fabea9176e199c1ad5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/404202
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Auto-Submit: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2025-01-13 15:05:28 -08:00
Konstantin Shcheglov ad481ff4b5 Elements. Add Element2.fragments
Change-Id: I85fb19c87b833abca99cb86c4e285d9120f96ac2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403948
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-13 13:54:20 -08:00
Konstantin Shcheglov 8bbe6fbdfe Elements. Report analyzer_use_new_elements without any txt file, add file ignores.
Change-Id: I13125f93a6633563ed6853a622bd9fec045bfc0c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403923
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-10 15:20:59 -08:00
Sam Rawlins 7d5f0a6508 DAS: Simplify fields in AnalysisServer
Many fields in this class are initialized in the class body, which is
unfortunate but seems necessary. However, such fields can often be
marked final, which makes the life cycle of such fields more clear:
contextManager, analysisDriverScheduler, pubPackageService.

Also, searchEngine can be a late final field wtih an initializer.

The analysisPerformanceLogger field is unused outside of the
constructor body in which it is declared; can be deleted.

isFirstAnalysisSinceContextsBuilt can be made private.

`_getByteStorePath` is also moved out to be an extension getter; it was
an instance method, but only uses the one OverlayResourceProvider.
Logically the function is just extracting a value from an
OverlayResourceProvider.

Change-Id: Ib08693ef16221560a1f14279725d9d44f9f5f99c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2025-01-09 11:52:34 -08:00
Sam Rawlins 7cbec8916d DAS: Privatize and finalize fields in AbstractNotificationManager
Change-Id: I0613c2fe4f4355d49cedf7262d870a1336a4225e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403900
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2025-01-09 11:47:48 -08:00
Konstantin Shcheglov 2766858fba Elements. Migrate lib/utilities/change_builder/change_builder_dart.dart
Change-Id: I0351cc1e4ecd88cf584e8a53f2fec7e2d1126c05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403706
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2025-01-09 09:47:11 -08:00
Sam Rawlins 1790fb7908 DAS: Fix comment references in refactoring/
Change-Id: Iaf710c67029cc75e2e61c4c5761c790938a9113d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403560
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2025-01-09 09:39:58 -08:00
Danny Tuppeny 6a1f9ed029 [analysis_server] Insert new arguments before last child/children arguments
Usually when adding arguments, we'd always put them at the end. However there is convention (and a lint) for putting child/children last - so if the arguments in the last position are child/children, we should insert before them.

Change-Id: Ia0e0cd6b10f16cef30aa0cfe4fdedecc223f08c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403584
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-08 18:03:34 -08:00
Danny Tuppeny e9a6d62fa4 [analysis_server] Return EditableArguments in parameter order
Originally we put those with arguments first so that in the property editor they'd be at the top. However the results in the order changing if you add/remove them, and across widget instances.

Returning them in source order keeps the consistent (and allows the "more important" ones to be at the top), though nothing prevents having a different sort (or an option to change it) on the client side.

Change-Id: I4808f0cb2ae5fcbb6d5496aa736528e60ac7c935
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403582
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2025-01-08 17:39:44 -08:00
pq edde03955b [element model] migrate element_visitors_test
Change-Id: I5eb336b52380de3ad49d0dd9bced1f0dc7fc1cb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403720
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Auto-Submit: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2025-01-08 15:02:23 -08:00
Danny Tuppeny 11f53fd7d2 [analysis_server] Preserve existing quote kinds when updating string arguments
The original code tried to predict the "best" kind of quotes based on the string value (for example changing to double quotes when the string contained a single quote).

Since, we decided it would be better to try to preserve the existing quotes the user picked (this results in less of the string changing, and preserves user preferences/lints).

In some cases we can't preserve the exact delimeters, because if the string is a raw string but the new value contains the delimeter, we can't escape it, so we drop the `r` and escape anything that requires it.

Change-Id: I9a224ade5edd5bd558310b78be132fc9addd3ed3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/398885
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Elliott Brooks <elliottbrooks@google.com>
2025-01-08 14:54:20 -08:00
Konstantin Shcheglov 8785c4e000 Elements. Migrate lib/utilities/range_factory.dart
Change-Id: I218603ef0f3a9eae8bde3889cb22fa7f59000e38
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403623
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2025-01-08 14:46:17 -08:00
FMorschel 26a2bf20b7 [DAS] Fixes for static declarations on Go to Imports command
R=brianwilkerson@google.com

Fixes https://github.com/dart-lang/sdk/issues/59823

Change-Id: I63f56e770bc53f7fc0f03e1c31a5c2b6b2fb7d54
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/402540
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Auto-Submit: Felipe Morschel <git@fmorschel.dev>
2025-01-08 13:49:38 -08:00
Konstantin Shcheglov 609f2f95b1 Linter. Issue 59814. Report unnecessary_async.
Bug: https://github.com/dart-lang/sdk/issues/59814
Change-Id: Iebf90315e7c443e00ea84c380f85ac6c84bc86c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403320
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2025-01-08 13:24:49 -08:00
Konstantin Shcheglov 810eeb4465 Elements. Migrate lib/src/dart/ast/element_locator.dart
Change-Id: I7b57a239cd21737292224d05b38b86a0dbd4643c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403642
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2025-01-08 13:21:29 -08:00
pq a1f5ee9861 [element model] migrate abstract_single_unit
Change-Id: I6d717985cb6d8ddafb0f7d8b9e1428f1c5f1fa21
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403484
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2025-01-07 14:23:57 -08:00
pq 2258ea7ec2 [quick fix] new correction for unnecessary_underscores
Bug: https://github.com/dart-lang/sdk/issues/56595
Change-Id: If7faeca31b4340fcd4b7d5f4642caf284cf36308
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403383
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2025-01-07 13:42:39 -08:00