Commit Graph

676 Commits

Author SHA1 Message Date
Dan Rubel 2e19e275e8 Update status file
Change-Id: I661e46a1b6ff2f42d32c3e17a3292b8412c95fc3
Reviewed-on: https://dart-review.googlesource.com/52922
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-04-29 00:57:32 +00:00
danrubel 663a9f2b32 Update status file
Change-Id: Icfa3c31900391a456e5ddb376c148674bebfe4ad
Reviewed-on: https://dart-review.googlesource.com/52921
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-04-28 21:27:59 +00:00
Dan Rubel 79a15f52bf Fix isValidMethodTypeArguments
Change-Id: I3c4bb8dc981c285b8ecfad7dcd7dc849ed1bda7b
Reviewed-on: https://dart-review.googlesource.com/52920
Commit-Queue: Dan Rubel <danrubel@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-04-28 18:10:06 +00:00
Martin Kustermann be8637756a Update status file (follow-up to be47fa67)
Change-Id: I434993c9df7c3f6d6ecad08745be97d1612216d7
Reviewed-on: https://dart-review.googlesource.com/52580
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-04-25 11:56:36 +00:00
Aske Simon Christensen 9c2fcedaf4 Error on missing method implementation in non-abstract class
Bug: https://github.com/dart-lang/sdk/issues/32013

Change-Id: I163a84e70e94852a05ce99b07ec883c610ea788c
Reviewed-on: https://dart-review.googlesource.com/52320
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-04-24 13:07:54 +00:00
Johnni Winther be47fa67aa Fix dart2js subtyping
A<dynamic> is _not_ a subtype of A<int> in Dart 2

Change-Id: I0d1185b38192a06aaf9d8622a78c7384dfc287dc
Reviewed-on: https://dart-review.googlesource.com/52106
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-04-20 21:44:09 +00:00
Aske Simon Christensen f06118ef8f Dart 2 fixes to various tests.
All fixes are related to the requirement that a concrete class must
implement its entire interface or have a non-trivial noSuchMethod
implementation.

Change-Id: I015e0565e5dd9cfa324c38bb43696e365c58329a
Reviewed-on: https://dart-review.googlesource.com/51880
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
2018-04-20 12:57:19 +00:00
Samir Jindel 3a336893c4 Update status files for partial_tearoff_instantiation_test.
Change-Id: I3435f7215cbb17a286a588c41886c727ab8d42bb
Reviewed-on: https://dart-review.googlesource.com/51662
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-04-18 18:23:34 +00:00
Aske Simon Christensen 2b09c1efc0 Revert "Error on missing method implementation in non-abstract class"
This reverts commit 7cc55d0372.

Reason for revert: More test fixes needed.

Change-Id: Ib36159184ffbd14ce3f7cca184ce2b8cdfec237c
Reviewed-on: https://dart-review.googlesource.com/51680
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2018-04-18 17:27:22 +00:00
Aske Simon Christensen 7cc55d0372 Error on missing method implementation in non-abstract class
Closes https://github.com/dart-lang/sdk/issues/32013

Change-Id: I8f49d2640ef92a3d9d723969208cdb5f397e806d
Reviewed-on: https://dart-review.googlesource.com/43660
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-04-18 14:39:09 +00:00
Samir Jindel 4f18af12c7 [vm/kernel] Enable partial instantiation of local functions.
This change introduces some refactoring shared with the instantiate-to-bounds CL.

Change-Id: I65523e2542ba440205814779b7fc97e97a53a0d2
Reviewed-on: https://dart-review.googlesource.com/50980
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2018-04-18 14:33:39 +00:00
Sigmund Cherem ff24a5ee6b fasta: make strong-mode inference aware of the type of LoadLibrary and CheckLibraryIsLoaded
Closes https://github.com/dart-lang/sdk/issues/32841

Change-Id: I270b11b33460b66cd400fa8145ce5e968096a2bf
Reviewed-on: https://dart-review.googlesource.com/50622
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-04-12 19:44:51 +00:00
Alexander Thomas 3851591642 [infra] Keep comments intact when updating status files.
* Preserve empty lines in the file header.
* Add empty entry to the tool's newly created sections.
* Remove extra empty line at the end of the file.

Change-Id: I271583774d5f5497025a9d85bcadf8b0b9e39e81
Reviewed-on: https://dart-review.googlesource.com/37600
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2018-04-10 19:03:21 +00:00
Aske Simon Christensen bd39320b3b Recover from error on undefined continue label.
Closes https://github.com/dart-lang/sdk/issues/32800

Change-Id: Idbd11f1c17affc1e9a6dd7f4c6999464bac8982e
Reviewed-on: https://dart-review.googlesource.com/50220
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-04-10 14:33:11 +00:00
Aske Simon Christensen 290cc58e71 Use actual receiver when error-wrapping a null-aware property get.
Fixes the crash on conditional_property_access_test_{05,06}.dart
from https://github.com/dart-lang/sdk/issues/32800

Change-Id: Ic3928b345c235472d6632e8bc443f28d59b81f6b
Reviewed-on: https://dart-review.googlesource.com/49920
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
2018-04-10 13:24:29 +00:00
Peter von der Ahé 60af3baf4d Implement type arguments to implicit creation
Fixes https://github.com/dart-lang/sdk/issues/30922

Change-Id: If9806d0ec5e1cfcc3ae3bd008f3ad3aa1f518a34
Reviewed-on: https://dart-review.googlesource.com/41261
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
2018-04-06 11:00:22 +00:00
Sigmund Cherem 0284fdab6b dart2js: allow as expressions in constants
The CFE doesn't allow them explicitly yet, but implicit casts do show up by the
time we see them in dart2js.

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

Change-Id: Idb566625ce7c8edc74a4eea0109491bd72357051
Reviewed-on: https://dart-review.googlesource.com/49801
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2018-04-06 00:46:30 +00:00
Régis Crelier bd6e66c538 [VM runtime] Ignore 'implements Function' in strong mode type tests (fixes #32154).
Change-Id: I7d53594e6ffaef616b3384e073e2240a8ca7017c
Reviewed-on: https://dart-review.googlesource.com/49080
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-04-04 17:52:55 +00:00
Erik Ernst c98df5b065 Check that type alias equality relies on the underlying type, not the typedefed name.
Note that this is a multi-test, which is helpful in order to make it visible which situations are covered and which ones are not, but when it all works it would make sense to just run everything in one step, in order to get better performance.

Change-Id: Ifab94f7ad369a7c76bab3337eabf2ddd22821b04
Reviewed-on: https://dart-review.googlesource.com/47882
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-04-03 12:34:40 +00:00
Jenny Messerly cdc696f9a7 fix status of VM precomp tests to match its callable function support
(The status entries match the standard Dart 2 VM behavior.)

Change-Id: I6c939ca04c892959479b00621ad8dc27767a5f0a
Reviewed-on: https://dart-review.googlesource.com/48890
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-03-30 20:11:10 +00:00
Dmitry Stefantsov 59d859645e [fasta] Do new/const insertion in simple cases
Bug: http://dartbug.com/32553
Change-Id: I58e201ffd5019a5a65c0ac188aaab363225b5296
Reviewed-on: https://dart-review.googlesource.com/48481
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-03-30 18:35:05 +00:00
Jenny Messerly bed5debbeb Callable object support in Analyzer and DDC.
Fixes #32156
Fixes #32157
Fixes #32426

This also fixes `implements Function` so it has no effect in Dart 2
(it is ignored for the purposes of subtyping.)

Change-Id: Ibec9c77cd516b8b97fef68a579998598d0acf8c6
Reviewed-on: https://dart-review.googlesource.com/45141
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-30 18:14:55 +00:00
Régis Crelier 7d90df42f1 [Kernel, VM runtime] Hook up bool checks in strong mode (fixes #32336).
Update kernel status file.

Change-Id: I08b153d431c15870e0251e7dd760213c795579c9
Reviewed-on: https://dart-review.googlesource.com/48707
Reviewed-by: Siva Annamalai <asiva@google.com>
2018-03-29 16:10:52 +00:00
Alexander Markov c60199cf86 [vm/kernel/aot] Tree shaking based on results of TFA, take 2.
This is a re-landing of

https://github.com/dart-lang/sdk/commit/06ebf884db61b97a60b1578560678329cd51bf61

after the fix was submitted separately at

https://github.com/dart-lang/sdk/commit/e3b9c2860e46f9d673ffc3129ede2a11c6125d06

Original review: https://dart-review.googlesource.com/c/sdk/+/46942

Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: I2d3a10acb9b5af0184b3d1504acb2f4ebebfff8a
Reviewed-on: https://dart-review.googlesource.com/48440
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-03-27 23:39:24 +00:00
Samir Jindel eeba621943 [kernel/vm] Build NSM forwarders for getters and setters.
They are necessary for performing type-checks.

Change-Id: Ie30f0617488730d920c00229fb2ec358cc8d6c4b
Reviewed-on: https://dart-review.googlesource.com/48421
Commit-Queue: Samir Jindel <sjindel@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-03-27 14:40:04 +00:00
Alexander Markov 7386d7b5ec Revert "[vm/kernel/aot] Tree shaking based on results of TFA"
This reverts commit 06ebf884db.

Reason for revert: buildbot failures.

Change-Id: Ie6b33061cad80ae3b20b773cc435d64a755620fc
Reviewed-on: https://dart-review.googlesource.com/48263
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-03-23 22:57:19 +00:00
Alexander Markov 06ebf884db [vm/kernel/aot] Tree shaking based on results of TFA
This CL adds tree shaking transformation into TFA transformer, replacing
simple DropMethodBodiesVisitor. In addition to removing bodies of
unreachable members, tree shaker is able to remove unused classes, typedefs
and member declarations, and replace unreachable calls with 'throw'.

Total(CodeSize) of flutter_gallery in --release mode
before: 11,671,369
after:  11,499,694

https://github.com/dart-lang/sdk/issues/30480

Change-Id: I966cf222eb9725b7a75dd193ac479436b9b9b4c3
Reviewed-on: https://dart-review.googlesource.com/46942
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-03-23 22:21:39 +00:00
Dan Rubel 6180f12ccf Update parsing as/is expressions to use computeType
This introduces a new TypeInfo.ensureType method which recovers
when a type is required but there is no type.

Change-Id: Ie9080864f814329bc7a7dcdf73440fd184e9e0f8
Reviewed-on: https://dart-review.googlesource.com/47944
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-03-23 17:58:59 +00:00
Samir Jindel d014fce4de Update dartkp NSM expectations.
Change-Id: I28cc42a05b25e25184cf4fda1742c016179ac9ef
Reviewed-on: https://dart-review.googlesource.com/47962
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-03-22 20:26:43 +00:00
Samir Jindel 95e9e890a9 [kernel/vm] Implement NSM-forwarding in the VM.
Change-Id: I43ce98235a7fdb43f99f433ef8dd10a6ed08fbbb
Reviewed-on: https://dart-review.googlesource.com/47621
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2018-03-22 19:14:04 +00:00
Karl Klose a461573294 Remove test expectations for a test that actually passes
R=kmillikin@google.com

Change-Id: I02b4f4231e7d9c775153d265beb96b3565a651ee
Reviewed-on: https://dart-review.googlesource.com/46724
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Commit-Queue: Karl Klose <karlklose@google.com>
2018-03-15 12:18:28 +00:00
Alexander Markov 881c0196aa [vm] Fix type test '_Closure class IS FunctionType' in strong mode
Closes https://github.com/dart-lang/sdk/issues/32508

Change-Id: Ib3455edd393d0ce5ccd5fe315f8d54f14606cc25
Reviewed-on: https://dart-review.googlesource.com/46201
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-03-13 19:08:56 +00:00
Dmitry Stefantsov f8995da6aa Report a compile-time error on magic const
When inferring const or new for expressions that aren't required to be const,
Fasta always choses new. That's not correct, and this is a short-term work
around to avoid introducing a breaking change in the future. The plan is to
implement this feature correctly, but that will require more time than we have
right now.

Originally submitted by ahe@google.com.  Added: status file fixes.

Change-Id: I2d70bd2488de6b69fcd5546c1f4654dfbbb30b7f
Reviewed-on: https://dart-review.googlesource.com/46340
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
2018-03-13 19:07:12 +00:00
Alexander Markov 38f598bf80 [Gardening] Mark timed-out test as Slow
The test language_2/vm/precompiled_static_initializer_test times out
on kernel/precompiler/debug bots. This test enables uncontrollable inlining
which results in a huge amount of code to precompile. Most probably,
it started to time-out because type flow analysis, which was enabled in
https://github.com/dart-lang/sdk/commit/d58887eaf6cb8460e2283d8531bbd8c0611a146d,
does more devirtualization and provides more opportunities for inlining.

Change-Id: I915132f81529cc967f62f9546d16a60cb4e8aed7
Reviewed-on: https://dart-review.googlesource.com/46303
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-03-13 17:32:09 +00:00
Martin Kustermann 8dadc89bfb [VM] Disallow ConstructorInvocation/ListLiteral/MapLiteral in constant evaluator
Change-Id: I4ef12bd25974bba9aa69127630b05f2e4fd46657
Reviewed-on: https://dart-review.googlesource.com/46241
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-03-13 12:59:09 +00:00
Alexander Markov d58887eaf6 [vm/kernel/aot, test tool] Enable global type flow analysis
Issue: https://github.com/dart-lang/sdk/issues/30480
Change-Id: I984869a8cdd9c52cab677cab64b562d002cde490
Reviewed-on: https://dart-review.googlesource.com/46122
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-03-12 22:45:39 +00:00
Jenny Messerly 40738b8884 fix #32481, generate signatures for mock members induced by nSM
This bug prevented various DDC features from working correctly at
runtime, such as tearoffs, dynamic call checking, generic methods, and
parameter type checks.

Change-Id: I02cd27abbcb1d5f42b9d4ac504c7dd8bc80c866a
Reviewed-on: https://dart-review.googlesource.com/45960
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-10 01:11:23 +00:00
Alexander Markov 7aa3e54acf [vm] Fix computation of hashCode of a closure with null receiver
As tests/language_2/tearoff_dynamic_test.dart shows, it is perfectly
valid to take a tear-off of an instance method from null, and then call
hashCode from such tear-off.

The implementation of hashCode for closures, Closure::ComputeHash()
was calling Instance::Cast(receiver) which asserts for null.
This code is revised to allow null receiver.

Change-Id: I85cc7abf25aab99590b53403904e8bac25328308
Reviewed-on: https://dart-review.googlesource.com/45749
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2018-03-09 00:26:31 +00:00
Peter von der Ahé 9d17f3a92d Tests no longer crash
Change-Id: Iec0b6de33083cdce7a2fd16c3589ff96adc6913b
Reviewed-on: https://dart-review.googlesource.com/45507
Reviewed-by: Alexander Thomas <athom@google.com>
2018-03-07 19:06:31 +00:00
Peter von der Ahé a55cdaee08 A bit of gardening
Change-Id: I5cee2e167e283c7e89d2a5c9a3f83edc1cf005b3
Reviewed-on: https://dart-review.googlesource.com/45422
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-03-07 14:11:40 +00:00
Paul Berry d17db1d5f3 Pass type inference context down to field initializer when type inferred via override
Fixes #32412.

Change-Id: I52660ffd5a6eadd10c6d62a17c64872946aa2a4a
Reviewed-on: https://dart-review.googlesource.com/45520
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-03-07 11:45:34 +00:00
Peter von der Ahé 94aa20dd07 Update status for $compiler == fasta
Change-Id: I5d073d1c678dc313e79193074c6491085c093596
Reviewed-on: https://dart-review.googlesource.com/45381
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-03-07 10:32:33 +00:00
Paul Berry 615f40bc1d Ensure that null is not used as a context in more places.
This CL changes the handling of writeContext (for complex
assignments), returnOrYieldContext (for closures), expectedType (for
ensureAssignable), and receiverType (for findInterfaceMember) so that
they no longer use `null` to represent a context; they use UnknownType
or DynamicType as appropriate.

It also changes the handling of expectedType (for ensureAssignable) so
that it does not require the type to be known.  That makes this CL
simpler and paves the way for fixing #31792.

Change-Id: Ib1be06182f9a9e9f77a9eb81f5daf2364de0f3a7
Reviewed-on: https://dart-review.googlesource.com/44800
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-03-07 09:30:33 +00:00
Lasse R.H. Nielsen 619434d38d Remember that C() is a compile-time constant expression.
Actually make default value expression not constant.

Change-Id: Id9082716a6606618b91545f427726925849fb61c
Reviewed-on: https://dart-review.googlesource.com/45323
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2018-03-06 16:07:23 +00:00
Peter von der Ahé 9f56e28372 Mixin Applications with a Vengeance
Change-Id: I213f99234f29abd7e2ec03dc8451ed6dd16f3d03
Reviewed-on: https://dart-review.googlesource.com/45021
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-03-06 15:15:57 +00:00
Lasse R.H. Nielsen 9986b6de25 Fix bugs in implicit-creation tests. Add one more test.
Change-Id: Id5328ba0568d7eba78c2b9145ee2db3476dc5bd5
Reviewed-on: https://dart-review.googlesource.com/44961
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-03-06 13:47:51 +00:00
Johnni Winther d3c3ac48a3 Remove implicit 'implements Function' for strong mode
Change-Id: Ie3e3e11a727f7fbe3c8d7af17c84dedfbdfcdf3a
Reviewed-on: https://dart-review.googlesource.com/44422
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-03-06 09:18:48 +00:00
Régis Crelier ce715c3157 [Kernel] Annotate status file with newly filed issues.
Change-Id: I6ea898f794dda65a705c6dcc19d70c1ec0567193
Reviewed-on: https://dart-review.googlesource.com/45100
Reviewed-by: Régis Crelier <regis@google.com>
2018-03-05 18:02:32 +00:00
Régis Crelier c89055ee32 [VM] Fix type finalization for Kernel function types.
Change-Id: I45d1f9686ba52526af17bb9b720eb09f91f91876
Reviewed-on: https://dart-review.googlesource.com/44803
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Régis Crelier <regis@google.com>
2018-03-05 09:18:06 +00:00
Jens Johansen 80e2d30c20 [vm] Fix issue causing recursive_mixin_test to crash
In the VM, TypeRef (extending AbstractType) did _not_ implement
error(), meaning that callong error() on such a type would call it in
AbstractType which basically just says `UNREACHABLE();`.

This fixes the issue.

Change-Id: I6cb9ebe8f814296db8383c187c880f367b096312
Reviewed-on: https://dart-review.googlesource.com/44420
Commit-Queue: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
2018-03-02 17:39:39 +00:00