Commit Graph

12271 Commits

Author SHA1 Message Date
Ahmed Ashour e09493b7bc [analyzer] use preferred quote-style when generating imports
Bug #49559

Change-Id: Ib77ea67bb1ea15bfabb1c717cfb5abf13fd6d3cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259720
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-21 17:12:46 +00:00
Konstantin Shcheglov 126d79e27a Use named parameters for a few AST nodes.
Change-Id: Iee8edcca9ae38e34e39a4156d5488f53fecbf0ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260280
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-21 15:45:56 +00:00
Oleh Prypin fba97eb77f Allow hooking into DeprecatedMemberUseVerifier for other use
Split out a base class with an abstract `reportError` method that can be overriden to possibly filter errors or report them in a different way.

For the main class there is no change in behavior at all, it just implements `reportError` with the prior behavior.

Bug: b/247790768
Change-Id: I56e9afcd40b35db0063a25bfa4f6afb763267103
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260200
Auto-Submit: Oleh Prypin <oprypin@google.com>
Commit-Queue: Oleh Prypin <oprypin@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-09-21 08:00:05 +00:00
Konstantin Shcheglov 1aa398d4be Report EXPECTED_NAMED_TYPE_X when not a NamedType is parsed.
Change-Id: Ibebc276777075da12e36642f08291fa9a9f9ac91
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260073
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-21 02:24:45 +00:00
Konstantin Shcheglov 1ad52e061a Test for Expression.inConstantContext when the expression is RecordLiteral.
Change-Id: I1330b966296e9521bdb0d5e576cd1a63f2c5fbdc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260077
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-20 21:31:35 +00:00
Konstantin Shcheglov eb00d038c7 Update Expression.inConstantContext to support RecordLiteral(s).
Change-Id: I02c3692c359e65822d30a4e931b14dec5963fef0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260065
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-20 20:32:55 +00:00
Ahmed Ashour 6e03189e2b [analyzer] fix diagnostics for lints map
Fixes #49651

Change-Id: I87b14e407e699da8b9247eed93d957e2ba12e22d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257520
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-20 17:11:35 +00:00
Ahmed Ashour f92aaae20c [analyzer] UNUSED_RESULT to handle PrefixExpression
Fixes #49975

Change-Id: I30d08994b214b5bb453b45ca4ef98c45cebc22a6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259589
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-20 16:30:25 +00:00
Konstantin Shcheglov 139344eb28 Support for RecordState in DartObjectPrinter.
Change-Id: I44481daa436916841620491529178036fc46456a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260003
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-20 16:05:05 +00:00
Konstantin Shcheglov 81efd79749 Support for RecordState in DArtObject.getField()
Change-Id: I095ee40e69617b0a45c1bcb493ef4891dbef4138
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/260002
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-19 23:56:41 +00:00
Konstantin Shcheglov 9d0950716f Features control_flow_collections and spread_collections cannot be opted out.
Change-Id: Iaaa0303cdefc168b3cd6da475b514f72bbe5db8f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259900
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-19 21:55:21 +00:00
Sam Rawlins fb29df7fdc Add methods to Set and Map which are needed for Linter
Bug: https://github.com/dart-lang/linter/issues/1307
Change-Id: Ia62aa7715509a45eb9fb0feb48c58ffee551db34
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259506
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-19 18:26:31 +00:00
Chloe Stefantsova f8ef60a868 Revert "Reland "[cfe,corelib] Add class 'Record' to the core library""
This reverts commit 4b6a8f35b9.

Reason for revert: Breakages in google3.

Original change's description:
> Reland "[cfe,corelib] Add class 'Record' to the core library"
>
> Part of https://github.com/dart-lang/sdk/issues/49713
>
> Change-Id: I56bfca49492d14bb561b32993fd9adfe775b7400
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259583
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Slava Egorov <vegorov@google.com>
> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I61c4db244329615d7d218484cd86601b1c737ba6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259800
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Auto-Submit: Chloe Stefantsova <cstefantsova@google.com>
2022-09-19 13:52:01 +00:00
Konstantin Shcheglov e8b67ccf6f Inline methods to create ForElementImpl, IfElementImpl, VariableDeclarationImpl.
They were simply passing arguments to constructors.

Change-Id: Ic986d357902ea540c1de0c8b9f8b6a4cf1c8cdc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259646
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-18 23:06:22 +00:00
Konstantin Shcheglov 836fc6dc3a Remove EphemeralIdentifier.
Change-Id: I0ae49cfcd0d4592e8951b18437f0fa3fa5d3ac5a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259645
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-18 07:31:52 +00:00
Konstantin Shcheglov 3f5a889378 Features spread_collections and control_flow_collections are enabled by default, update AstBuilder.
Change-Id: Ib82a8841a2fceec12cc8506b3946a9cd50d4a7d9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259643
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-17 17:43:01 +00:00
Konstantin Shcheglov 9618bd7e6d Remove 'SimpleIdentifierImpl name' from AST impl, use Token directly.
I removed factory methods that are already unused, and update other.

Ideally we should use Token(s) in AstBuilder as well, but it was too
complicated right now, so I will try doing this later.

Change-Id: I2dcfa0b419818ba551401cd08b7c496ebb90c840
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259641
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-17 17:33:51 +00:00
Konstantin Shcheglov aeacd9be04 Follow up for IfElementImpl / IfStatementImpl.
Change-Id: Iaed22f7e8cb97ad483d0ce7c13854ec33ea73673
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259642
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-17 16:52:51 +00:00
Konstantin Shcheglov 41fecd5394 Tweak for UP() for record types.
Change-Id: Iefbbfdaee2a90c2987d54d7d10aa202cef8577f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259516
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-16 22:40:11 +00:00
Brian Wilkerson 66d74fa274 Use named parameters for if statement and element nodes
Change-Id: Ifaf25f9be34fe93fcae24f571d480248e5a5366d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259514
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-16 21:39:10 +00:00
Ahmed Ashour 5d0cdc12b0 [analysis_server] rename to handle private named parameters
Fixes #49872
Change-Id: Ied484a817713a922133fed070e6703f57336ffb2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257102
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-16 20:53:30 +00:00
Konstantin Shcheglov 8ebb7d70e5 Issue 49951. Fix SearchedFiles to avoid adding unrelated files to known.
Bug: https://github.com/dart-lang/sdk/issues/49951
Change-Id: I66bd8c18c45ae8c0cde163ea094794a56599acc4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259504
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-16 19:56:00 +00:00
Brian Wilkerson 19ca382f74 Rework the AST structure based on changes to the patterns proposal
I believe that this accounts for all of the changes to the proposal
that impact the AST structure. Let me know if you see something I
missed, though I'm sure we'll find any problems when we implement the
parser support.

If this looks good, then I plan to follow up with changes to the
constructors for `IfElement` and `IfStatement` and remove the
AstFactory methods.

Change-Id: I56937b3715d91b16a8f3a5cf45272278532b0bff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259201
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2022-09-16 17:58:51 +00:00
Chloe Stefantsova 4b6a8f35b9 Reland "[cfe,corelib] Add class 'Record' to the core library"
Part of https://github.com/dart-lang/sdk/issues/49713

Change-Id: I56bfca49492d14bb561b32993fd9adfe775b7400
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259583
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2022-09-16 11:46:40 +00:00
Paul Berry a87935780e Tolerate improper operator declarations when analyzing compound assignment.
We need some defensive coding here to avoid an analyzer crash.

Fixes #46569.

Bug: https://github.com/dart-lang/sdk/issues/46569
Change-Id: Ie51f7279af71ee36b94ad14e928b359288bc09e8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259242
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-15 22:05:19 +00:00
Alexander Aprelev d31c741fbb Revert "[cfe,corelib] Add class 'Record' to the core library"
This reverts commit f553f0aad9

Reason for revert: breaks g3 bot

Original change's description:
> [cfe,corelib] Add class 'Record' to the core library
>
> Part of https://github.com/dart-lang/sdk/issues/49713
>
> Change-Id: Ibb0309f97565c0a623f60e588eefcad6759d5ace
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257066
> Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Konstantin Shcheglov <scheglov@google.com>

TBR=lrn@google.com,scheglov@google.com,cstefantsova@google.com,johnniwinther@google.com

Change-Id: If386819fc7419a660c692e4187ead4ebf142c68c
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259462
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2022-09-15 17:45:50 +00:00
Chloe Stefantsova f553f0aad9 [cfe,corelib] Add class 'Record' to the core library
Part of https://github.com/dart-lang/sdk/issues/49713

Change-Id: Ibb0309f97565c0a623f60e588eefcad6759d5ace
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257066
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-15 11:50:33 +00:00
Konstantin Shcheglov dc0dbb01f8 Make NodeListImpl not resizable, update AstBuilder.
Change-Id: I1930b5fe863788198b5d88c0a08828980d935359
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259103
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-14 20:12:12 +00:00
Paul Berry 625357cc3b AstBuilder: add a temporary data structure for parenthesized conditions.
Previously the AstBuilder used a temporary ParenthesizedExpression
node for this purpose.  Using a custom data structure belonging to the
AstBuilder is less hacky, and paves the way for supporting more
complex conditions (such as those that arise in the `if-case`
construct in the "patterns" feature).

Change-Id: I623cf484d400aef44e835ee95a55903d80aa11a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259105
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2022-09-14 17:31:38 +00:00
Konstantin Shcheglov 3945c9aa71 Use builders in AstBuilder to build ClassDeclarationImpl, etc.
Relatved to https://dart-review.googlesource.com/c/sdk/+/259020

The goal is to avoid the need to update NodeListImpl.
I'm not 100% sure that we can fully achieve this, there is at least
one more place with switch / case.

Change-Id: Ic7468a7b9ded817b3315902cefdeaa7428ec6857
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/259100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-13 18:30:27 +00:00
Danny Tuppeny ba479310b3 [analysis_server] Include implicit parameter types in inlay hints
Change-Id: If1b116cfc2a6fac00c20951e702a7d1a978e5421
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258808
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-13 16:06:27 +00:00
Konstantin Shcheglov daada3e35d Prepare to publish analyzer 5.0.0 and _fe_analyzer_shared 48.0.0
Change-Id: Ib9f0cab59a6791ed077ed78395cc24d1bf3d482c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258860
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-12 19:37:09 +00:00
Paul Berry 466494f5be Shared type analysis: API adjustments for analyzer and CFE
I've begun prototyping what it might look like to integrate the
current shared type analysis functionality with the analyzer and CFE,
and I've discovered some API improvements that are needed:

- The shared logic now handles the possibility that switch cases that
  share a body have been merged prior to type analysis (because the
  CFE merges them during parsing), in addition to the pre-existing
  functionality which assumed that switch case merging had to be done
  in the shared logic.

- The shared logic now returns several pieces of information as the
  result of a call to `analyzeSwitchStatement`: whether the switch
  statement had a `default` clause, whether it was exhaustive, whether
  the last case body terminates, and the type of the scrutinee.  These
  are all needed by the CFE.

- The shared logic now allows `TypeAnalyzer.errors` to be `null`,
  indicating that no errors should be reported.  This reflects how
  errors are suppressed during top level inference in the CFE.

- If a switch case lacks a `when` clause, this is reported by calling
  `handleNoWhen` rather than passing a boolean to `handleCaseHead`.

- The shared logic now reports the appropriate error when a case
  constant doesn't properly match the scrutinee's static type.

- Information about case labels is now delivered to flow analysis via
  `switchStatement_endAlternatives` rather than
  `switchStatement_beginCase`.  This made it possible to rewrite the
  shared `analyzeSwitchStatement` method in a way that requires less
  bookkeeping, because it no longer has to peek ahead to look for
  labels associated with a given case body.

- `TypeAnalyzer.analyzeExpression` is now responsible for
  understanding that "no context" and a context of `dynamic` should
  both be coalesced to `?`.  The analyzer does this (although it's not
  100% why), and it's definitely "business logic" that eventually
  belongs in the shared type analyzer.

- `TypeAnalyzer.analyzeSwitchExpression` and
  `TypeAnalyzer.analyzeSwitchStatement` no longer receive a list of
  ExpressionCaseInfo / StatementCaseInfo objects describing the cases;
  instead they query for them using a callback.  This reduces the
  lifetime of the ExpressionCaseInfo / StatementCaseInfo objects.  In
  the future, when we have record support, we could replace these
  objects with records, which would then be passed on the stack,
  avoiding any allocations.

- A new hook, `handleSwitchScrutinee`, is called right after visiting
  the "scrutinee" expression of a switch expression or switch
  statement.  This hook is needed by the analyzer to compute
  exhaustiveness.  In a future CL, I hope to move exhaustiveness
  analysis into the shared code as well, which should make this hook
  unnecessary.

- `TypeAnalyzer.analyzeSwitchStatement` now reports an error if a
  switch case completes normally and pattern support is not enabled.

- The test class `_MiniAstTypeAnalyzer` no longer overrides
  `analyzeExpression` to provide a default context type; instead,
  every call to `analyzeExpression` that didn't previously provide a
  context now provides a context of `?`.  Note that not all of these
  are correct, but they are close enough for the unit tests we have
  today.  I plan to fix them in future CLs as I replace this logic
  with shared logic.

- The hook `handleVariablePattern` is now always provided with a
  static type.  Previously, it was only provided with a static type if
  this was the first time the variable was bound in the pattern.

Change-Id: I70e3c5468312a9329fcf4ad2e13749a32d2418e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257487
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2022-09-12 13:55:37 +00:00
Parker Lougheed 13f9258511 [analyzer] Fix minor diagnostic message spelling mistakes
Change-Id: I37bb816d814fa804ab35716b6f75f08782ef00e0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258720
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-09-11 17:54:26 +00:00
Konstantin Shcheglov f513115097 Use named parameters for a few AST implementations.
Change-Id: Id6a5f4f547d9e7ef98925168cc8caa9ebc67cab4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258514
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-10 23:00:05 +00:00
Brian Wilkerson 41611a8d87 Change the type of the condition for if statements and if elements
Change-Id: Ia2a708682657527d579048a7b8a85a814e8ba1ac
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258661
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-10 16:32:45 +00:00
Brian Wilkerson b9052f85d6 Add documentation on adding new AST nodes
Change-Id: I13d7e7298c4094c3b85de931034c2d09da95d883
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258508
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-10 05:02:55 +00:00
Brian Wilkerson 00e9dc8644 Add documentation on adding new diagnostics
Change-Id: Ice38a93e009cc9c07638ddce96e8960d986fa3c1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258509
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-09 21:53:36 +00:00
Konstantin Shcheglov f58e9abf12 Use named parameters for a few AST implementations.
Change-Id: I4dcc9dc48c7c4718dff16f01a582f2865a655307
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258502
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-09-09 16:59:44 +00:00
Brian Wilkerson 1e4d26b977 Add visitor support for pattern nodes
Change-Id: Ifaef899d0b34e3d72796afbe09a1e49306dd1038
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258506
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-09 16:58:05 +00:00
Konstantin Shcheglov 680a23c534 Use named parameters in 'for' related nodes.
Change-Id: Id3ae04f383da65780157065278a692b2a654bddd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258500
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-09-09 00:36:57 +00:00
Brian Wilkerson 0f51055083 Add implementation classes for pattern AST nodes
Visitor support is underway.

Change-Id: If4e54515650d21a202635973e2ce63b686bb98f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258400
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-08 21:54:43 +00:00
Brian Wilkerson d7b0c97859 Replace the literal and constant patterns with a single expression pattern
I believe that this is a change we had wanted to make but that I forgot
about until after I'd committed the earlier CL. If that's not the case,
please let me know.

Change-Id: Ida7c70f8b6f5c7e8c2369fd7b709c68ce4322ca1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258320
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-08 18:05:04 +00:00
Brian Wilkerson f1d4d2be26 Fix exception for function type in unexpected places
Closes https://github.com/dart-lang/sdk/issues/45565

Change-Id: I21089bd5194ab563a4cf205d3a7d0a58510345ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258221
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-08 14:08:53 +00:00
pq 90303cd221 Extend AST spelunking to allow for ASTs built from Strings
Change-Id: I6aee6473e60f422da6666718f65d9b737b1cef02
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258160
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2022-09-07 22:00:43 +00:00
Danny Tuppeny b5c7af0417 [analysis_server] Don't search the same files multiple times when referenced by multiple drivers
See https://github.com/Dart-Code/Dart-Code/issues/4106#issuecomment-1239564686.

Change-Id: I6fa86c9fe76e7410cbb00f31798ba3f1961e98ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258000
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-09-07 21:55:02 +00:00
Brian Wilkerson d2dffdf9a8 Add interfaces for the AST nodes to support patterns
Implementation classes will follow after the interfaces have been
finalized, with visitor support following that.

Change-Id: I27e9c12bf299677faa743097869319dc568ad48a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257922
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-07 21:07:42 +00:00
Konstantin Shcheglov 6f0fe880c4 Breaking changes for analyzer version 5.0.0
Reland of https://dart-review.googlesource.com/c/sdk/+/243164

Change-Id: I5167844ea1001f026cf8d9b82465a79f560d188d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257267
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-09-07 16:27:18 +00:00
Konstantin Shcheglov 6546d85c50 Disallow subtyping class Record.
Change-Id: I5f71e47cc0c60444cf0c7baebb4e9e9d3f105ef0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257921
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-09-06 21:04:56 +00:00
pq 37f57356ae add registry hook for RecordTypeAnnotations
Change-Id: I8dad78bb62376b9e4cc7cc9d2dbc752269fa23b6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/257860
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-09-06 19:37:56 +00:00