Commit graph

35228 commits

Author SHA1 Message Date
Konstantin Shcheglov 6f4a6360a0 Issue 45983. Don't catch and ignore exceptions during parsing.
Bug: https://github.com/dart-lang/sdk/issues/45983
Change-Id: Ib1caeb96d03e9cd3000f0005077fa6a7dbdff621
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199369
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-05-12 06:11:18 +00:00
Konstantin Shcheglov 62d0d5ff4d Deprecate AnalysisDriver default constructor.
Change-Id: I9b87cc720b5e3731499302737fcaedcb229f6199
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199371
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-05-12 05:35:58 +00:00
pq 9f27edfab1 time lint registry (for benchmarking)
Change-Id: I92acdd06bac04ce9879cb971a2c98c27749aa4a3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199372
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2021-05-12 04:33:58 +00:00
Konstantin Shcheglov 3a3b3e480b Remove support for FileContentOverlay from ContextBuilder.
Change-Id: I23b9481ac6a841675e401579ff60bfb383865f8b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199361
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-11 23:17:08 +00:00
Konstantin Shcheglov 9049b0a3de Remove support for serializing some AST nodes.
Change-Id: I1f49400967e86fa4ddd09a67fc9e3c8bdac214ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199360
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-11 21:44:14 +00:00
Sam Rawlins 507fe6216a Remove unnecessary imports in front_end
Change-Id: Iad1c41ae9ef2b379a0bed3899fef8cef118727c0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199223
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-05-11 21:15:24 +00:00
Konstantin Shcheglov a3a05c66b9 Replace inConstContextWithoutParent Expando with ConstantContextForExpressionImpl.
Change-Id: I1ad9e3759a0ed04a3e1a188506c6aa4394dde7c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199163
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-05-11 21:14:44 +00:00
Konstantin Shcheglov 12b68d6c87 Remove ContentCache.
Change-Id: I2cec74046d3257a7b9fa6fa01b97b3d22fc2e4d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199162
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-11 20:14:24 +00:00
Sam Rawlins e5ace6f7c1 analysis_server: Remove unnecessary imports
Change-Id: Icdf45541df9707631c9add908abd365e3bbd0c2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199321
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-05-11 19:09:44 +00:00
Konstantin Shcheglov ad895e20d2 Get workspace from AnalysisSession in AbstractLinterContextTest.
R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: I46eb8b0cd0193f048e95d921bd555dd22132d271
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199322
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-11 18:50:15 +00:00
Alexander Markov da4ff4e9a6 [vm/aot] Fix handling of annotations in tree shaker
Previously, annotations were not traced by global type flow analysis
(in order to avoid retaining classes which are only used in
annotations). Annotations were only traced during tree shaking
and references from such constants were treated much like
references from types. This handling of constants in annotations
conflicts with removal of fields, as tree shaker needs to know
which fields are retained upfront to be independent of the visiting
order. In a certain corner case (field was replaced with a getter
but was still used in a constant in annotation) that caused incorrect
AST and crash during serialization of AST.

In order to fix that, this change adds proper tracing through
annotations on members, classes and libraries, as if annotation
constants were used in the executable code. That also means
that annotation classes will be retained as allocated.
In order to compensate for that, a new pass is added before the global
analysis to clean all annotations except @ExternalName, @pragma
(used by the VM) and @TagNumber (used by protobuf tree shaking).

TEST=runtime/tests/vm/dart/regress_45968_test.dart
Fixes https://github.com/dart-lang/sdk/issues/45968

Change-Id: I998e4f7ec7da7b74e1738fc21b354a4ec9f0c071
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199200
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2021-05-11 18:25:24 +00:00
Ben Konyi 33aa207efd fix: Context parse error, parent should be ContextRef
Bug: https://github.com/dart-lang/sdk/issues/45083
TEST=N/A
Change-Id: I1781c83ac2e8868f1d6a49fc4a01edd3e3eef460
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192880
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2021-05-11 17:59:54 +00:00
Ben Konyi b99466d472 Reland "[ VM / DDS / CLI ] Add DevTools support to the standalone VM"
This reverts commit 5cbf10febe.

TEST=pkg/dds/devtools_observatory_connection_test.dart

Change-Id: I682d009f784b930094dae9b7d4e9a66efffb6ee8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198561
Reviewed-by: Siva Annamalai <asiva@google.com>
2021-05-11 17:55:26 +00:00
Brian Wilkerson 6c1e344e3a Regenerate the diagnostic comments after a recent change
There is a test to catch the need to regnerate, but it appears to not be
running on the bots. We should find out why and fix that.

Change-Id: I4cc245933d68cc399ed33613acb4047303a3ef8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199304
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-05-11 16:57:54 +00:00
Tess Strickland 010523ee4a [vm] Fix handling of WeakSerializationReferences in v8 profile.
Instead of trying to lazily create artificial nodes when needed for
WeakSerializationReference (WSR) targets in all cases, create them
eagerly for targets in reachable WSRs, since those are guaranteed
to be needed.

Those for unreachable WSRs are still lazily created as needed, since the
WSR won't even be accessed by the clustered snapshot writer unless the
unreachable WSR is part of another unreachable object that has an
artificial node created.

This rework avoids some issues seen on upcoming CLs where the artificial
nodes for WSR targets weren't getting correctly generated.

-----

Also extend the v8 snapshot profile writer tests to check the sizes of
the text and data sections in ELF snapshots. That means the v8 snapshot
profile writer tests check up to three different measures, from most
precise to least precise, depending on the output mode:

* If writing an ELF snapshot directly: the sum of the sizes attributed
  to the text and data section symbols are checked to be exactly the
  same as the sum of the sizes of the objects in the profile.

* If writing an ELF snapshot either directly or via assembly: the sum
  of the sizes of the text and data sections are checked to be the same
  as the sum of the sizes of the objects in the profile. If using an
  assembler that merges text and data sections, then account for the
  padding between the sections using an approximate check.

* For all: Check that the size of the snapshot as a whole is
  approximately equal to the sum of the sizes of the objects in the
  profile, accounting both for possible padding and for the global
  header information and non-data/non-text sections like the dynamic
  symbol section.

TEST=vm/data{,_2}/v8_snapshot_profile_writer_test

Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-mac-release-simarm64-try
Change-Id: I66e0e7fdb5bb98045621bf516f150a4723e08147
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198942
Commit-Queue: Tess Strickland <sstrickl@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2021-05-11 11:21:44 +00:00
Dmitry Stefantsov 9f750ca0d3 [cfe] Add flags field to Extension and use it for 'extension type'
TEST=Checked by existing tests.

Change-Id: I436c0322124165f52195ebef402d7ab9104bbb30
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198763
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-05-11 10:15:43 +00:00
Konstantin Shcheglov fa521e4c71 Don't report deprecated hints from deprecated constructors.
Change-Id: I4b0413186653ec1a8df36462178e9f3ad268371c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199180
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-11 04:45:13 +00:00
Stephen Adams 823b429d86 [dart2js] js_ast.Name does not need to be Comparable
- js_ast.Name is no longer Comparable
- _NameReference is used on demand rather than for every occurrence.
  This saves 50MB in the big link scenario.
- remove unused asVariableUse() method


Change-Id: I37f55044d394b7e047ca88c527641471bc94c641
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198981
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2021-05-11 01:53:33 +00:00
Robert Nystrom 8efd49860f Add a tool to detect orphaned Dart files in "test/".
Change-Id: I20322067f2cb65c858adfbfef5f785322b8a7a6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198060
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Nate Bosch <nbosch@google.com>
2021-05-11 01:23:03 +00:00
Konstantin Shcheglov 85ca8d6472 Store element model in binary format, and ASTs for initializers.
Internal presubmit looks green.
https://test.corp.google.com/ui#id=OCL:371613550:BASE:372858992:1620628216332:c292dc2

Golem shows about 13% less cold memory, and 30% faster edit.
Other benchmarks are not significantly different.
http://shortn/_R1Y4E7Z2rV

Change-Id: I12acec9c46d4f834f8cb2bea1cf9e1e92a341bbd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196502
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2021-05-10 22:32:33 +00:00
Konstantin Shcheglov 32480240e7 Remove 'overrideWorkspace' from ContextLocatorImpl.
Change-Id: Ib8cb8120d843e1f8be57a888401fe469c801f378
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199100
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-10 20:49:40 +00:00
Konstantin Shcheglov 5b8ae4c571 Issue 45879. Initializing formals, AKA field formal parameters are effectively final.
Bug: https://github.com/dart-lang/sdk/issues/45879
Change-Id: I9967c722c62ff811164be87f1fe505cd125d2f50
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199064
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-10 20:48:51 +00:00
Konstantin Shcheglov bea3d47c46 Issue 45935. Test for yield null into a Stream of non-nullable.
Bug: https://github.com/dart-lang/sdk/issues/45935
Change-Id: I45ad487c33e07a5415c9a88ab4789d56d9f6a5dc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199061
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-10 19:40:11 +00:00
Konstantin Shcheglov a3f5e14649 Issue 45959. Report PRIVATE_COLLISION_IN_MIXIN_APPLICATION when implicit Object supertype.
Bug: https://github.com/dart-lang/sdk/issues/45959
Change-Id: I064c70a1bf869fae09c2f56271a212b910d853ca
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199062
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-10 19:34:30 +00:00
Devon Carew ac7c44e4a9 update the dart create templates to use package:lints
Bug: https://github.com/dart-lang/sdk/issues/45940
Change-Id: I61c8d3e8be8922cfa6a874213349f84aa44baff4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198620
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2021-05-10 16:44:40 +00:00
Lasse R.H. Nielsen f5a1dd57a1 Change parameters named f to something longer on Iterable.
Remove some unnecessary `new`s while here.

Bug: http://dartbug.com/30399
Change-Id: Ie5665fc680bcd25a74dd765ef68dc88e2c54b671
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/192385
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
2021-05-10 15:03:20 +00:00
Paul Berry 713b03a5fd Rework AstResolver.
This class is used during summary linking to do some basic resolution
of ASTs reconstituted from summaries.  To prepare for some resolution
work I have in the pipeline, I need to ensure that resolution always
has access to a properly initialized FlowAnalysis object; this rework
makes that possible.

Previously, the lifetime of the AstResolver class was inconsistent;
some callers created one for each AST node to be resolved, and others
shared a single instance for resolving many loosely related nodes.
Now we consistently allocate a fresh AstResolver each time resolution
is needed; this allows AstResolver to use late fields to lazily create
the visitors it needs for resolution.

Also, previously the API for AstResolver was a single resolve() method
with a complex set of behaviors to allow it to handle all the use
cases.  Now there are three simpler methods to handle the three use
cases (resolveAnnotation, resolveConstructorNode, and
resolveExpression).

Change-Id: I891ae621d4a188d906332cb05b6b7f9a50d59dcd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198860
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-05-10 14:13:07 +00:00
Paul Berry 53b759d630 Remove unused parameter from topLevelDeclaration_enter
Change-Id: I20195e1cfaea49c8e5a89d752dfe2bc33e0ac67d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198840
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2021-05-10 14:13:07 +00:00
Paul Berry 8df8147363 Add experimental flag for constructor tear-offs.
Change-Id: Ie9e1fc5dc3be1c7d3fe43cc052f94b74996466d6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198600
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2021-05-10 13:33:27 +00:00
Brian Wilkerson 29eb10d488 Unify 5 more codes for documentation purposes
Change-Id: Ib6595fe0962f0c314be3194f2b6566a0259735da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198960
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-05-10 13:21:37 +00:00
Martin Kustermann 31364331e9 Revert "[vm] Enable new kernel AST invocation nodes for the VM"
This reverts commit 53e3c079b7.

Reason for revert: This change has seemingly caused errors of the form
```
stderr >> Unhandled exception:
stderr >> Invalid argument(s): Missing canonical name for Reference to <XXX>
stderr >> #0      BinaryPrinter.writeNullAllowedReference (package:kernel/binary/ast_to_binary.dart:894:9)
stderr >> #1      BinaryPrinter.visitTypedefType (package:kernel/binary/ast_to_binary.dart:2410:5)
stderr >> #2      TypedefType.accept (package:kernel/ast.dart:11115:42)
stderr >> #3      BinaryPrinter.writeNode (package:kernel/binary/ast_to_binary.dart:403:10)
stderr >> #4      BinaryPrinter.writeOptionalNode (package:kernel/binary/ast_to_binary.dart:496:7)
```

Issue https://github.com/dart-lang/sdk/issues/45966

Original change's description:
> [vm] Enable new kernel AST invocation nodes for the VM
>
> TEST=ci
>
> Issue: https://github.com/dart-lang/sdk/issues/45340
> Change-Id: Ibb307d8df8ff4ae8f2efad177880634ec9e27905
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/197586
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Reviewed-by: Aske Simon Christensen <askesc@google.com>

TBR=vegorov@google.com,alexmarkov@google.com,johnniwinther@google.com,askesc@google.com

Change-Id: I05d010378cfcc5ba40f2be58b01b3ed27a8fc31e
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Issue: https://github.com/dart-lang/sdk/issues/45340
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199000
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2021-05-10 12:32:38 +00:00
Jens Johansen 2dd7386ec5 [CFE] Mark dart2js/late_statics as SemiFuzzFailure in Strong too
This should have been marked in strong in
https://dart-review.googlesource.com/c/sdk/+/197163
as well, but wasn't.
Better late than never.

Change-Id: Ia85b9434edf87ec37fa0ed0c93b9f90dc66229da
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198941
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2021-05-10 09:39:19 +00:00
Alexander Markov 53e3c079b7 [vm] Enable new kernel AST invocation nodes for the VM
TEST=ci

Issue: https://github.com/dart-lang/sdk/issues/45340
Change-Id: Ibb307d8df8ff4ae8f2efad177880634ec9e27905
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/197586
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
2021-05-09 21:00:28 +00:00
Alexander Markov 237c6eef9e [cfe] Improve support for new invocation nodes in constant evaluator
* FunctionInvocation and LocalFunctionInvocation nodes are now supported.
* Handling of List getters is added to InstanceGet.
* Removed incorrect constant evaluation of .hashCode and .runtimeType
  for List constants.

Issue: https://github.com/dart-lang/sdk/issues/45340
Change-Id: I73f3e64e805c0753325463b3e777a6c1b7d0b5fb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198181
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2021-05-09 20:04:38 +00:00
Konstantin Shcheglov 0f8e17083b Generate State<MyWidget> as 'createState()'.
Bug: https://github.com/flutter/flutter/pull/81578
Change-Id: I4128f5473287983c2837a83462261050e72239df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198440
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-09 19:55:08 +00:00
Konstantin Shcheglov 920d1d85e1 Stop reporting StrongModeCode.TOP_LEVEL_INSTANCE_GETTER
Initial: https://dart-review.googlesource.com/c/sdk/+/195302
Reverted: https://dart-review.googlesource.com/c/sdk/+/196282

Internal presubmit looks green.
https://test.corp.google.com/ui#id=OCL:372759773:BASE:372759779:1620532577947:b5e08140

Change-Id: I7348692e1f34f26a9aca48902abb16df50fda2c5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198920
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2021-05-09 18:51:18 +00:00
Brian Wilkerson 62feca7095 Unify two diagnostic codes for documentation purposes
Change-Id: I1b37dc4584757da4833f111c2ea4c3d9511513db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198901
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-05-09 15:51:28 +00:00
Stephen Adams 90127334ea [dart2js] Pass box to inlined generative constructor body
There was a rare mismatch between arguments and parameters when
inlining a constructor body.

The full arguments at the call site of a constructor body (always in a
generative constructor factory) and the parameters at inlining would
not agree on needing a 'box' for the constructor's closed-over mutated
variables (parameters and locals) when the box was needed only for
locals closed over in an assertion.

The fix is to make the condition for accepting a box match the test
for generating the box in the caller.

Bug: 45943
Change-Id: I3b056cb710ffac72bec6943809e04472a838e5bf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198741
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2021-05-07 22:50:27 +00:00
Stephen Adams b7d2dbe9b5 [js_runtime] Cleanup some dynamic calls
Change-Id: I7fe4dab27f1d6fb2e52a171bd8f373c3decc0b7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/197562
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2021-05-07 22:47:47 +00:00
Alexander Markov 7eb2805665 [vm/ffi] Refactor a few duplicated AST patterns in FFI transformer
This change is a pure refactoring. It extracts 3 duplicated code
snippets into helper methods. This is needed to reduce number of
places where PropertyGet and MethodInvocation nodes are created, as
these nodes are going to be replaced with InstanceGet and
InstanceInvocation nodes soon.

Issue: https://github.com/dart-lang/sdk/issues/45340
Change-Id: I694805a3761fd389ac8ee005d12ffb9bb9543ea7
TEST=ci
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198581
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2021-05-07 16:32:07 +00:00
Sam Rawlins 28a94024e9 Analyzer: add **basic** generic function type inference tests
This CL just converts one checker_test case into the modern test cases in
resolution/type_inference. Many more of the tests in checker_test deal with
method inference and overrides, which I think should be its own separate test
class in its own CL.

Change-Id: I7ff6787f6a0c343e7948bd6152acc7d579af4afb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198742
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-05-07 15:46:07 +00:00
Sam Rawlins 1d3829400e Move one RETURN_OF_INVALID_TYPE test case out of checker_test
Change-Id: I02cf33a254c0c05aaf1da9d0a723e63e551b931d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198740
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2021-05-07 13:33:57 +00:00
Michael Thomsen d0f7a5b6d1 Updated server template
Change-Id: If3a0e3ea3f0f0e4465bf8f875071c92c674600c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/197167
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
2021-05-07 12:07:56 +00:00
Brian Wilkerson 454e633461 Fix a bug in the convert_into_expression_body fix
Change-Id: Ieed0452eb1ec89b294e6d567df758b533ac4062f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198680
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-05-07 04:53:44 +00:00
creativecreatorormaybenot 9108f927ab Document same-library access for protected members
I noticed that in the Flutter framework, `@protected` members are called from outside of instance methods. @Hixie responded:

> protected allows access from the same file

I think this should be documented.

Closes https://github.com/dart-lang/sdk/pull/45937
https://github.com/dart-lang/sdk/pull/45937

GitOrigin-RevId: c1a86d4039aeaa5a2126b505cad28e10fe361b0a
Change-Id: If0be693897abe10197516bdf854ec45fcb1be7fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198480
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-05-06 22:53:54 +00:00
Robert Nystrom 7363505cfb Remove support for ancient multitest marker syntax.
TEST=fixing tests

Change-Id: I0857ff9275b4b915e0b79824c7e16f4d07c8a239
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198445
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2021-05-06 22:36:04 +00:00
Brian Wilkerson 484c999f12 Add a quick fix for avoid_function_literals_in_foreach_calls
Change-Id: I8f209dc884ef2eb19cc12a7f10f52621237c7964
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198560
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2021-05-06 18:35:43 +00:00
Sigmund Cherem c47ad2789e [ddc] Avoid collision of a top-level function name with parameter names.
Safari has a bug that makes it a syntax error for a function name
to overlap with names of parameters in functions with default
parameter values.

This CL changes DDC to generates code to circumvent this issue
when emitting top-level methods.  Fortunately, the Safari bug
doesn't trigger with ES6 methods, so we don't need to do anything
for Dart instance methods.

The only other occurrence of named functions in DDC are
`function*` generators that we emit. Those take no arguments,
so we don't need any additional renaming there.

Fixes #43520

Change-Id: I2e4588701a294a8f3c5b47956826ada4ed973e6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198200
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2021-05-06 18:06:05 +00:00
Daco Harkes f53af0d445 [cfe/ffi] FFI transformation support incremental compilation
The compounds transformation converting fields into getters and setters
now retains the annotations on the getters so that they can be read
during recompilation.

This splits up `_replaceFields` into `_findFields` and `_replaceFields`.
`_findFields` works for both transformed and non-transformed compounds.

This splits up `_compoundClassDependencies` out from
`_checkFieldAnnotations`. The former is run on all compounds
transitively reached from the compounds being compiled, the latter only
on the compounds being (re)compiled.

`manualVisitInTopologicalOrder` now visits compounds from all libraries,
not just the ones in the libraries being (re)compiled. It is responsible
for filling the `compoundCache` in topological order. And, this CL
introduces the `InvalidNativeTypeCfe` to support processing compounds
with invalid fields, which might be nested later in other compounds.

Bug: https://github.com/dart-lang/sdk/issues/45899

TEST=pkg/front_end/testcases/incremental/crash_05.yaml
TEST=tests/ffi(_2)/*

Change-Id: I07a2214fd460f4d5e6a84df81e8b140dd80401dc
Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try,vm-ffi-android-debug-arm64-try,vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-reload-linux-debug-x64-try,vm-kernel-reload-rollback-linux-debug-x64-try
Fixed: 45899
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198281
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2021-05-06 13:22:22 +00:00
Karl Klose 323cd5914e Reland "[pkg/test_runner] Write experiments to results.json"
This is a reland of 4e34ea06a9

TBR=athom@google.com

Original change's description:
> [pkg/test_runner] Write experiments to results.json
>
> Change-Id: I32423ddf665a24443de1ad60ca8f323f5c6d3aca
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196489
> Reviewed-by: Alexander Thomas <athom@google.com>
> Commit-Queue: Karl Klose <karlklose@google.com>

Change-Id: I894616f77cb47df25c8da46d2bf6ddb87734db41
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198404
Reviewed-by: Karl Klose <karlklose@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2021-05-06 07:49:52 +00:00