Commit Graph

12192 Commits

Author SHA1 Message Date
Brian Wilkerson d40f06ee2a Partial constant evaluation for record literals
Change-Id: I53db27f67ab1244b7e25a08002ae165840c7c012
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256544
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-26 21:53:21 +00:00
Konstantin Shcheglov ac59daa32c Move RecordLiteral resolution into RecordLiteralResolver.
Change-Id: Ia748568e92d572f6371027509ef8722c86f6e4d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256523
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-26 21:17:20 +00:00
Konstantin Shcheglov dfc82df6f7 Store RecordLiteral(s) in summaries, for default value, initializers, etc.
Change-Id: Ida4f9f4467cc951a167a6700ea0113c100107141
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256580
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-26 20:50:42 +00:00
Konstantin Shcheglov 5a989a3161 Test that record types named fields like $0 still have different shape with positional fields.
Change-Id: I991fc24a68025f1b01832e759d72c331fbf62d32
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256542
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-26 20:18:44 +00:00
Konstantin Shcheglov 5bb4ddd2f6 Resolve positional record field access in PropertyAccess.
Change-Id: I1d2adf5188302a3c7548287e02973cbc2a288af8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256522
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-26 19:48:20 +00:00
Konstantin Shcheglov e29ac90212 Implement record type resolution in RecordTypeAnnotationResolver, from ResolutionVisitor.
Change-Id: Ia3ab904c05d7800088ca6467d35151821130a523
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256432
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-26 19:47:43 +00:00
Brian Wilkerson 088c346ed0 Add some tests of record type assignability
Change-Id: Ic653447e3cb8fe8582131461d838c17e59f33fa8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256428
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-26 19:11:01 +00:00
Konstantin Shcheglov d90a389b97 Tests for empty record type annotation.
Change-Id: I1f0b5ae44d8de1cd9ada90da95879267d77d7291
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256426
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-26 18:41:41 +00:00
Brian Wilkerson 82da630cb3 Implement an object representation for records for use in constant evaluation
Change-Id: I98be6037067afb0a5f976dc5eccfbd71deef8298
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256520
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-26 17:41:27 +00:00
Konstantin Shcheglov 3c370fc85d More tests for RecordTypeAnnotation positions.
Change-Id: Iad0b676280e59f93ab8794c79525ee375c677831
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256370
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-26 16:54:41 +00:00
Konstantin Shcheglov d1e8cd4e96 Rewrite PrefixedIdentifier with RecordType prefix into PropertyAccess.
When we will have enough time, it would be nice to do such rewrite
for any case when `prefix` is not a `PrefixElement`.

Change-Id: Iec4a75a9d885bd0633ec78d56ce18830f4005606
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256424
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-26 16:50:41 +00:00
Konstantin Shcheglov 85dee9748c Specify that 'get element' for FunctionType, RecordType and VoidType always return 'Null'.
Change-Id: I4bbf7aaef2afc3d9ad5d2f7da35a4c8bd9e39caa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256421
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-25 21:24:36 +00:00
Brian Wilkerson a95bf31736 Report diagnostics for record types
Change-Id: I9727f73dcfc4d110b5510a066a979ce6d9fd56d7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256369
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-25 20:35:53 +00:00
Konstantin Shcheglov b2b50f7fc6 Make RecordTypeImpl structured, without elements.
Change-Id: I7e06c728037f2b94609165394a40388979269cc0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256420
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-25 19:47:03 +00:00
Brian Wilkerson 9d1a877082 Generate diagnostics for invalid field names in record literals
Change-Id: I12ece78e257b1265d86114e8c17e6a8c641559e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256364
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-25 17:47:06 +00:00
Danny Tuppeny 857a0d2e66 [analyzer] Resolve comment references for inherited members
Fixes https://github.com/Dart-Code/Dart-Code/issues/4114.

Change-Id: I47fe2909e4d09366c1e2f432c31076ba690fac7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256162
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-25 14:29:43 +00:00
Brian Wilkerson 38ed71630c More fixes for AstBuilder related to record types
Change-Id: I01f840ae2a83afb5e940c543d529e4878386a7a6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256246
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-25 04:09:41 +00:00
Brian Wilkerson 310d6d0660 First draft of some process docs for the analyzer
I'm not sure that the list of "features" (that isn't the right word here)
is either correct or complete. I'm happy to fix it as part of this CL;
I'm also happy to land this as-is and let someone else fix it if that's
easier.

Change-Id: I9aa56e8eb1116478eedd0b37c91b8197e89809ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256217
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-24 19:58:41 +00:00
Brian Wilkerson 2f3c69c361 Rename a subdirectory under doc to match what analysis_server has
Change-Id: Ibb4447511570a61b71a8c92cf6d7fe738d6054a6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256216
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-24 19:00:39 +00:00
Brian Wilkerson 2b27d3257b Report duplicated field names in record literals
Change-Id: Ifc5c3a06c7f489b00421f5b1af47df52615694d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256200
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-24 16:33:49 +00:00
Brian Wilkerson 65b4621a09 Fix an exception when a record type appears in an extends clause
Fixes https://github.com/dart-lang/sdk/issues/49801

Change-Id: I829abcc3c1c52cfff47b424e0915961b68cdd2ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256215
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-24 16:33:19 +00:00
Martin Kustermann 4193bb3846 [analyzer] Remove the [ImportedElement] class
When running analyzer on flutter and it's transitive sources, it
consumes around 480 MB of memory.

The [ImportedElement] class is an intermediatey wrapper around an
[Element] and a boolean that is mostly false.

This CL removes the [ImportedElement] class and stores the boolean
side-information alongside the element in [PrefixScope] and
[PrefixScopeLookupResult].

This saves around 15.5 MB of memory.

TEST=ci

Change-Id: I94692a9709c70decd90c604bbdc85f5b308b3006
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256029
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2022-08-24 13:53:49 +00:00
Jens Johansen bba453b798 [parser] Record type type arguments
Fixes https://github.com/dart-lang/sdk/issues/49769

Change-Id: Icffa2dcfae95d950c00e72aa01121b6d6ebd147d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256065
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2022-08-24 08:25:38 +00:00
Konstantin Shcheglov 6fd17dfa19 Test for PropertyAccess resolution with generic extension.
Change-Id: If7bce8efe4e26891b9bf4ce3c086e3168276519c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256165
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-23 20:00:30 +00:00
Konstantin Shcheglov bb3037260a Support for aliased RecordType(s).
Change-Id: I0870bb506b1ebb3e678db7beedc1bf8ea606b65e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255903
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-23 19:14:30 +00:00
Konstantin Shcheglov 5a09ff067f Update TypeConstraintGatherer to do subtype matching for RecordType.
We will need this for inference.

Change-Id: I50b1a9adfcd6e09f05e202a10c7edcccddb3b760
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255982
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-23 19:10:30 +00:00
Konstantin Shcheglov b348e1d5c0 Resolve PropertyAccess with RecordType target.
Change-Id: Ibe1f070d8b72d4d9b0fd636eb1acb9907ccbfc31
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255980
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-23 16:48:30 +00:00
Johnni Winther 6751831ac6 [parser] Add hasNamedFields parameter to endRecordType
This makes it possible to handle named record fields without peeking
at the last record field (list) on the stack.

Change-Id: I96e2009cf5933ef505459ac8722d5bcbeb67db83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255983
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2022-08-23 15:43:10 +00:00
Konstantin Shcheglov 7857a1a3b1 Use shared typeString() from StringTypes mixin.
Change-Id: Ic1a8a5ce9e9497a924754939cf6e6a1de98d16bb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/256022
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-22 21:09:05 +00:00
Konstantin Shcheglov 490c03002b Add Record class to MockSdk, test with ConditionalExpression.
Change-Id: I49ae5de9b373b0a8582acc0cdcba67b3d8a26bc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255960
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-21 03:01:46 +00:00
Konstantin Shcheglov 6785c2deb7 Resolve RecordTypeAnnotation AST.
Change-Id: I5eac632ea3badf5dbce35fb842b17c9898bb02cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255818
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-20 02:43:35 +00:00
Konstantin Shcheglov b138d6b3ae Tests for parsing with trailing comma.
Change-Id: Ie4e10393f8c7840afcbe14d6d3d434a4b19ca507
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255900
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-20 02:29:45 +00:00
Konstantin Shcheglov 78f31f0ac5 Remove record nodes from AstTestFactory, parse instead.
Change-Id: I1872a2e41130ab3dc00a47f00c97656125414c42
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255883
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-19 22:50:35 +00:00
Brian Wilkerson c306096cd2 Remove the comma field from record type fields
Change-Id: Ia6c056b12f3a3fc191e208457c84ccaa85bb8194
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255882
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-19 21:50:25 +00:00
Konstantin Shcheglov 2bc155e6e7 Build RecordType(s) for RecordTypeAnnotation(s) in element model.
Change-Id: I4c42ffe10d2f51796d98d4901e04115fc3be6e83
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255881
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-19 21:49:05 +00:00
Brian Wilkerson 04535fa727 Add support to AstBuilder to build record type annotations
Change-Id: I621c15077a990b8f631d7861c7d4e54718809cdf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255824
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2022-08-19 20:55:55 +00:00
Konstantin Shcheglov e04a9e80ce Issue 49766. Fix memory leak with enum constants and Expando.
Instead of using Expando, we store this data in an object that
lives as long, as we need it to compute diagnostics.

Bug: https://github.com/dart-lang/sdk/issues/49766
Change-Id: I0c2a2e15f9e1ea92a415bae6e13bbbd373dc613b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255825
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-19 20:47:55 +00:00
Konstantin Shcheglov b7837289ad Add tokens leftParenthesis/rightParenthesis to RecordTypeAnnotation.
Change-Id: Ib2f45c2d46a709d6b0c2c67c641c1566c5b9503e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255823
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-19 17:28:52 +00:00
Brian Wilkerson 325e401bd2 Add visitor support for record type AST nodes
Change-Id: I81f158eac128cdabe7848d1111f67e41777a7f45
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255803
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-19 16:39:45 +00:00
Konstantin Shcheglov c020a09a68 Restore code in RecordLiteralTest.
Change-Id: I7391cdea3cb3fccaa536fc34677242d2cb2a19ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255806
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-19 16:26:05 +00:00
Jens Johansen 38e5b8f9e0 [parser] Parse Record Types
This is the first stab at implementing the record types from
https://github.com/dart-lang/language/blob/master/working/0546-patterns/records-feature-specification.md

Change-Id: I15c07e05c32a95206d177521c5f2b7fed69b4fbc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255244
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-19 07:04:44 +00:00
Konstantin Shcheglov 9663efd804 Write / read RecordType into summaries.
Change-Id: I90665fbb3bdc4307270a17d9cefa896d5f931f3e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255762
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2022-08-19 05:12:54 +00:00
Brian Wilkerson ad223fd07f Resolve record literals
I'm reasonably confident that this is incomplete, but I'm hoping that
it's a least headed in the right direction.

There aren't any tests because I believe that our resolution tests are
all based on source code, and we can't yet parse record literals. I'm
happy to hold off on landing this CL until we have the parser work
landed and the AstBuilder updated so that I can have tests to go with
the changes.

Change-Id: I7cd2a9b3a2e496c1220d569b36497dc326ff6915
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255146
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2022-08-18 20:29:19 +00:00
Konstantin Shcheglov 9d05e410ad Implement DOWN for RecordType.
Change-Id: I578e98de509ae6ded1d6a5618f75f0576ceef6a8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255682
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-18 20:17:47 +00:00
Konstantin Shcheglov 66c09b2fd2 Update ReplacementVisitor to support RecordType.
Change-Id: I4ada89fc87709dd15f2add86005d6c8927d7b773
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255684
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-18 20:09:44 +00:00
Konstantin Shcheglov 54bd737c30 Update RecursiveTypeVisitor to support RecordType(s).
Change-Id: Ic44d956040144fe56f12637527b49368371c3947
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255683
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-18 19:50:44 +00:00
Konstantin Shcheglov c9febdd4e3 Update display string for promoted type parameter type.
Bug: https://github.com/dart-lang/sdk/issues/49692
Change-Id: I4f61dfe9bb123f000cb253f14a0733063f16acde
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255547
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-18 17:26:34 +00:00
Konstantin Shcheglov 78b5bb0ae2 Remove deprecated BazelWorkspace.
Change-Id: I656f3c906cdaeb2b7a5ab93c7ccde9693e9a9cba
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255549
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-18 01:48:36 +00:00
Konstantin Shcheglov d65d3c1ca6 Add visitRecordElement() and friends.
Change-Id: I8323d6c34b27b15f2453642a8f3f64763798c071
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255580
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2022-08-17 22:55:43 +00:00
Konstantin Shcheglov f15b6f24d2 Implement runtime type equality for record types.
Change-Id: I06a717fddcc8600afa39b4a33890415456eb3173
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/255546
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2022-08-17 22:49:23 +00:00