Commit Graph

3538 Commits

Author SHA1 Message Date
Harry Terkelsen 1fcbe23b8f Fix issue in resolving annotations that refer to annotated types
Change-Id: Ifcef137ec51e26d3e1a2505fd4845fe63f670318
Reviewed-on: https://dart-review.googlesource.com/38181
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Harry Terkelsen <het@google.com>
2018-02-02 18:14:37 +00:00
Sigmund Cherem 3b6d39cc2c Correctly defer typedef references
Change-Id: I61fb5ebb399dcfca5193b7ae870badc10add23e5
Reviewed-on: https://dart-review.googlesource.com/37880
Reviewed-by: Emily Fortuna <efortuna@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-31 21:10:29 +00:00
Dan Rubel ec7435945d Remove findMemberName from parseTopLevelMember
This CL refactors parseTopLevelMember so that it does not scan ahead
using findMemberName. This is the next step in removing findMemberName
to improve top level declaration recovery.

Change-Id: I4d949f72cba5618541448c08e1756bf45a4d1762
Reviewed-on: https://dart-review.googlesource.com/37680
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-31 12:04:56 +00:00
Johnni Winther abaabd4773 Remove unneeded RuntimeTypeChecks object
Change-Id: Ia0d7e842edff4694a74a6d3e43c3c912093c3e9b
Reviewed-on: https://dart-review.googlesource.com/37520
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2018-01-31 08:00:31 +00:00
Leaf Petersen 991753313f Remove deep future flattening from analyzer and DDC
Change-Id: Ic48f29adec3a46744b259ba5b2b8ad7d97caa6c2
Reviewed-on: https://dart-review.googlesource.com/37424
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-01-30 18:11:11 +00:00
Johnni Winther 9b0d9a2882 Track type variable tests through generic method invocations.
Change-Id: Ibb4fdf92ca1085034db5d10c3f10b46f60c70c16
Reviewed-on: https://dart-review.googlesource.com/36941
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-29 09:20:02 +00:00
Johnni Winther f0b5e3466a Refactor collection and printing features for annotations.
Change-Id: Ib1c1790d883acd51c690237fd4d3374d6e0b92e5
Reviewed-on: https://dart-review.googlesource.com/36740
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-29 08:30:11 +00:00
Johnni Winther 20e363f4b9 Ensure signature functions for --disable-rti-optimization
- and cleanup/refactor RuntimeTypesChecks(Builder).

Closes #28894

Change-Id: I8d4cd808411532cce6b28c2f233cc4086de6b100
Reviewed-on: https://dart-review.googlesource.com/35982
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-29 08:06:51 +00:00
Johnni Winther 09bb73427e Compute implicit is-tests more precisely.
Closes #21969

Change-Id: If446df1e1ae4cdfb4d32580abb7f12fb213d678c
Reviewed-on: https://dart-review.googlesource.com/35865
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-26 22:26:17 +00:00
Johnni Winther 588a60f15b Add test for needed runtime checks
This is added as a precursor to
https://dart-review.googlesource.com/c/sdk/+/35865 to detect to an error
in dart2js_extra/inline_generic_test/04 otherwise introduced.

Change-Id: I25e475709ee821d01694904ef0cade8100b7548b
Reviewed-on: https://dart-review.googlesource.com/36640
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-26 21:51:41 +00:00
Lasse R.H. Nielsen 87e7861ec8 Make Expect.throws not accept an expectation error as a throw.
Some small clean-up, and fixing one test that relies on the changed behavior.

Change-Id: Ibfed0c41c3121f2dc13a0d67b7534693165eb5e2
Reviewed-on: https://dart-review.googlesource.com/36620
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-25 13:24:03 +00:00
Siva Annamalai 5f5bba2a74 Normalize status files.
Allow void as a type.
Change-Id: Ia94c50bcc2e4023008da1dad60cdbfc3465d936b

Change-Id: Ibe7d394cf92e6bb45e06770329da857bcb2c84b0
Reviewed-on: https://dart-review.googlesource.com/36127
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2018-01-20 23:02:08 +00:00
Johnni Winther 08cac02761 Mark dummy_compiler_test, recursive_import_test as slow on any runtime
Change-Id: I04fd0452e9873026050af94e966148ed793b0b70
Reviewed-on: https://dart-review.googlesource.com/36100
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-19 23:32:37 +00:00
Harry Terkelsen 2305d7aea1 Fix bug in resolution caused by unresolved fields in annotations
Fixes #31803

Change-Id: Id50713281934bf51f8684c3acf5936edd48e33e4
Reviewed-on: https://dart-review.googlesource.com/35464
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
Commit-Queue: Harry Terkelsen <het@google.com>
2018-01-19 23:24:47 +00:00
Johnni Winther 2c405fe8fc Fix testing strong mode only equivalence tests.
Change-Id: I982472056fc79dac27b2638bd006ad4e1dbc1920
Reviewed-on: https://dart-review.googlesource.com/35640
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-19 22:44:21 +00:00
Johnni Winther ffd18a37ef Track type arguments of static and dynamic calls
- and use these to optimize for type argument need on instance
methods and closurized static methods.

Change-Id: Id41d8f8aa7639da15fbd24844e397a4524b6ed20
Reviewed-on: https://dart-review.googlesource.com/35261
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-19 22:31:37 +00:00
Johnni Winther 4a82a4fbf5 Ensure type variables in initializers.
Closes #31715

Change-Id: I45b28b8e42d5246eab0e354506630b7109db0ca1
Reviewed-on: https://dart-review.googlesource.com/36002
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-19 22:23:57 +00:00
Sigmund Cherem 7e78f0a952 Update more dart2js .status files
This covers legacy mode,  but using fasta.

Change-Id: I7af9518d8a69512012400f6215d0195fb6069e51
Reviewed-on: https://dart-review.googlesource.com/36060
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-19 20:41:47 +00:00
Sigmund Cherem bc22c3e050 Fix custom-loader test: use JS instead of native.
This makes it possible to run the test with --use-kernel.

Change-Id: Ie992ae0fe557169d44d0873e3d44b89c2aca5292
Reviewed-on: https://dart-review.googlesource.com/35812
Reviewed-by: Emily Fortuna <efortuna@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-18 23:50:54 +00:00
Johnni Winther 73e35eb035 Update RTI optimization to handle type literal uses
... for generic methods and local function. Also update capture
conversion to recognize the new kinds of type variables.

Change-Id: I9b8771b0ebe6c9e926712fa31b0bdea966cc6a25
Reviewed-on: https://dart-review.googlesource.com/34600
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
2018-01-17 15:12:55 +00:00
Erik Corry 5ed2f25f40 There is no longer a safarimobilesim test runtime.
And so there is no need to maintain status files for this platform.

R=whesse@google.com

Change-Id: Ie70e4b7308cfd9b1b179b2d1eeeb8f36dd1a62dc
Reviewed-on: https://dart-review.googlesource.com/34824
Commit-Queue: Erik Corry <erikcorry@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-01-17 13:13:17 +00:00
Johnni Winther 99feac38cc Move unittests
Change-Id: I23972b65cd839b9e535e4c483312c0e66b43d374
Reviewed-on: https://dart-review.googlesource.com/34820
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-17 10:29:16 +00:00
Johnni Winther 94fc11388a Port inference tests, #5 of 5
Change-Id: I384056289dfa99991aa42fbe0baadedc6c208b6f
Reviewed-on: https://dart-review.googlesource.com/34586
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-17 10:19:53 +00:00
Sigmund Cherem 0e1a407823 Produce a static error when using kernel and mirrors
Just noticed that the 'supportsRelection' flag was not checked when running with
'--use-kernel'.

Change-Id: I9f4bd540ad963c33c8b9013860ac63b1c6707299
Reviewed-on: https://dart-review.googlesource.com/35006
Reviewed-by: Harry Terkelsen <het@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-17 00:56:12 +00:00
Sigmund Cherem 96f915faa1 Update status for dart2js-with-kernel after disabling int64 in dart2js
TBR=sra@google.com

Change-Id: I3e13493ba619fb16ed9731fc85fc14938022ef59
Reviewed-on: https://dart-review.googlesource.com/35000
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-16 22:30:04 +00:00
Sigmund Cherem 0c04eb53c7 Disable int64 when running dart2js
The goal is to renable it as soon as we migrate our constant-evaluator and
constant folding to use Bigint.

Change-Id: I3bba1bbe07517e9cb496896b3417f58173878d62
Reviewed-on: https://dart-review.googlesource.com/34302
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2018-01-16 19:52:22 +00:00
Johnni Winther e01081ef03 Split inference tests to avoid timeout
Change-Id: I94253b787e9d3356b988fe08115394165823bf52
Reviewed-on: https://dart-review.googlesource.com/34580
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-15 08:22:13 +00:00
Sigmund Cherem 72c3c8ea61 Several deferred loading improvements:
- fix some discrepancies between old and new deferred loading.
  * Kernel is now using the correct world impact
  * For the old FE, I'm more careful about avoiding metadata nodes when mirros
    are disabled as well.
  * Better approximate when a constant is deferred in the kernel codegen

- make 'dump()' independent of the IR, so we can easily compare them side by
  side.

- exclude primitives in kernel since we don't need to track them. I
  didn't change the old front end because it is not as easy to do. I did this
  change because kernel was processing many more constants than the old frontend
  (the old frontend skipped constants that were never evaluated, we have no way
  to do it selectively like that in the new front end).

Change-Id: I337d3fd818753125476b7390da5d900ebdc02709
Reviewed-on: https://dart-review.googlesource.com/34509
Reviewed-by: Emily Fortuna <efortuna@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-13 01:42:32 +00:00
Harry Terkelsen 93abeeb47e new test fails in minified because runtimeType is minified
Change-Id: Iedb7bf5d022d313ce24e7a630bb74c05e8d65853
Reviewed-on: https://dart-review.googlesource.com/34502
Reviewed-by: Harry Terkelsen <het@google.com>
2018-01-12 22:39:59 +00:00
Johnni Winther d539c78af1 Add source information to parameter stubs.
Change-Id: If942cc13203752361c3104c89190d75979073498
Reviewed-on: https://dart-review.googlesource.com/34440
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 21:23:40 +00:00
Harry Terkelsen 33952ad8f6 Add a small repro for dart2js runtime type issue
Change-Id: Ibe8720565814dd9f7b7c4ea4370548a64a880f21
Reviewed-on: https://dart-review.googlesource.com/34028
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-01-12 21:13:40 +00:00
Stephen Adams 87e5a57b9a Fix dart2js_extra/string_interpolation tests
Old dart2js behaviour is incorrect.
Fasta behaviour is correct as recently specified.

See https://github.com/dart-lang/sdk/issues/30909 for details

Bug:
Change-Id: Ie9b24d19cab81be764cec02baa327283f4a3b3ce
Reviewed-on: https://dart-review.googlesource.com/34225
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 19:21:19 +00:00
William Hesse 63511838dd Update status for failing local function test on dart2js
Bug: https://github.com/dart-lang/sdk/issues/31879
Change-Id: I141e2ef9c4cc40796d3b3198e4183a1c05f0b063
TBR=johnniwinther@google.com
Reviewed-on: https://dart-review.googlesource.com/34382
Reviewed-by: William Hesse <whesse@google.com>
2018-01-12 14:01:01 +00:00
Johnni Winther 7568a4e4ce Don't register closure call methods
- closed world is incomplete anyway; we're missing the call methods from static and instance tear-off.

Change-Id: Ibd3fc9d80220bef3ee651bf529a487b617de7a6b
Reviewed-on: https://dart-review.googlesource.com/34144
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 11:47:18 +00:00
Johnni Winther 107f611d4e Support --disable-rti-optimization for --use-kernel
Change-Id: I47e1301629f068c12bd5ef898323fc86804bf4a0
Reviewed-on: https://dart-review.googlesource.com/34160
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 11:37:49 +00:00
Johnni Winther e6363dd1bb Add tests showing the bad inference on .call
Change-Id: I939de4485a81d5a21f89088e91e6ae8eed648646
Reviewed-on: https://dart-review.googlesource.com/33941
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-12 11:29:43 +00:00
Johnni Winther c7447281f7 Handle type argument to instance members.
Change-Id: I40404d2f6da74cbaed68e23bc2fab0ebfb3e2cc8
Reviewed-on: https://dart-review.googlesource.com/33724
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-11 08:13:28 +00:00
Johnni Winther 06e6f4d105 Add --disable-rti-optimization flag
- to separate rti implementation correctness from optimization soundness.

Change-Id: I0786dd45261d6f8cf1380f016bfb7c6f773df6b1
Reviewed-on: https://dart-review.googlesource.com/33880
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-11 07:56:56 +00:00
Stephen Adams f756c5e71d Print names for generic method type parameters in function type
- Added JS_GET_FLAG('STRONG_MODE') allow the code to be tailored to
the type system version.

 - Split type stringifying code into V1 (existing logic) and V2
(strong mode Dart 2.0 logic).

The V1 code will eventually be deleted.

Change-Id: I78db91796040b6ecfa1bd5d6a9d64bd4c2bc4bcf
Reviewed-on: https://dart-review.googlesource.com/33680
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-10 21:00:48 +00:00
Leaf Petersen 5aea404159 Hide new core lib MapEntry class where it conflicts in kernel, and
suppress a hint on undefined imported name to make it backwards
compatible.

Bug:
Change-Id: I9c92adcf685248fb8aae9da39c008968768ad29b
Reviewed-on: https://dart-review.googlesource.com/33662
Reviewed-by: Paul Berry <paulberry@google.com>
2018-01-10 01:59:48 +00:00
Leaf Petersen 116ecdcf11 Hide new core lib MapEntry class where it conflicts in fasta, and
suppress hints about the undefined name for backwards compatibility.

Bug:
Change-Id: I381af6a8ae5be040e3c149e0cf4b9d45faa8c630
Reviewed-on: https://dart-review.googlesource.com/33663
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Leaf Petersen <leafp@google.com>
2018-01-10 01:20:21 +00:00
Johnni Winther 966168ba67 Pass type arguments to dynamic calls
This only works for inlining of dynamic methods. Stubs are not created yet.

Change-Id: Ia138117d503b69774984ce9070a3298b87fdbe78
Reviewed-on: https://dart-review.googlesource.com/32766
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-09 13:44:37 +00:00
Johnni Winther ab636dfbd1 Reenable warnings/hints for method type variables in dart2js
Change-Id: I09662afc8b1a4e8c9fdbfe2e342e80ea58351593
Reviewed-on: https://dart-review.googlesource.com/32060
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-01-08 12:48:02 +00:00
Johnni Winther 8e8915f538 Support generic closures in rti analysis
Change-Id: I1d393cff5b83f8db69e7bddb8ecfcd4a5205854f
Reviewed-on: https://dart-review.googlesource.com/32700
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-08 11:36:40 +00:00
Johnni Winther b11cf5e3b5 Support class data in equivalence test
Change-Id: I084af2503ba783de4280f520c5a3000f0b84abe7
Reviewed-on: https://dart-review.googlesource.com/32560
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-08 10:38:55 +00:00
Johnni Winther 966986947b Port inference tests, part #4 of 5
Change-Id: Id4686f1e9673a5c7af3747584c9a59463b770e0f
Reviewed-on: https://dart-review.googlesource.com/32760
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-08 08:35:56 +00:00
Johnni Winther 00b083bafc Port inference tests, part #3 of ?
Change-Id: Ib4b9650c94b2302f68272d18601c97cd4685e03e
Reviewed-on: https://dart-review.googlesource.com/32543
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-08 08:28:38 +00:00
Johnni Winther de3f4f5e95 Port inference tests, part #2 of ?
Change-Id: Ia9012f278824ae2a7b069ecdcabc50c7dfbde40d
Reviewed-on: https://dart-review.googlesource.com/32340
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-08 08:09:44 +00:00
Sigmund Cherem 497d592ac7 Fixes for deferred constants in the kernel pipeline.
The constant collector was inconsistent with the old frontend: we were
skipping primitives and we were not going into the body of closures.

Change-Id: I3321426da7e684d203f0ac7a2a2c7028f3138a7b
Reviewed-on: https://dart-review.googlesource.com/32663
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
2018-01-05 23:37:58 +00:00
Harry Terkelsen b8b69b1bd9 dart2js-kernel: fix switch with always-throwing method call
Change-Id: I8884207f05ba8cf0a2841f21b1a0e8189ebe14d4
Reviewed-on: https://dart-review.googlesource.com/32662
Commit-Queue: Harry Terkelsen <het@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
2018-01-05 21:48:28 +00:00