Commit Graph

4184 Commits

Author SHA1 Message Date
Johnni Winther 9bf7fc9130 Add test of index operations
Change-Id: I34e5cf8ba7bdd38a2b4094c71bc0e71c4a68c613
Reviewed-on: https://dart-review.googlesource.com/13802
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-23 08:26:43 +00:00
Johnni Winther 222af2dd08 Compute side effects during inference.
Change-Id: Iad5567cb76c8725b19446b6a802e6e704d42e99e
Reviewed-on: https://dart-review.googlesource.com/13800
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-23 07:37:18 +00:00
Johnni Winther b2e7058747 Specialize list constructors in inferrer
+ handle native methods and js-interop constructors

Change-Id: I901301bf6d4926e6ecb1e427e3d16e512d888aab
Reviewed-on: https://dart-review.googlesource.com/13722
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-23 07:29:51 +00:00
Emily Fortuna ba3cc12592 Entity-ify trustType in type_builder.
Bug:
Change-Id: Ie58b98f5a23268e97d2730f4f694d125ae9baf93
Reviewed-on: https://dart-review.googlesource.com/15060
Reviewed-by: Stephen Adams <sra@google.com>
2017-10-19 17:15:20 +00:00
Harry Terkelsen f36b1f49d6 Only set model.scopeInfo for the outer member, not nested closures
Change-Id: I848e18e1000158b4a198782227bfb2524104e805
Reviewed-on: https://dart-review.googlesource.com/14700
Reviewed-by: Emily Fortuna <efortuna@google.com>
2017-10-18 21:00:06 +00:00
Emily Fortuna 2b33f79dd1 Update localsMap when inlining or looking at super constructors.
Bug:
Change-Id: I60b2d0d87d84901817d7d03b685a068c9d2f6100
Reviewed-on: https://dart-review.googlesource.com/14621
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2017-10-18 17:58:32 +00:00
Emily Fortuna af3bbc194b Fix up dart2js argument passing of 'platform-binaries' so that it actually recognizes the flag.
Bug:
Change-Id: I632dc8ea1e1c145cbb93a8cb7ba061c0d2ebc948
Reviewed-on: https://dart-review.googlesource.com/14508
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Emily Fortuna <efortuna@google.com>
2017-10-17 21:02:31 +00:00
Peter von der Ahé 6cc2014b3d Fix computePlatformBinariesLocation for Windows.
Change-Id: Ic64e9c7a10923fe2e3f99ef708c2f19bb9ae802e
Reviewed-on: https://dart-review.googlesource.com/14420
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2017-10-17 12:46:10 +00:00
Peter von der Ahé b96ac4520a Update most clients to use computePlatformBinariesLocation.
Change-Id: I6e6960c471b2fab3f0cd8a672da05d7699217410
Reviewed-on: https://dart-review.googlesource.com/12291
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-17 10:48:40 +00:00
Emily Fortuna e3d0a7093c Test TypeVariables in isTest correctly (and non-type variables) in Kernel.
Bug:
Change-Id: I624e7a111841bcab77d370163ac21d2c5cc3010a
Reviewed-on: https://dart-review.googlesource.com/13681
Reviewed-by: Stephen Adams <sra@google.com>
2017-10-14 00:20:44 +00:00
Harry Terkelsen cbfb3b642d Treat async-for-in statements as if they are wrapped in a try-finally
Change-Id: Ide40e69f93db199e2b452a4ee5acbbabe331bcbf
Reviewed-on: https://dart-review.googlesource.com/13921
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
2017-10-13 22:19:46 +00:00
Johnni Winther f80860ddbd Track exposure of this in inferrer
Change-Id: I07d899ed59fd28ffe258c518743c66aa20fa0540
Reviewed-on: https://dart-review.googlesource.com/13480
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-13 07:50:35 +00:00
Brian Wilkerson a22c8dc958 Recover when enum constants have metadata
Change-Id: I1432c3b2d4ce63c5520087c79dd33e48c57cee5b
Reviewed-on: https://dart-review.googlesource.com/13102
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2017-10-12 20:50:31 +00:00
Johnni Winther 99af2fef35 Handle initializers in inferrer.
Change-Id: I0f21682448da8e427a73b849c8e6c8cc523c8201
Reviewed-on: https://dart-review.googlesource.com/12940
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-12 08:08:03 +00:00
Johnni Winther 0daecdf552 Skip captured variables in refinement.
Change-Id: Iad54833db0dbdc683790fccec3dca4f5cf435657
Reviewed-on: https://dart-review.googlesource.com/12442
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-12 07:59:13 +00:00
Sigmund Cherem 606e8502f8 fix recovery on ||= and &&= in dart2js
Bug: https://github.com/dart-lang/sdk/issues/31061
Change-Id: I3f8667d5dab92d256122484a6fc83b3527228085
Reviewed-on: https://dart-review.googlesource.com/12760
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-11 22:37:17 +00:00
Harry Terkelsen d62eb05435 Search for members in superclasses when searching for a class member
This changes 'hasConcreteMatch' to search the superclass chain in the
kernel implementation. This matches what the Element model does.

Change-Id: I6a0ab69bc7e6fe705139d6fa69fffc2346582702
Reviewed-on: https://dart-review.googlesource.com/12843
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-11 22:07:11 +00:00
Paul Berry 7df0fb6c28 Add type propagation support for conditional expressions.
This required adding a few extra parser events to allow the type
propagator to update its state when the `?` and `:` are encountered
(similar to what was done for `if`).

Fixes #30620.

Change-Id: I0d3ede8056fd8bab01ead5b242d00803286c9373
Reviewed-on: https://dart-review.googlesource.com/13182
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2017-10-11 20:21:22 +00:00
Emily Fortuna a40fd8b507 Fixed up JS Interop, correct "native" detection, and made HN angular app run!
Bug:
Change-Id: Iea339d62d891661d6d1415424b12ac3f914b046e
Reviewed-on: https://dart-review.googlesource.com/12460
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-10 18:26:54 +00:00
Sigmund Cherem ec49b67b19 Split init.metadata by deferred chunk
Bug: http://dartbug.com/30002
Change-Id: I532f122a9b10054a51e40c49b3759c0af471370e
Reviewed-on: https://dart-review.googlesource.com/9140
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-09 19:41:15 +00:00
Harry Terkelsen 954aa98da5 Use the RHS as the return value for super set exprs
Change-Id: If456ee64873354cd0cfb61024982e35ce5e97149
Reviewed-on: https://dart-review.googlesource.com/12241
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-09 18:53:55 +00:00
Peter von der Ahé 2080faff8c Remove stale references to patched_dart2js_sdk/platform.dill.
Change-Id: I8b7b4274ef64f0b6f6c5a31ba654e8fb44843161
Reviewed-on: https://dart-review.googlesource.com/12283
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-09 14:36:55 +00:00
Johnni Winther da3eff3cbf Handle if-null and conditional access in inferrer
- including refinement of locals

Change-Id: I0a77f406ae734fc7823832e1835a8454c975cc85
Reviewed-on: https://dart-review.googlesource.com/12140
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-06 20:49:16 +00:00
Johnni Winther a6bc13adb9 Refine locals in inferrer.
Change-Id: I3d43f739e680bba7b08f0cf004745a03e52c2f30
Reviewed-on: https://dart-review.googlesource.com/11923
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-06 20:14:51 +00:00
Johnni Winther a39a5729b2 Handle optimizer hints in inferrer.
Change-Id: I2daac411c59a491a8860e6bfc1c85a653816d411
Reviewed-on: https://dart-review.googlesource.com/11920
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-06 20:05:38 +00:00
Johnni Winther 9e1532121e Handle await, await for, and yield in inferrer.
Change-Id: Idd3c86a095493ca37997388f4e531d7cb5e0a772
Reviewed-on: https://dart-review.googlesource.com/11900
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-06 19:59:24 +00:00
Harry Terkelsen f690f6225e Use the validating constructor when creating a Symbol.
Change-Id: Iae150ad036f8a72dcc853b86ecd01c569d28bd0b
Reviewed-on: https://dart-review.googlesource.com/11963
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-06 19:54:47 +00:00
Peter von der Ahé fa08584fe6 Pass dart2js verbose flag to Fasta.
Change-Id: I96cae3c752dd42888108d0893f1200aa06da8f4b
Reviewed-on: https://dart-review.googlesource.com/11660
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-06 15:35:43 +00:00
Peter von der Ahé 16aa720d27 Remove compiling platform.dill from patch_sdk.dart
This separates compiling platform.dill files from the patch_sdk.dart
script. The motivation for that is that I'm working on reading patch
files directly from Fasta, so we can completely remove the build step
for generating patched_sdk and dart2js_patched_sdk.

Short-term this should allow Paul to add a strong-mode version of
platform.dill without causing to many conflicts with my work on
patches.

Change-Id: I1150845b2986348d4fffe27092701d8a9b57ea54
Reviewed-on: https://dart-review.googlesource.com/11506
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-06 15:34:37 +00:00
Harry Terkelsen 52208dd84d Report error if const constructor has a non-const field
Change-Id: Ifa3a000210752a1ec389b28c290900d05244fee5
Reviewed-on: https://dart-review.googlesource.com/11243
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-05 19:53:26 +00:00
Johnni Winther 02d63285ab Handle switch in inferrer
Change-Id: I4e226b1bf15d3fdcd04edba08433298f0b2147e3
Reviewed-on: https://dart-review.googlesource.com/11060
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-05 08:45:23 +00:00
Johnni Winther 42c6bea376 Handle break, continue and labeled statements in inferrer
Change-Id: I16968260e774c9cb8a002fd1f027dcef2db605fe
Reviewed-on: https://dart-review.googlesource.com/10882
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-05 08:19:13 +00:00
Johnni Winther d2bb9ed06c Handle asserts in inferrer
Change-Id: If0d5eb8a15d5378a05a269aef976c914c21bb517
Reviewed-on: https://dart-review.googlesource.com/11000
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-05 07:50:19 +00:00
Johnni Winther 693cce1387 Handle as and rethrow in inferrer
Change-Id: I2528939c8e76e4445a434e48967187666356a049
Reviewed-on: https://dart-review.googlesource.com/10881
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-05 07:33:51 +00:00
Johnni Winther 85e77d5a8c Remove Rasta and friends
Change-Id: Ifb14444673c31f4e337fd4d3a2639938fc9e68dc
Reviewed-on: https://dart-review.googlesource.com/11040
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-05 07:03:55 +00:00
Johnni Winther 717b5aac61 Remove --use-kernel-in-ssa option
Change-Id: I3bfc78903cbdb6b15f428bd32d8074b5b9eb5156
Reviewed-on: https://dart-review.googlesource.com/10862
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-05 06:54:16 +00:00
Dan Rubel efeaa0eab3 Class header recovery
This updates the fasta parser to handle out of order clauses
in the class header similar to analyzer.

Also:
* Fix parseTopLevelDeclaration in parser test proxy
* Fix parseStuff to correctly update token stream
* Extract skipUnexpectedTokenOpt
Change-Id: Ic20c0ab1355e866aa241c591ceeada390890c46a
Reviewed-on: https://dart-review.googlesource.com/9880
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2017-10-04 21:33:09 +00:00
Emily Fortuna 0eca8a1748 Add RTI while walking closure info.
Bug:
Change-Id: If1b33706d3b7a784f292a9f133779109109d8d25
Reviewed-on: https://dart-review.googlesource.com/8321
Commit-Queue: Emily Fortuna <efortuna@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-04 19:24:31 +00:00
Sigmund Cherem 64fa2ad383 Delete the lazy emitter
Change-Id: I6aff22c1106ee03604c888226e961e208b621de4
Reviewed-on: https://dart-review.googlesource.com/10802
Reviewed-by: Emily Fortuna <efortuna@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-04 19:23:55 +00:00
Johnni Winther 9f9b7bf520 Handle super get/set/invoke in inferrer
Change-Id: I4c3cd2ae4d99abb4de4edffc644e646f6eeca029
Reviewed-on: https://dart-review.googlesource.com/10460
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-04 08:07:46 +00:00
Johnni Winther 8b96d1be59 Handle throw and enums
Change-Id: If7a957630f50a225422aaa233e3cb3ef2a005025
Reviewed-on: https://dart-review.googlesource.com/10400
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-04 07:52:42 +00:00
Johnni Winther 6f24e3d7db Handle static get/set in inferrer
Change-Id: I12566847ba34abfac8550a2ffd5df4a730a8644c
Reviewed-on: https://dart-review.googlesource.com/10360
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-04 07:31:27 +00:00
Harry Terkelsen 9e1bb63a2f Report invalid symbol constructor invocations
Change-Id: I03fe476639414969b831e93ed3461445cca89156
Reviewed-on: https://dart-review.googlesource.com/10801
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Harry Terkelsen <het@google.com>
2017-10-03 23:43:02 +00:00
Sigmund Cherem d96b29378a Delete use of rasta and dartk from perf.dart scripts.
Change-Id: Id8cd7f01c68dbcb6f814ef51627a2f4b377f6819
Reviewed-on: https://dart-review.googlesource.com/9790
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2017-10-03 23:12:21 +00:00
Harry Terkelsen dfb71004c7 Register seen classes as part of the impact.
This allows us to construct the class hierarchy from the impact results.

Change-Id: Id10a197eb80e60d5e25e093ffdadf8d0af092ecf
Reviewed-on: https://dart-review.googlesource.com/10208
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2017-10-03 21:36:33 +00:00
Brian Wilkerson b4d179e58a Recover from missing identifiers
Change-Id: I3c7a908449861eeed0915c4d74b10f4d1e46fde4
Reviewed-on: https://dart-review.googlesource.com/7558
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2017-10-03 13:41:02 +00:00
Florian Loitsch c0145281c0 Use function.name, instead of copying it into a new property.
This relands https://dart-review.googlesource.com/c/sdk/+/8221 with a small fix in the emitter.

Change-Id: I49f517c367a4f1ff3dcb942d899c84507e5f5b20
Reviewed-on: https://dart-review.googlesource.com/10100
Commit-Queue: Florian Loitsch <floitsch@google.com>
Reviewed-by: Florian Loitsch <floitsch@google.com>
2017-10-03 08:29:48 +00:00
Johnni Winther dfb749b7c9 Handle try in inferrer
Change-Id: Ia58e9efcea893f9c0ba591a9b8e80ada9a27eca7
Reviewed-on: https://dart-review.googlesource.com/10080
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-03 07:54:43 +00:00
Johnni Winther 083e1e52ab Handle do/for statements in inferrer
Change-Id: I22e0e0feb3bf6f5a440a7dab95af9944040329b0
Reviewed-on: https://dart-review.googlesource.com/10020
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2017-10-03 07:46:17 +00:00
Aske Simon Christensen accddd1d97 Use error message templates for error tokens
Also fixes unicode U+ notation in error messages to use uppercase
letters for the hex code, as per the Unicode Standard conventions.

Closes https://github.com/dart-lang/sdk/issues/29985
Change-Id: I6397e03cb3e0d5eca156621bb4b19dfa643d9437
Reviewed-on: https://dart-review.googlesource.com/9320
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2017-10-02 14:23:26 +00:00