Commit graph

69151 commits

Author SHA1 Message Date
Franklin Yow ca64509108 Update breaking-changes.md
Update contact e-mail address

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

GitOrigin-RevId: fcbc1450074ccec83a48c5fc19102f07ac3cdd39
Change-Id: I755ba0073767f29ee6da4fcfcdd2f95c29ad94aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130380
Reviewed-by: Michael Thomsen <mit@google.com>
2020-01-06 13:14:45 +00:00
Martin Kustermann 16697697d4 [vm] Read causal-async-stacks/lazy-async-stacks from snapshot (instead of requiring AOT runtime to pass same flags as in compiler)
We already do this for "use-bare-instructions" and "dwarf-stack-traces". This
CL does the same for "causal-async-stacks" and "lazy-async-stacks".

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

Change-Id: I44136299858b3b72e8a3a176234f5051d6b61c1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130364
Reviewed-by: Teagan Strickland <sstrickl@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2020-01-06 12:15:59 +00:00
Karl Klose 21e3580519 [infra] Use resolved configuration names instead of those provided as argument
Change-Id: I72fe74e1052c9c82eaf12e8c510501b037aa00a9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130361
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2020-01-06 11:49:09 +00:00
Dmitry Stefantsov 9283a168dc [cfe] Add upper / lower bounds tests with generic functions
Change-Id: I4ab715617dba52efeb96d9542ac6a33040f3465d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130362
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2020-01-06 11:41:09 +00:00
Alexander Thomas 7373347c7c [release/homebrew] Always use x64 binaries on macOS
We no longer support ia32 Macs (see linked issue).

Bug: https://github.com/dart-lang/sdk/issues/39810
Change-Id: I5fc6ab6a9074e54a90e8480d0ede416a237733cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130360
Reviewed-by: William Hesse <whesse@google.com>
2020-01-06 09:11:32 +00:00
Brian Wilkerson e5705943d8 Enable prefer_conditional_assignment in several packages
Other than the changes to the code generators and the analysis options
files, the changes were all generated by dartfix.

Change-Id: I80055e3992452c5b40eed41ac79807cf5c932976
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130340
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-06 05:19:19 +00:00
Sam Rawlins a325691756 analyzer: Add failing test for #38162
Also move return_of_invalid_type tests to their own file.

Change-Id: Ie02acee903dde7cc498d3ecbb1d9f5b0c1691298
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130006
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-01-06 05:15:29 +00:00
Brian Wilkerson 877d6f745d Improve the range selected for const_constructor_with_non_final_field
Change-Id: I168e92c32b581dffcad25804161b56f4d99c1dd1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130300
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-05 23:50:22 +00:00
Konstantin Shcheglov b975366803 Directly instantiate none/star collection.
R=brianwilkerson@google.com

Change-Id: I748230e097e703724cd94e9fa8a17832a8b63c0a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130241
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 23:50:12 +00:00
Konstantin Shcheglov d89e8b7fad Remove unused fields from TypeNameResolver.
R=brianwilkerson@google.com

Change-Id: I92fa8f47334d3cd24804225f20b2806585cb0c77
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130240
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 23:42:19 +00:00
Konstantin Shcheglov 36fb383a6c Remove unused TypeSystem.instantiateTypeFormalsToBounds2()
R=brianwilkerson@google.com

Change-Id: I7dde98d43f47695565c89c593303fa124a07c5df
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130223
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 23:42:09 +00:00
Brian Wilkerson 5323d60b97 Unify two error codes from the perspective of documentation
Change-Id: I53586ba07d3980045a9d869ce33100fcf7c4c604
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130280
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-05 20:59:27 +00:00
Brian Wilkerson fbadd6a832 Enable prefer_equal_for_default_value in several packages
Other than the changes to the code generators and analysis options files,
all of these changes were produced using dartfix.

Change-Id: I24f47b9f6b929b0b5d5e08da7ef2016f4bdc4108
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130260
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-05 20:59:19 +00:00
Brian Wilkerson 75e557cdea Add a fix for prefer_collection_literals by extracting the assists to make them reusable
The code to convert to a list or map literal is essentially unchanged,
but I had to make several changes to extract `ConvertToSetLiteral` and
make it work as a fix, primarily in the conversion of invocations of
`toSet`.

Change-Id: I365f5fc84f4a037b31ec69d78b05d7d5574666ad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130220
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-01-05 17:02:57 +00:00
Konstantin Shcheglov 08bd1d6be7 Merge instantiating ClassElement(s) in TypeNameResolver into _instantiateElement().
Change-Id: I3d97c9f03a8ccbc85b025191a85042528e80a8c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130201
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-04 19:43:06 +00:00
Sam Rawlins b5834c4261 analyzer: Add failing test for #38200
Change-Id: I38ff8e62574ee86a859364624733a67a6f351b19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129981
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-04 17:20:55 +00:00
Sam Rawlins bebc7d3af5 analyzer: Add a failing test for #38188
Also move tests for illegal_async_return_type

Change-Id: Icd76c1ece456470ce734df2ac6628d5aedcd6e8e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129940
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
2020-01-04 05:21:45 +00:00
Konstantin Shcheglov 76e3faa982 Resolve MethodInvocation(s) with Never and Never? receivers.
Change-Id: I7314efe7ccc352da7a407c3a657a30cc0956580b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130180
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-04 01:41:05 +00:00
Sigmund Cherem d735f1f12d (dart2js): enable new-rti by default
This change:
* adds the `--use-old-rti` flag to revert to the old behavior
* enables the new behavior by default
* changes the -rti- builders to run the old rti instead of the new rti
* documents the change in CHANGELOG.md

I've kept around the logic as `useNewRti` to avoid swapping all the conditions
in the compiler.

Change-Id: I773ac33b658cb60f72e0b6beef83375abec31bad
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127492
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2020-01-04 00:44:25 +00:00
Mike Fairhurst 6e7a900283 [nnbd_migration] Fix ConditionalModification on IfElement
Change-Id: I1e8ec4bead2aaa9147850d27cd5ac4d9c2a700be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130137
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2020-01-03 23:47:50 +00:00
Konstantin Shcheglov be4acb4cd5 Remove duplication in checking elements in TypeNameResolver.
R=brianwilkerson@google.com

Change-Id: I36b81e80057cab05e5c12818cc19edd53f5071c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130135
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 23:39:55 +00:00
Mike Fairhurst 2f453dcf5a [nnbd_migration] handle yoda conditions with null literals
Change-Id: Id848e71e22c2adb2e96a372dde1e1d8fffe87805
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130136
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2020-01-03 23:39:47 +00:00
Mike Fairhurst 610c1e41a0 [nnbd_migration] handle Object better, to fix void -> Object assignments
Change-Id: Ibd2fa86578e76dc79f402cae2a21b01223af90aa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130127
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2020-01-03 22:02:31 +00:00
Mayank Patke 4bc01d0dd4 [dart2js] Treat type variable bounds checks as implicit is-tests.
Change-Id: I19e26c1d16f9515b9307073318532c6467af5cf1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130126
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-03 21:47:29 +00:00
Konstantin Shcheglov 4f2a9e083d Resolve MethodInvocation fully in MethodInvocationResolver.
So, it is not separated into ElementResolver and StatisTypeAnalyzer.

Change-Id: I413a71b703ab93304760e1f912c3d55585411397
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130132
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 21:40:19 +00:00
Konstantin Shcheglov c913b01ec0 Report error during constant evaluation for ForElement.
R=brianwilkerson@google.com, pquitslund@google.com

Change-Id: Ic87094ed1dcfb4e630e3e62b9ed7e7ec8feab2c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130133
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 21:18:59 +00:00
Alexander Markov 0380d3a90e [vm/compiler] Do not use specualtive unboxing for Phi instructions in AOT
When inserting Unbox instructions in SelectRepresentations pass, their
speculative mode depends on the instruction which uses corresponding
value. Phi instructions were using default kGuardInputs mode, which may
cause insertion of speculative Unbox instructions in AOT mode.
Such Unbox instructions may need deoptimization if type of an argument
changes during optimizations. Generating code for such Unbox
instructions causes assertion failure (in debug mode), or crash in
release mode.

The fix is to change speculative mode of Phi instructions in AOT, so
they won't cause speculative Unbox instructions.

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

Change-Id: Ic9c9957875fd775fe1c02f3666829f26dad64937
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130063
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2020-01-03 21:15:19 +00:00
Mike Fairhurst 0e0bc8e1a6 [nnbd_migration] Save enum index getter in the node builder
Change-Id: I1714244a18471f0ac489a2bf7a4de2e6b5c0c3cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130102
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
Auto-Submit: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 20:21:49 +00:00
Johnni Winther 969fa962da [analyzer,cfe,dart2js] Do not generate annotations for empty values.
Change-Id: I0efa6287a44e340f9dc242b4ffc84fc8723e1049
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129718
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-03 20:12:39 +00:00
Mike Fairhurst 44e3627f29 [nnbd_migration] Support mixins, specifically super on a mixin.
Change-Id: Ia0d61b8faebfba22933af8d8f902e272b27d4f6c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130060
Auto-Submit: Mike Fairhurst <mfairhurst@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Mike Fairhurst <mfairhurst@google.com>
2020-01-03 19:21:49 +00:00
Ben Konyi bba2bed3a4 [ package:vm_service ] Export dart:io service extensions through package_vm_service
Change-Id: I62bbd8b73bc92a748c23d26eaa6f9c063b927661
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130125
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-01-03 18:47:59 +00:00
Mark Zhou a0393edd6a Inlining list copy in Queue.toList.
Change-Id: I2fdf9a780365b52ebea9810752e053cd94b5bfe0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130100
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2020-01-03 18:26:59 +00:00
Alexander Markov ff43a04d77 [vm/compiler] Fix crash in StringInterpolateInstr::Canonicalize
If OSR happens while calculating an argument of string interpolation,
array of arguments may be Phi and not CreateArray instruction.
In this case, canonicalization of StringInterpolate should gracefully
return instead of crashing. Such OSR may happen due to control flow
collections.

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

Change-Id: Ibf35a0f0ebb20d5a44102f7ddfd4e91925d7c6ea
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129900
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Auto-Submit: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2020-01-03 18:26:19 +00:00
Konstantin Shcheglov b94bad1fca Check for MigrationResolutionHooks directly in StaticTypeAnalyzer and ResolverVisitor.
I want to extract invocation inference into a separate helper, and
perform MethodInvocation resolution as a single step inside
MethodInvocationResolver. So, I want to set `Expression.staticType`
in several places. Using special subclass of StaticTypeAnalyzer does
not fit this intention.

I think `is` check is JIT optimizable well, and during analysis
we will have just one type of ElementTypeProvider.

R=brianwilkerson@google.com, paulberry@google.com

Change-Id: Ie718db35ac9426b35b538b92a2e2177828ae7ad8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130120
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 17:40:19 +00:00
Nicholas Shahan 02369211cc [tests] Update test expectations
- Migrated test now expects `null is Object` to be false.
- Added expectations for `is! Object`.

Change-Id: I99c5dc76d2ccfa5a9fd853b7745b58edfff07085
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129309
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2020-01-03 17:32:29 +00:00
Martin Kustermann addd5eea00 [vm/compiler] Consistently use pc-offsets of pointing to instruction after call in static calls table, to ensure unique offsets
The pc-relative calls were recorded with pc-offsets pointing to the start of the
call instruction, where as code-based calls were recorded with
pc-offsets pointing to the next instruction (i.e. return address).

This is inconsistent and caused us to hit an assert in
`Code::set_static_calls_target_table`. The assert was benign, but it is
good to maintain the uniqueness guarantee in the static calls table, so
we'll unify the encoding to use offsets to the instruction after the
call in both cases.

Closes https://github.com/dart-lang/sdk/issues/39811

Change-Id: Id0305befd78f09ed0b0e100f39641bca9e764442
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129717
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-01-03 17:17:59 +00:00
Ben Konyi a3be4afe8d [ package:vm_service ] Added methods to allow for HttpClient.enableTimelineLogging to be set via package:vm_service
Change-Id: Ice35290cfafbd29e4d47c75ce73030fb82d1b7dd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130123
Reviewed-by: Kenzie Schmoll <kenzieschmoll@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2020-01-03 16:28:29 +00:00
Konstantin Shcheglov 3e961f4e91 Stop using assertHasTestErrors() where possible.
R=brianwilkerson@google.com

Change-Id: I0ab8d2afd27c3a18d4fd49cb0e3864078cc163ae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130121
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 16:12:49 +00:00
Danny Tuppeny becc97c8a2 Show parens in LSP workspace symbols for methods/functions
Change-Id: I7f428eefbc4783dcd0ec3c2f16ed1e9d1ef7a903
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129714
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 15:49:39 +00:00
Danny Tuppeny 2678ee01ac Don't include end of comment markers in TODO range
Fixes https://github.com/Dart-Code/Dart-Code/issues/2181.

Bug: https://github.com/Dart-Code/Dart-Code/issues/2181
Change-Id: I670f8f46ef60d09ec3f1fd743084734048f3cfc8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129440
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2020-01-03 15:48:09 +00:00
Konstantin Shcheglov a23a3db99c Remove unnecessary climbing up when reporting non-type element.
R=brianwilkerson@google.com

Change-Id: Icfbd1feec08fb0ff2e988e70a4aa5112cf3f6ae5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130101
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 15:30:39 +00:00
Konstantin Shcheglov 91341dd0b7 Remove _checkElementOfType().
I think we don't need it anymore.

Change-Id: I50b9cc4c0bd3693a7172a2e71cd24096708fd0db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130122
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2020-01-03 15:29:49 +00:00
Johnni Winther 679705faf6 [cfe] Include nullability in implicit tearoff
Change-Id: If350915c13840c06d9fb2191972edf52758de252
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129287
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-03 15:19:29 +00:00
Johnni Winther fdf362e9bb [cfe] Replace isImplicitCall with ExpressionInvocation node
Change-Id: I05ebe260b9f35cacf59390963da9d0c39ede2096
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129286
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2020-01-03 15:19:29 +00:00
Samir Jindel 445ae73b32 [vm/tfa] Use pragma to pass type arguments to exact return types.
Change-Id: Ie2a1de07653c53e8b9506c54a0a66a5fe6503b9a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129160
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2020-01-03 14:08:19 +00:00
Johnni Winther e3a20bf361 [analyzer,cfe,dart2js] Support annotated code generation
Add support for generating annotations from actual data using
option -g

Change-Id: I88d9cdb62a38d579234b15097c9e9bb3d81ebe8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129708
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2020-01-03 13:57:39 +00:00
Alexander Markov c33405bb47 [vm/tfa] Cleanup unused entry points json files
Entry points json files were replaced with pragma annotations a while
ago. This change removes these unused files.

Change-Id: Ib7d80b79f1afb63a05aca9a25e8ec6fc9ba72941
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130040
Commit-Queue: Samir Jindel <sjindel@google.com>
Auto-Submit: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Samir Jindel <sjindel@google.com>
2020-01-03 12:17:19 +00:00
Sigmund Cherem 4eae39672a (dart2js) release some data-structures after resolution.
The resolution-world-builder and impact transformer were holding onto a
class-hierarchy-builder in dart2js, which uses a lot of space.

On a some artificial sample apps with thousands of classes this
reduces the overall memory capacity by 25%. On a large internal app
this reduced the overall memory capacity from 13G to 11G.

Change-Id: I5d0d40764649364f2cd2411ef1346812beb411c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/129544
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2020-01-03 00:24:08 +00:00
Mayank Patke b5bf014eb1 [dart2js] Add redirections for unneeded native classes in ruleset.
Change-Id: Ic29686447c87b7707480a161e76ab500c1455617
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130011
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2020-01-03 00:11:27 +00:00
Mayank Patke a62e63f0cc [dart2js] Add new RTI impact for is-tests and type checks.
Change-Id: Ib93def2db9b4f0d4ee5aab843c0a894129e773e7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/130082
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2020-01-02 23:58:17 +00:00