Commit Graph

14771 Commits

Author SHA1 Message Date
Chloe Stefantsova 59cb100195 [analyzer][cfe] Share constraint generation for declaration types
Part of https://github.com/dart-lang/sdk/issues/54902

Change-Id: Id83077113319031b3e11061110ce0b1beb45918a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382562
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2024-08-30 08:58:22 +00:00
Konstantin Shcheglov 49c6679e4a Parts. Track used imports while resolving library files.
Change-Id: Ic23ec9ca49d93382449bfe2650089eb43099c3e4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-29 16:19:11 +00:00
Brian Wilkerson dd47ff74cc Remove MultiplyInheritedExecutableElement2
Also removes the only reference to the old model equivalent.

Change-Id: I9dd30f4d7864eca6190df7ae5ebb419ea61e1f9d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382683
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-08-29 14:06:51 +00:00
Fedor Shcheglov ed53041597 Converted library augmentations into parts in analyzer/ tests.
Change-Id: I91ad3b6fb5fd4c785a1eb99e182c4e16525dd0b2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382682
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-08-29 04:29:27 +00:00
Danny Tuppeny bbe6f2340a [analyzer] Don't crash on certain types of invalid data in analysis_options linter config
Fixes https://github.com/dart-lang/sdk/issues/56577
Fixes https://github.com/dart-lang/sdk/issues/55594

Change-Id: I1e69937cd104e8101a7f87b7c9b8ce26b914b3a0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382605
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2024-08-28 22:21:27 +00:00
Aravind b5928642ff [vm/ffi] Supporting .address.cast() expression in ffi leaf calls
Closes https://github.com/dart-lang/sdk/pull/56357

GitOrigin-RevId: 605e7d3fa5f4c7ce367539a76402e2e51aa69422
Change-Id: I79524b443326a161afe221d0a2afb6bed5866e59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378221
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2024-08-28 06:34:09 +00:00
pq 77f9cbff13 [wildcards] clarify evaluation test expectation
See: https://github.com/dart-lang/sdk/issues/55719

Change-Id: I4e7bea8c571f3c52313a6f69af3837982a829207
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382441
Reviewed-by: Kallen Tu <kallentu@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-08-27 23:43:14 +00:00
Samuel Rawlins b3f31a0440 Revert "Reapply "analyzer: separate unused_element_parameter from unused_element""
This reverts commit b551690c56.

Reason for revert: flutter customer tests failing: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8738601049545714785/+/u/run_test.dart_for_customer_testing_shard_and_subshard_None/stdout

Original change's description:
> Reapply "analyzer: separate unused_element_parameter from unused_element"
>
> Fixes #49025. Fixes #48401
>
> This allows users to blanket ignore unused_element_parameter without
> ignoring unused_element. They are reported in distinct situations so it
> is valid to separate them.
>
> This reverts commit b888da751e.
>
> Change-Id: I8ea52fcdcb491c140c1283602d6911c939e78d50
> Tested: trybots
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381882
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Commit-Queue: Samuel Rawlins <srawlins@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>

Change-Id: Ie0df2f4be45e5db2fa255dcf8c30ddf8408c155b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382420
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Matan Lurey <matanl@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2024-08-27 17:44:28 +00:00
Konstantin Shcheglov c5d0da620d Parts. Store PrefixScope directly into PrefixElement.
There is no actual need to go through Map.

Change-Id: I065ad3dce75eafe876d22cc070e86f9e55cd3f05
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382440
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2024-08-27 17:14:38 +00:00
Chloe Stefantsova 56230ca6cd [analyzer][cfe] Provide single implementation for a shared method
Previously, performSubtypeConstraintGenerationForFutureOrLeftSchema
and performSubtypeConstraintGenerationForFutureOrRightSchema had
almost identical implementations. The purpose of those methods was to
provide two differently typed entry points to the same algorithm. This
CL reduces the code duplication by introducing
performSubtypeConstraintGenerationForFutureOrInternal that the two
entry points simply redirect to.

Part of https://github.com/dart-lang/sdk/issues/54902

Change-Id: Idd545eed3cba67882f81b68e9b69ccf1aecb4257
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382164
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2024-08-27 06:23:19 +00:00
Konstantin Shcheglov 95e2a2d683 Parts. Migrate FileState special cases of augmentation tests to parts.
Change-Id: I17939b44fc655b1dcbe89fd947c819c05e3778ba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382301
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-27 00:21:09 +00:00
Brian Wilkerson 702d5a4bd9 Implement fields, getters, and setters in the new element API
Change-Id: I2670e0c3bcb7f41d2177643849c115b071f8dede
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382240
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-08-27 00:18:59 +00:00
Konstantin Shcheglov c2b92853d4 Parts. Change using 'augmentation' to 'part' where applicable.
Change-Id: I61cb3e112d83ed20536e4018c50c568cae7fb902
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382300
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-26 23:19:51 +00:00
Konstantin Shcheglov bbe45a6f34 Parts. Fix for associating metadata with 'part' directives in parts.
Change-Id: I1bf3341f011ead6184915bc243538bd675ae7dc3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382221
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-26 21:39:12 +00:00
Brian Wilkerson 50dc8bf4a6 Implement new model elements for methods and constructors
Change-Id: I0bed26eaed11556e79a967204bb398deb165a868
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382040
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-08-26 17:52:21 +00:00
Konstantin Shcheglov a6dbe2f066 Extension type. Issue 56508. Use nonSynthetic name offset.
Bug: https://github.com/dart-lang/sdk/issues/56508
Change-Id: Ia575089a28ac3ddd5fbbf7e57fde4b59204ce590
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382100
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-26 16:25:48 +00:00
Fedor Shcheglov 848169ae61 Make FileAnalysis.element required.
Change-Id: I10ca12e451155126fcdae3129938f4f7e7531f5e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382102
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-08-26 15:55:10 +00:00
Fedor Shcheglov b2401e0fe8 Migrate element model tests to part/part of.
Change-Id: I7ddf72c0d2418e83944027fd7a9b8a1c1ce8f9ce
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/382101
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-08-26 15:53:48 +00:00
Sam Rawlins b551690c56 Reapply "analyzer: separate unused_element_parameter from unused_element"
Fixes #49025. Fixes #48401

This allows users to blanket ignore unused_element_parameter without
ignoring unused_element. They are reported in distinct situations so it
is valid to separate them.

This reverts commit b888da751e.

Change-Id: I8ea52fcdcb491c140c1283602d6911c939e78d50
Tested: trybots
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381882
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-23 20:49:01 +00:00
Chloe Stefantsova 3acd125e44 [analyzer][cfe] Implement types and type schemas as extension types
This CL removes Type and TypeSchema type variables from the abstract
classes with shared code between the CFE and the analyzer. Extension
types SharedTypeView and SharedTypeSchemaView are declared to replace
the type variables.

The update propagates the discipline of distinguishing between types
and type schemas into the clients of the shared code. Now the code in
the CFE and the Analyzer that uses the shared code needs to statically
specify the interpretation of their type objects as either types or
type schemas.

Another benefit of the update is SharedTypeView and
SharedTypeSchemaView being less opaque than the Type and TypeSchema
type variables, which removes the necessity for some code duplication
in abstract methods for types and type schemas.

Finally, the update enables some further changes in the shared code
between the Analyzer and the CFE.

Change-Id: I88e8cfcd47d4f721974b4f2612521e85bb54c30f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379302
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2024-08-23 08:10:09 +00:00
Danny Tuppeny 337ad11aca [analysis_server] Don't create additional analysis contexts for sub-folders of folders with plugins enabled
This fixes a bug in c0c697bebe where a folder with no analysis_options would be treated as if it had no plugins enabled, which inside a parent that did have plugins would look like plugins changed, and create an additional context.

Change-Id: I48a14ca92519e6798c6ca58cab6966c7996dc257
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381860
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-08-22 14:39:46 +00:00
Johnni Winther bf3c716f36 [cfe] Create FunctionTypeParameterBuilder for function types
This changes the BodyBuilder to create FunctionTypeParameter instead
of FormalParameterBuilder for "parameters" in function types. This
avoids the creation of unnecessary VariableDeclaration nodes
function types.

The types of these VariableDeclarations where created before the type
variable scope was completed, introducing an artificial dependency on
the pending nullability computation.

Change-Id: Ie1203fa4c78a27f3e7a0dfad16725cbbde24a6a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381143
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2024-08-22 08:23:05 +00:00
Danny Tuppeny c0c697bebe [analysis_server] Create context roots where plugins are enabled
Fixes https://github.com/dart-lang/sdk/issues/56475

Change-Id: I3e8da83a6fea07482faba4d86aa3db6c6ce8df4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381481
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-08-21 16:21:30 +00:00
Paul Berry 4f773522a3 Allow deprecated messages to be aliased.
Previously, the logic to decode an aliased analyzer message from yaml
only decoded the `aliasFor` and `comment` fields of the alias, and
ignored all other fields (including `deprecatedMessage`). This meant
that when deprecating one error code in favor of another, it was
necessary for the new code to be an alias for the old one. But that's
the opposite of what we usually want when deprecating things; we
usually want old thing to be an alias for the new one, so that the
behavior will be unchanged when the deprecated thing later gets
removed.

This CL refactors the yaml decoding logic for analyzer messages, so
that there's more sharing between aliased and non-aliased
messages. Now, when one message is an alias for another, we can choose
which of the two messages to mark as deprecated.

Change-Id: Ib5ddff62c75724ba55c4a5b19729792f1dcffbec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381300
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2024-08-19 17:16:31 +00:00
Sam Rawlins 44dd260543 analyzer: Correct quoting of 'null' in messages
Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
Change-Id: I5bcde103555688709ab2193fb457f0686f032d82
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381301
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-19 17:08:28 +00:00
Sam Rawlins 9a2dfac822 analyzer: stop reporting on constructors exposed via type alias
Fixes https://github.com/dart-lang/sdk/issues/54543

Change-Id: Iaedcbbee1b11acc9bea52857d087ce3099da056e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381104
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-19 17:07:29 +00:00
Sam Rawlins 5ce0cc571c analyzer: correct wording of "always null" and "never null" warning
Fixes https://github.com/dart-lang/sdk/issues/53670

Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
Change-Id: I5e890e990d128754b8d9a89e8e940c756779a602
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2024-08-19 16:14:28 +00:00
Paul Berry 7f5a698514 UNREACHABLE_SWITCH_CASE: Remove HintCode in favor of WarningCode.
Previously, `HintCode.UNREACHABLE_SWITCH_CASE` was marked as
deprecated, and `WarningCode.UNREACHABLE_SWITCH_CASE` was an alias to
it. This created a slightly confusing situation, because it meant that
all code referring to the diagnostic had to refer to it as
`WarningCode.UNREACHABLE_SWITCH_CASE` (to avoid a deprecation lint),
but the diagnostic still _behaved_ like it was a hint, and therefore
test runner expectations still had to treat it as a hint.

It turns out that it's not really necessary to go through the
deprecation dance when changing the kind of a diagnostic, since (a)
members of `HintCode` and `WarningCode` aren't exposed through the
analyzer public API, and (b) ignore comments don't have to specify
whether something is a hint or a warning.

So the easiest way to clear up the confusion is to just remove
`HintCode.UNREACHABLE_SWITCH_CASE` entirely, and move its implemention
into `WarningCode.UNREACHABLE_SWITCH_CASE` (so that the latter is no
longer an alias).

Change-Id: I9ff7901ad38a2c168c5e54cbe0c1c52bf7c50186
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/381103
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2024-08-19 16:09:14 +00:00
Sam Rawlins 8becafbe57 analyzer: correct dead_code reported range in case of a record access
Fixes https://github.com/dart-lang/sdk/issues/56222

Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
Change-Id: I8150ff2ef71c83a98aa418905f15d58065cc431c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380078
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-19 15:41:35 +00:00
pq 4ef9223e7c [wildcards] fix super formal positional param handling
Fixes `co19/src/LanguageFeatures/Wildcards/super_parameters_A04_t02.dart`

```
class A {
  final int x, y;
  A(this.x, [this.y = 0]);
}

class C extends A {
  final int _;
  String log = "";
  C(this._, super._, [super._]) {
    log = "_=$_, x=$x, y=$y";
  }
  C.n(this._, super._, [super._ = 1]) {
    log = "_=$_, x=$x, y=$y";
  }
}

main() {
  Expect.equals("_=1, x=2, y=3", C(1, 2, 3).log);
  Expect.equals("_=1, x=2, y=0", C(1, 2).log);
  Expect.equals("_=1, x=2, y=1", C.n(1, 2).log);
}
```

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



Change-Id: Ia87ae6a73816a08ca83d77c7f077e9ed7c153ebb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380883
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-08-16 23:24:29 +00:00
Fedor Shcheglov d3f37ab335 Removed LibraryOrAugmentationScope.
These two classes were not used.

Change-Id: Ie656abf81c3a001efb76158f41466a111c8638e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380966
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-08-16 20:03:01 +00:00
Konstantin Shcheglov 6bace691d8 Try removing _rewriteDartUi()
Not sure if it will be green in google3, bots are green.
Maybe?

Change-Id: I28c4a8ead2b744d03fc09af8baa6a30a0c7714bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380881
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-16 00:35:20 +00:00
Konstantin Shcheglov ccb50e1272 Parts. Rename to LibraryFragmentInclude.
https://discord.com/channels/608014603317936148/1171510601655275612/1273354662430511218

Change-Id: Ifa5c8d6a14be6fcb7fd4de306efb820c3af5967e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380604
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-15 16:53:03 +00:00
pq a8b661f4a7 [wildcards] extension type parameter scopes
Fixes:

CompileTimeError -> Pass (expected Pass)
co19/LanguageFeatures/Wildcards/binding_A02_t08

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

Change-Id: I5fffc47b52a2fa5d86e6be0b8a780bc3abcff1c7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380206
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-08-15 00:27:10 +00:00
pq b140970238 [wildcards] optimize initializer scope checking; test cleanup
Follow-up from: https://dart-review.googlesource.com/c/sdk/+/380160

Change-Id: I3268ba1a519ef295019679b87f773fd008379c75
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380582
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-08-14 23:22:18 +00:00
Konstantin Shcheglov 2b435a9822 Parts. Simplify MacroApplicationOrderTest.
Change-Id: I732518ee67f8991969eae0f17ef42d3dbb09d935
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380641
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-14 21:22:28 +00:00
Paul Berry 95cbc6a497 Remove unnecessary break from analyzer
I'm currently working on a fix for
https://github.com/dart-lang/linter/issues/5061 (unnecessary_breaks
fails to report an unnecessary break inside a default clause). To
avoid a trybot failure once the lint is fixed, we need to fix all
instances of unnecessary breaks that the fixed lint would catch.

Bug: https://github.com/dart-lang/linter/issues/5061
Change-Id: Ied3d5f5f548972fd03cb7b6330fe3491459ab658
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380620
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2024-08-14 20:11:59 +00:00
Konstantin Shcheglov 2c77c6749d Parts. Use macro generated parts, not library augmentations.
Change-Id: Id661f8bfc884f24056d49af048b5cb5c3c742812
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380211
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Jake Macdonald <jakemac@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-14 20:04:21 +00:00
Martin Kustermann b888da751e Revert "analyzer: separate unused_element_parameter from unused_element"
This reverts commit c1976b097d.

Reason for revert: It seems this change caused failures on Flutter
HHH bot. Example log can be found at [0]:
```
| lib/src/super_reader/super_reader.dart:615:14: Error: Final field 'showDebugLeaderBounds' is not initialized.
| Try to initialize the field in the declaration or in every constructor.
|   final bool showDebugLeaderBounds;
|              ^^^^^^^^^^^^^^^^^^^^^

```
Looking at the sources it seems that may be related to the
`// ignore: unused_element` analyzer directive:

```
   602	/// A [SuperReaderDocumentLayerBuilder] that builds a [SelectionLeadersDocumentLayer], which positions
   603	/// leader widgets at the base and extent of the user's selection, so that other widgets
   604	/// can position themselves relative to the user's selection.
   605	class _SelectionLeadersDocumentLayerBuilder implements SuperReaderDocumentLayerBuilder {
   606	  const _SelectionLeadersDocumentLayerBuilder({
   607	    required this.links,
   608	    // ignore: unused_element
   609	    this.showDebugLeaderBounds = false,
   610	  });
   611
   612	  /// Collections of [LayerLink]s, which are given to leader widgets that are
   613	  /// positioned at the selection bounds, and around the full selection.
   614	  final SelectionLayerLinks links;
   615
   616	  /// Whether to paint colorful bounds around the leader widgets, for debugging purposes.
   617	  final bool showDebugLeaderBounds;
```

So tentatively reverting this CL.

[0] https://logs.chromium.org/logs/dart/buildbucket/cr-buildbucket/8739650477551803313/+/u/Run_customer_testing_tests/stdout

Original change's description:
> analyzer: separate unused_element_parameter from unused_element
>
> Fixes https://github.com/dart-lang/sdk/issues/49025
>
> This allows users to blanket ignore unused_element_parameter without
> ignoring unused_element. They are reported in distinct situations so it
> is valid to separate them.
>
> Tested: Presubmit CI
> Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
> Change-Id: I4844a6a0e0a67cd5e37ed8735b1526e174deb950
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378500
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
> Reviewed-by: Phil Quitslund <pquitslund@google.com>
> Commit-Queue: Samuel Rawlins <srawlins@google.com>
> Reviewed-by: Ryan Macnak <rmacnak@google.com>

Change-Id: Ibbba75fe56601c7c4b5535c9142cf94c2dd80b91
Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380460
Commit-Queue: Martin Kustermann <kustermann@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-08-14 08:05:37 +00:00
Halil Durmus 3d083d2720 [vm/ffi] Allow getters/setters in structs with variable-length inline arrays
Closes: https://github.com/dart-lang/sdk/issues/56399
Change-Id: Ia5da1d950c3b08e0a4b099930ef3ad84f3116601
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379622
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Auto-Submit: Halil Durmus <durmushalil@proton.me>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-14 06:50:43 +00:00
Brian Wilkerson 89ebe93a63 Implemement extensions and extension types
Change-Id: I641c9f87ce7eafcf1b34aded43bdf2fdd8fba80f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380207
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-08-14 04:16:48 +00:00
Kallen Tu 519247e470 [analyzer] Add tests for behaviour between wildcards and constant evaluation.
Fixes https://github.com/dart-lang/sdk/issues/56244
Change-Id: Ie5f615bf8956aff33d4015c355bb90e125084c63
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380282
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Kallen Tu <kallentu@google.com>
2024-08-13 18:09:45 +00:00
Brian Wilkerson b6f11666f6 Implement enums and mixins for the new element model
Change-Id: Ia4fc8068b25e390f78b99dfc3ded528098da885b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380047
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2024-08-13 17:53:38 +00:00
Sam Rawlins c1976b097d analyzer: separate unused_element_parameter from unused_element
Fixes https://github.com/dart-lang/sdk/issues/49025

This allows users to blanket ignore unused_element_parameter without
ignoring unused_element. They are reported in distinct situations so it
is valid to separate them.

Tested: Presubmit CI
Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
Change-Id: I4844a6a0e0a67cd5e37ed8735b1526e174deb950
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378500
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2024-08-13 12:12:13 +00:00
Sam Rawlins c008c159ee Enable feature digit-separators
This CL  makes the `digit-separators` feature enabled by default in
Dart Language Version 3.6.

Tested: Presubmit bots
Change-Id: If0776e96066ecaad3baa7f92fce167317fb976f2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/379660
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2024-08-13 04:09:39 +00:00
pq a97ef314d4 [wildcards] local function DUPLICATE_DEFINITION support
See: https://github.com/dart-lang/sdk/issues/56089

Fixes:

CompileTimeError -> Pass (expected Pass)
co19/LanguageFeatures/Wildcards/binding_A02_t05

Change-Id: Icf996952a4f87f71cc64cecf7ac539df363c3db6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380045
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-08-12 22:43:54 +00:00
Konstantin Shcheglov d6432ed301 Parts. Resolve PartDirective configurations.
Change-Id: I499a1f971ac30b919e7aede267779151495b235c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380141
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-12 22:23:28 +00:00
pq 5a62d028c1 [wildcards] fix constructor parameter initializer scope
See: https://github.com/dart-lang/sdk/issues/55680

Fixes:

MissingCompileTimeError -> Pass (expected Pass)
co19/LanguageFeatures/Wildcards/binding_A01_t02
co19/LanguageFeatures/Wildcards/initializing_formals_A02_t01
co19/LanguageFeatures/Wildcards/initializing_formals_A02_t03

MissingCompileTimeError -> Pass (expected Pass)
language/wildcard_variables/initializing_formal_parameters/this_initializer_access_error_test

Change-Id: I7c14757e312e7f426290ed63ed745eac4856bab3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380160
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2024-08-12 21:25:21 +00:00
Konstantin Shcheglov 4cea10fbf0 Parts. Report PART_OF_NAME when Feature.enhanced_parts is enabled.
Change-Id: I85925218b37a7cb65a7b50da6cc968155fd4789e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380043
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2024-08-12 20:11:06 +00:00
Konstantin Shcheglov 58719246cd Parts. Update ExportDirectiveResolutionTest.
Change-Id: Idf684f6a93ef36d31b57e837036ce186d24e1dcd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/380041
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2024-08-12 16:32:18 +00:00