Commit Graph

6063 Commits

Author SHA1 Message Date
Danny Tuppeny cd4b9527eb [analysis_server] Fix "dart fix" not handling directives_ordering
Fixes https://github.com/dart-lang/sdk/issues/53261

Change-Id: I5b7f87efeee1046959b81f0a07f07ce1f81706d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321881
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-21 16:44:11 +00:00
Keerti Parthasarathy 36a146f037 Add utility methods for format and sort imports
Change-Id: I6f0408d8da8592ad125bcb4b9c4ff90fc3a9540c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321541
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2023-08-18 14:55:59 +00:00
Helin Shiah 6b03758f76 Collect analytics from VS Code remote usages
This is the ID sometimes sent for internal VS Code users, and we want to capture these users as well for some internal IDE tracking.

Change-Id: Id3b5aa89eacefb873e88b59745014454a89e6a73
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321323
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Helin Shiah <helinx@google.com>
2023-08-17 20:24:30 +00:00
Kallen Tu 48245c1064 [analyzer] Issue 53163: Fix crash with unresolved object in String length for const expressions.
Unresolved types would throw in `stringLength` and we don't handle them the same way we do with the other operators. Throwing EvaluationExceptions is the problem here, but that's for another CL.

In the meantime, this CL makes `stringLength` consistent to the other operators in the DartObjectComputer.

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

Bug: https://github.com/dart-lang/sdk/issues/53163
Change-Id: Ib99b61736d699056fa3c379e4d9c79756a4425f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319562
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2023-08-17 19:48:28 +00:00
pq edaea9b489 quick fix for REDECLARE_ON_NON_REDECLARING_MEMBER
See: https://github.com/dart-lang/sdk/issues/53121

Change-Id: I324f8a14820da2e9e5b714f9f1d88c647f9cfebc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/321424
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2023-08-17 17:28:59 +00:00
Sam Rawlins 7ee87f8601 [analyzer] Remove all support for strong-mode
This looks pretty beefy; it is more-or-less 3 parts:

* Removing the `implicit-casts: false`, `implicit-dynamic: false`
  modes:
  * Remove `AnalysisOptionsFileConfig.implicitCasts|implicitDynamic`
  * Remove `AnalysisOptionsImpl.implicitCasts|implicitDynamic`
  * Remove `TypeSystemImpl.implicitCasts`
  * Remove all behavioral tests of the modes
  * Remove Analysis Options-parsing code that handled `strong-mode`
* Remove ability to fix deprecated modes (introduced before Dart 3).
* Move some non-generated AnalysisOptionsHintCodes and
  AnalysisOptionsWarningCodes to be generated. As
  `AnalysisOptionsHintCode.STRONG_MODE_SETTING_DEPRECATED` was the
  last `AnalysisOptionsHintCode` code, there were problems with the
  code-generator, unless I moved these non-generated codes.
  * `DEPRECATED_LINT_HINT`, `DEPRECATED_LINT_HINT_WITH_REPLACEMENT`,
    `DUPLICATE_RULE_HINT`, `INCOMPATIBLE_LINT`, `UNDEFINED_LINT`.
  * Those codes are then added to error_fix_status.yaml.

Change-Id: Ic165b60ca85f08f92886433eac5f5da5b7dd5021
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/316483
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2023-08-17 17:07:37 +00:00
Brian Wilkerson 0a717608ca Convert more methods from KeywordContributor
Change-Id: I41cc30d36fa42dcfc2d17bf262f3cad7dc412d9c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320960
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2023-08-17 16:45:46 +00:00
Jonas Finnemann Jensen 43c8d637bd Refactor PubspecValidator
Unclear, if this was intentionally written as classes.
It just seemed confusing to me. Since the classes were essentially
functions that had some of their arguments passed in the constructor
and some of their arguments passed in a method call.

It also seemed impossible to reuse the actual objects.

Change-Id: I56b341ee4851d24b9d176857a53b96f7eb941335
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317883
Commit-Queue: Jonas Jensen <jonasfj@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2023-08-16 12:31:30 +00:00
pq b08f029558 verify that members marked as redeclaring actually do
See: https://github.com/dart-lang/sdk/issues/53121

Change-Id: I39294952a3adf0f037417d6e04811e3294128e6d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320886
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2023-08-15 23:05:50 +00:00
Konstantin Shcheglov a8580d3bd3 Extension types. Check implemented non-extension type agsinst representation, not erasure.
See https://github.com/dart-lang/language/pull/3262

Change-Id: I3ee081f43e4b3bf5159450fa94be2ab1672539de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320700
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-14 21:03:58 +00:00
Brian Wilkerson 0239101041 Convert more KeywordContributor methods
Change-Id: I9cbf77e115b77d635f1bec3c046fb38749ea76c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320080
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-11 21:38:31 +00:00
Kallen Tu adb68f4bb0 [analyzer] Provide better errors for invalid .length access in const expressions.
Add a new error message `CONST_EVAL_PROPERTY_ACCESS` for when we try to get 'length' on anything that's not a `String`.

This adds more specific errors for string length that would've went to the catch-all error at the end of `_getConstantValue` before. It should be more clear now what the error is.

Fixes https://github.com/dart-lang/sdk/issues/47273, https://github.com/dart-lang/sdk/issues/52833

Bug: https://github.com/dart-lang/sdk/issues/52833, https://github.com/dart-lang/sdk/issues/47273
Change-Id: I1f5daed82be00c6a8ecd43384d7ff9e59219cbb4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319160
Commit-Queue: Kallen Tu <kallentu@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2023-08-11 20:08:31 +00:00
Konstantin Shcheglov 0ce9ae9204 Extension types. Report when multiple representation fields.
Change-Id: I8d920ecdb04bb8b27f83b3126c8106682f613a02
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320124
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-11 19:48:01 +00:00
Konstantin Shcheglov 1c2934d42f Extension types. Report an error if the representation field has a modifier.
Change-Id: Ied3e14f67a4aad18b11c17f0ed8d986f95a3c9f0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/320123
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2023-08-11 18:41:12 +00:00
Keerti Parthasarathy f3acac0b5a Add an option to format code to BulkFixProcessor
Change-Id: Ie069b5e16ccf0c13c1f61cd38690b20968b7c907
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319868
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-11 17:53:28 +00:00
Parker Lougheed 410c394374 [analyzer] Mark DEFAULT_LIST_CONSTRUCTOR as removed
Follow-up to https://dart-review.googlesource.com/c/sdk/+/276770

Change-Id: I583d19e3fab99594a12083381cc98cd1e453efcf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319641
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-11 14:54:58 +00:00
Konstantin Shcheglov 53cccf9c8b Extension types. Report when implemented extension type representation is not a supertype of the declared extention type.
Change-Id: Iebb19c3f57046db600305993cc69dae04946889d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319861
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-10 18:38:04 +00:00
Danny Tuppeny acefe9ab6d [analysis_server] Extract LSP registration options from ServerCapabilitiesComputer
This is a non-functional refactor that extracts the growing set of capabilities and options from ServerCapabilitiesComputer into files alongside the handlers they relate to.

The motivation for this is that for LSP-over-Legacy we'll need to accept client capabilities (and return server capabilities). The server capabilities will be different to the standard LSP ones (they will be a subset, and we might not support dynamic registration - at least initially). However the features we do support will have the same registration options, so to avoid duplicating them this moves the registration options away from the creation of the ServerCapabilities.

In future, we might consider further wrapping up a "feature" (which consists of these registration options, and the related handlers), but this change is already quite large and I just wanted to progress capabilities for LSP-over-Legacy so we can handle things like Code Actions (which require executeCommand and possible reverse-requests for applyEdit).

Change-Id: Iecd0aa36626fa44826f7d4dbd6e6c0d758075239
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319840
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-10 17:10:48 +00:00
Brian Wilkerson 98608662e7 Move more of KeywordContributor to the new framework
Change-Id: I2b257545a3af7fa2f803e8f954d14cd3679c35c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319781
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-10 16:58:51 +00:00
Jens Johansen aba5663d0a [analyzer] Deduplicate _Info* instances
When having several contexts we'll end up having many copies of the same
_Info* instances. This CL deduplicates it.
TL;DR: On flutter/flutter (82 contexts) this, when run from a clean
cache, reduces the memory usage by 600-800 MB (~15%).

Details:

All numbers from runs made from analyzer source with a clean cache on
flutter/flutter (82 contexts), memory usage after a forced GC:

Runtime:
No difference proven at 95.0% confidence

Current memory (GB):
Difference at 95.0% confidence
        -0.683333 +/- 0.0627592
        -13.3987% +/- 1.23057%
        (Student's t, pooled s = 0.0276887)

Peak memory (GB):
Difference at 95.0% confidence
        -0.643333 +/- 0.0746028
        -12.5243% +/- 1.45236%
        (Student's t, pooled s = 0.032914)

Heap (used) (GB):
Difference at 95.0% confidence
        -0.77 +/- 0
        -17.5799% +/- 0%
        (Student's t, pooled s = 0)

Heap (capacity) (GB):
Difference at 95.0% confidence
        -0.69 +/- 0.05552
        -15.2993% +/- 1.23104%
        (Student's t, pooled s = 0.0244949)

_List (MB):
Difference at 95.0% confidence
        -59.2333 +/- 0.0925333
        -6.91547% +/- 0.0108032%
        (Student's t, pooled s = 0.0408248)

_Uint32List (MB):
Difference at 95.0% confidence
        -105.433 +/- 1.06715
        -17.3382% +/- 0.175489%
        (Student's t, pooled s = 0.470815)

_OneByteString (MB):
Difference at 95.0% confidence
        -403.667 +/- 2.37542
        -58.1206% +/- 0.342017%
        (Student's t, pooled s = 1.04801)

Raw data:

NOW:

Runtime (ms): 151855
current memory	4.46GB
peak memory	4.54GB
heap 3.61GB of 3.86GB
797.3 MB 6067774 _List
503.1 MB 2574937 _Uint32List
291.7 MB 2233396 _OneByteString
233.0 MB 338029 _Uint8List
158.7 MB 3466691 Reference
116.1 MB 1901830 _Map

Runtime (ms): 152410
current memory	4.40GB
peak memory	4.49GB
heap 3.61GB of 3.80GB
797.3 MB 6067637 _List
503.0 MB 2574976 _Uint32List
290.7 MB 2232326 _OneByteString
226.8 MB 339447 _Uint8List
158.7 MB 3466691 Reference
116.1 MB 1901830 _Map

Runtime (ms): 153205
current memory	4.39GB
peak memory	4.45GB
heap 3.61GB of 3.80GB
797.3 MB 6067638 _List
501.9 MB 2556644 _Uint32List
290.2 MB 2235718 _OneByteString
226.7 MB 338584 _Uint8List
158.7 MB 3466691 Reference
116.1 MB 1901830 _Map




BEFORE:

Runtime (ms): 159178
current memory	5.09GB
peak memory	5.15GB
heap 4.38GB of 4.51GB
856.6 MB 7366027 _List
696.0 MB 3780593 _OneByteString
608.1 MB 5239817 _Uint32List
226.9 MB 341102 _Uint8List
158.7 MB 3466691 Reference
116.1 MB 1901829 _Map

Runtime (ms): 153913
current memory	5.11GB
peak memory	5.13GB
heap 4.38GB of 4.51GB
856.5 MB 7366249 _List
693.8 MB 3730773 _OneByteString
608.1 MB 5239925 _Uint32List
233.0 MB 338205 _Uint8List
158.7 MB 3466691 Reference
116.1 MB 1901829 _Map

Runtime (ms): 157729
current memory	5.10GB
peak memory	5.13GB
heap 4.38GB of 4.51GB
856.5 MB 7366221 _List
693.8 MB 3730773 _OneByteString
608.1 MB 5239924 _Uint32List
233.0 MB 337860 _Uint8List
158.7 MB 3466691 Reference
116.1 MB 1901829 _Map

Change-Id: I5697ff0efd40c9325f7f15d8092655b80b4876ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318940
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2023-08-10 09:58:31 +00:00
Konstantin Shcheglov 4dffed5065 Extension types. Report when implemented not extension type superinterface is not a supertype of the representation type erasure.
Change-Id: Ib1f2bfcfe51edb6bcbc54d7165f148810e3df4ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319600
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-09 22:18:27 +00:00
Konstantin Shcheglov e5a16ae775 Extension types. Report self reference in implements clause.
Change-Id: Icd26dcd6cf7521e075d6a8f13a985f3185c02369
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319584
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-09 20:56:25 +00:00
Danny Tuppeny aee6d0af18 [analysis_server] Restore use of pathContext.fromUri() for parsing file URIs in the LSP server
This reverts be4189f047 plus adds an additional test to verify pkg:path to behaviour (to catch future regressions or if pkg:path has to be reverted, this will need reverting too).

This relies on the fix made at https://github.com/dart-lang/path/issues/148 which rolled into the SDK in https://github.com/dart-lang/sdk/commit/f1de897762973de062fc56739de418847b9c9fe0.

Change-Id: I1dea45e2017f7505bc4aca97f6c07c1a6e445a5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319523
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-09 19:39:22 +00:00
Konstantin Shcheglov 0540ac84e1 Extension types. Report an error for super formal parameters.
Change-Id: I0e577dbe9d27913ce633951c68b2891f48699ca6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319560
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-09 18:45:51 +00:00
Konstantin Shcheglov ffcb38d702 Extension types. Report super constructor invocations.
Change-Id: Ib3da4c7f19864bbbb6d9f53769375fe9f1cf7daa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2023-08-09 16:50:56 +00:00
Danny Tuppeny 6229694c74 [analysis_server] Don't remove unused parameters when running fix-all-on-save
Fixes https://github.com/Dart-Code/Dart-Code/issues/4655

Change-Id: I09269766124f7b77fde7c499c6f69a09989d1766
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317684
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-09 15:49:06 +00:00
Kyle Turney 3c8fccf7a4 add fix for removing the leading underscore in constructor parameter lists
Closes https://github.com/dart-lang/sdk/pull/53122

GitOrigin-RevId: 802bc7caf2816906cc38de44784c20531675fdc2
Change-Id: I1adbd74ec20f2a4e2d78d6da9dd538d03ca0475e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318200
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-09 15:08:47 +00:00
Oleh Prypin 9f0f33c676 Revert "[analyzer] simplify the libraries.dart file"
This reverts commit 1948b0a9fe.

Reason for revert: causes `promiseToFuture` to become undefined - b/295129286

Original change's description:
> [analyzer] simplify the libraries.dart file
>
> Change-Id: I86bc196eaddd9a80c02f38c8d947d3c0f4c63394
> CoreLibraryReviewExempt: the sdk_library_metadata/libraries.dart is only used by the analyzer
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317803
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
> Commit-Queue: Devon Carew <devoncarew@google.com>

Change-Id: I4810c408b996cefd46c0a40cc36818d34aa86071
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319402
Auto-Submit: Oleh Prypin <oprypin@google.com>
Commit-Queue: Oleh Prypin <oprypin@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-08-09 10:27:47 +00:00
Parker Lougheed 1b8870bbb1 [analyzer] Don't generate error codes for removed diagnostics
Also renames 'removed' to 'removedIn' to better indicate it is looking for a version, not a boolean.

Change-Id: If3a6708ba32460305e89ba59c4a58ce2ad284e6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319282
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-09 04:08:23 +00:00
Konstantin Shcheglov 1e12b09a59 Extension types. Report conflicts for members from superinterfaces.
Change-Id: I4bc513102f734a98a263dffd97c5d93874ef3ae1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318803
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-08 23:23:13 +00:00
Keerti Parthasarathy 155bfc973b Add support for sort imports to BulkFixProcessor, add prefer_generic_function_type_aliases to list of lints for lightweight mode.
Change-Id: Ic8a1afde5f35a65065dd8439a11c4d99846c2905
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319240
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-08 21:10:54 +00:00
Devon Carew 1948b0a9fe [analyzer] simplify the libraries.dart file
Change-Id: I86bc196eaddd9a80c02f38c8d947d3c0f4c63394
CoreLibraryReviewExempt: the sdk_library_metadata/libraries.dart is only used by the analyzer
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317803
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2023-08-08 21:00:01 +00:00
Konstantin Shcheglov 36c578f75c Extension types. Report when has representation self reference.
Change-Id: I729515f92c4c31530b61c7f9d71507fbf922787d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/319180
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-08 20:39:40 +00:00
Danny Tuppeny 1bae1b3dd5 [analysis_server] Don't produce fix-all-in-file fixes when there's no individual fix
Fixes https://github.com/dart-lang/sdk/issues/53021

Change-Id: I674430c5e01eaeaee7867e85795eca2250ec14f1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318840
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-08 18:20:39 +00:00
Danny Tuppeny b6e7b7e536 [analysis_server] Expose additional LSP handlers over legacy protocol
Change-Id: I8aae887eba3d35f8086b62f2e9b861e17e41555e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318983
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-08 15:21:53 +00:00
Konstantin Shcheglov 7d83540366 Extension types. Report an error for instance fields in extension types.
Change-Id: I35cb446c45e027a77d0a5ff870b4e5b4b22b7512
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318747
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-07 22:39:55 +00:00
Danny Tuppeny 2a811a0ad9 [analysis_server] Split DartUnitHoverComputer.compute() into smaller methods
No functional changes here, I'm just trying to simplify the hover implementation a little as this method had gotten quite long and deeply nested. We've discussed improving hover support for patterns and keywords and hopefully this'll make that easier.

Change-Id: I974f7fb0fbb99a967b5970f99b36ef3601df4ea3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318701
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-07 18:14:15 +00:00
Konstantin Shcheglov 0cd0412a75 Extension types. Report when invalid type is implemented.
Change-Id: I66c30209a5fe5083f78291ea3ec7e5fd2259164f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318742
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-07 18:06:11 +00:00
Keerti Parthasarathy 360ebb6e50 Wire up a parse option for bulk processor
Change-Id: I8cecd6bf4ac3693e2cf65a66eed809abb571b22a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318362
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Keerti Parthasarathy <keertip@google.com>
2023-08-07 16:29:58 +00:00
Konstantin Shcheglov 6ac57ff0b9 Extension types. Report when a method has the name of an Object member.
Change-Id: I0585451580c1a1921f813a1af574175f04354475
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318741
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2023-08-07 16:11:59 +00:00
Brian Wilkerson 7901efffe7 Convert a few more methods in KeywordContributor
Change-Id: I905a4855f67db227ab654c3d4dc7441b7ee2bf58
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/315540
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2023-08-07 16:09:40 +00:00
Danny Tuppeny 17f3a6ec30 [analysis_server] Convert more LSP handlers to work over the legacy protocol
Change-Id: I9bd1f3ffd9bcdb017a4208e4aedcfb7436259fc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318700
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-07 15:27:46 +00:00
Danny Tuppeny ea5e58356b [analysis_server] Fix logging of LSP-over-Legacy requests to use the LSP identifiers
Otherwise they'll be recorded as "lsp.handle".

Change-Id: I511d5eef44d6d647fef4d0347a03f6a7a9f88f9e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/315920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-07 14:27:12 +00:00
Danny Tuppeny 16d787694a [analysis_server] Refactor completion labels in preparation for new LabelDetails support
This is just a little refactoring towards https://github.com/Dart-Code/Dart-Code/issues/2462. It doesn't change anything, it just makes the next CL (with the functional changes) simpler.

Change-Id: I98ed5991f1abb67f86f9d4d43c27ff6ccf21847c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/317940
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-06 18:21:31 +00:00
Danny Tuppeny 76dc2c4cfa [analysis_server] Change LSP-over-Legacy to be wrapped with the original protocol
Originally we didn't use the LSP Request/Response classes, and just exposed the handlers through the legacy request/response.

However there were some mismatches (such as legacy protocol always returns Map<String, Object?> but some LSP requests return Lists, LSP using int|String IDs, and LSP having numeric error codes that don't match legacy string error codes).

This change uses LSP's request and Response by wrapping them inside a standard (legacy) handler. The LSP-over-Legacy handler has become a standard handler, and the params contain an "lspMessage" field that holds an LSP message, and the result contains an "lspResponse" field that contains an LSP response.

If an LSP handler returns an error, it will be returned as an error inside the LSP response, which will be in a _successful_ legacy request (since that's how we can return an LSP response - as the result).

Change-Id: I67973590ab32f3543d1a6e1b7279974e5e8832bc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/315201
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-08-06 14:32:18 +00:00
Danny Tuppeny 678e207a6d [analysis_server] Fix a bug with sorting semantic tokens
I was trying out DCM and it found this bogus condition.

The only instance I can find where it triggered was adjacent interpolations in strings, and the fallback code (which compares by token type) would handle it correctly, but in case there are other cases (now or in future), I've added an assert to try to avoid reaching the fallback in case it doesn't produce the desired result.

Change-Id: I3092fa4892c812be7d3a91629c5f6ed3be627743
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/315720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-08-05 19:05:38 +00:00
Konstantin Shcheglov e21306a4eb Extension types. Report when a type parameter is used in a non-covariant position.
Change-Id: I12dbfccdf670cb02f74ddcb787b9e1e4a2b4e6fb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318001
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-05 03:51:42 +00:00
Konstantin Shcheglov 508a293029 Revert a few not published API changes.
Change-Id: I093c3d3f6e221cfe874e82b598f52087670ce24e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318020
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-04 19:21:58 +00:00
Konstantin Shcheglov 759d5a5a01 Extension types. Report when await of not Future subtype.
Change-Id: I51b825c1d48b55866d8112ab6421c7937a0c7575
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318024
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-04 19:18:11 +00:00
Konstantin Shcheglov ce7164488a Extension types. Semantic highlighting.
Change-Id: I46cde8151965e209a230df811592f8498e93c218
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/318161
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-08-04 19:13:43 +00:00