Samir Jindel
184e2a8b4c
[vm] Support partial instantiation of noSuchMethod forwarders in VM.
...
This is complicated by the fact that the normal factory method for creating
Invocation objects references the arguments descriptor to determine how many
type arguments are passed. This doesn't work for partially instantiated
closures, because the arguments descriptor will say "0" type arguments even when
there may be delayed type arguments attached to the closure from partial
instantiation. The arguments descriptor can't be modified, so we have a new
factory method which takes the number of delayed type arguments directly.
Change-Id: Ic9a35a482b3b7ef80564e674cc6207873e255111
Reviewed-on: https://dart-review.googlesource.com/54245
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2018-05-14 14:34:58 +00:00
Samir Jindel
0cafdc4fdb
[vm] Fix handling of all-dynamic type arguments in noSuchMethod.
...
This fixes #33073 for all code which is relevant to Dart 2.
Change-Id: I3956bf9f2bb06f0e67c8b643e8a7765f28464f5f
Reviewed-on: https://dart-review.googlesource.com/54260
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2018-05-10 17:06:42 +00:00
Martin Kustermann
17d6d470a2
[VM] Remove experimental, unused, argument bits from argdesc and reduce prologue size
...
Change-Id: I1411b718e20394297aa2b761ab47970fcdc36c52
Reviewed-on: https://dart-review.googlesource.com/50920
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Martin Kustermann <kustermann@google.com >
2018-04-12 12:54:29 +00:00
Ben Konyi
f2bf297aa4
[ VM / Hot Reload ] Fixed missing NoSuchMethod exceptions when hot reloading in situations with tearoffs.
...
Change-Id: I43ebfe2d788114d028eebbe675308c272972e06d
Reviewed-on: https://dart-review.googlesource.com/49281
Commit-Queue: Ben Konyi <bkonyi@google.com >
Reviewed-by: Ryan Macnak <rmacnak@google.com >
2018-04-04 19:38:25 +00:00
Samir Jindel
be07555207
Revert "Revert "[kernel] Implementation of fine-grained strong mode argument type-checks, phase 2""
...
This fixes some incorrect asserts that were breaking the debug bots.
The original revision is available in Patchset 1.
This reverts commit 26735519cb .
Bug:
Change-Id: Ifa599b7bff752dec4c505e10fd6db206e1abd977
Reviewed-on: https://dart-review.googlesource.com/23820
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Samir Jindel <sjindel@google.com >
2017-11-27 18:25:31 +00:00
Vyacheslav Egorov
26735519cb
Revert "[kernel] Implementation of fine-grained strong mode argument type-checks, phase 2"
...
This reverts commit f13f772bb2 .
Reason for revert: dartk(p)-strong debug mode is completely broken
because we convert int values non-representable as Smi to Smi, which
triggers that assert. The code that does tagging checks that
Untag(Tag(x)) == x, however for our purposes this identity does not
need to hold because we only care about lower bits and ignore the sign.
Reverting to restore green-ness of DEBUG builds.
TBR=sjindel@google.com
Bug:
Change-Id: Id436cbe000d6dec8db3469070ed531327cc82d89
Reviewed-on: https://dart-review.googlesource.com/23661
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
2017-11-26 10:21:01 +00:00
Samir Jindel
f13f772bb2
[kernel] Implementation of fine-grained strong mode argument type-checks, phase 2
...
This revision continues the implementation of:
https://docs.google.com/document/d/1KK8b6kzr0pQev5YNftSZhN3M6I8HcvOJwJ6U-cW4nfw/edit?ts=5a05b3e9#heading=h.7j21arix8p2
* Add argument checking bits for named arguments in the arguments descriptor.
* Add argument checking bits for type arguments.
* Calculate argument checking bits for setters.
* Add dispatch category to PropertySet and DirectPropertySet.
Bug:
Change-Id: Ieb0a4a99c401f53a72de473fda7bab61581f9996
Reviewed-on: https://dart-review.googlesource.com/22700
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2017-11-24 18:23:57 +00:00
Samir Jindel
a991c17dc9
[kernel] Implementation of fine-grained strong mode argument type-checks, phase 1
...
The revision begins the implementation of:
https://docs.google.com/document/d/1KK8b6kzr0pQev5YNftSZhN3M6I8HcvOJwJ6U-cW4nfw/edit?ts=5a05b3e9#heading=h.7j21arix8p2
* The ArgumentsDescriptor is updated to hold a bitvector for positional arguments.
* The kernel flowgraph builder is updated to calculate the appropriate bits from
the interface target and pass them through the ArgumentsDescriptor
for regular MethodInvocations.
Bug:
Change-Id: I1cd9f43f697df1dd4f36103bbdfc0ba000125c02
Reviewed-on: https://dart-review.googlesource.com/21541
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2017-11-21 15:35:48 +00:00
Samir Jindel
bc9645509e
Revert "Revert "[kernel] Fix NoSuchMethod errors for generic functions.""
...
This un-revert fixes the issues revealed in https://logs.chromium.org/v/?s=chromium%2Fbb%2Fclient.dart%2Fvm-kernel-mac-release-x64-be%2F2217%2F%2B%2Frecipes%2Fsteps%2Fvm_tests%2F0%2Fstdout .
Patchset 1 contains the original revision unmodified.
This reverts commit 9029ee09c5 .
Bug:
Change-Id: I109c011c2688144b00293ce50b3aad53e018a2f2
Reviewed-on: https://dart-review.googlesource.com/18340
Reviewed-by: Régis Crelier <regis@google.com >
2017-11-06 17:07:38 +00:00
Samir Jindel
9029ee09c5
Revert "[kernel] Fix NoSuchMethod errors for generic functions."
...
This reverts commit 52e1466588 .
Bug:
Change-Id: Ic1b37a5df2f50ede4f6873b6d2a701663673bcbb
Reviewed-on: https://dart-review.googlesource.com/18261
Reviewed-by: Zach Anderson <zra@google.com >
2017-11-02 16:52:32 +00:00
Samir Jindel
52e1466588
[kernel] Fix NoSuchMethod errors for generic functions.
...
Bug:
Change-Id: I8ad90e34a7b1f77b29f1d711f158bcb69f5928f4
Reviewed-on: https://dart-review.googlesource.com/17941
Commit-Queue: Samir Jindel <sjindel@google.com >
Reviewed-by: Régis Crelier <regis@google.com >
2017-11-02 15:16:08 +00:00
Peter von der Ahé
e8aef37eac
Clean up patches so they can be compiled by Fasta.
...
Change-Id: Ie436375c78496366accf0ba82938e54cbe30b143
Reviewed-on: https://dart-review.googlesource.com/3001
Commit-Queue: Peter von der Ahé <ahe@google.com >
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com >
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Reviewed-by: Johnni Winther <johnniwinther@google.com >
2017-10-05 14:05:50 +00:00
Régis Crelier
db8b20107b
Revert "Revert "Dart Core Lib change to support generic functions in class NoSuchMethodError.""
...
This reverts commit 8cf9ef22c4 .
The expectations in Dart2js and Kernel tests have now been updated.
Change-Id: I9d65ff207490cfc783849b1b726db81cf56ecfc2
Reviewed-on: https://dart-review.googlesource.com/9124
Reviewed-by: Régis Crelier <regis@google.com >
2017-09-28 00:27:24 +00:00
Régis Crelier
8cf9ef22c4
Revert "Dart Core Lib change to support generic functions in class NoSuchMethodError."
...
This reverts commit db15f5d73b .
Dart2js and Kernel tests are comparing text that has changed because of
the core lib change.
Change-Id: I1d33716a3d6e6a077aa1f1a9ad7cc37825d31fa6
Reviewed-on: https://dart-review.googlesource.com/9082
Reviewed-by: Siva Chandra <sivachandra@google.com >
2017-09-27 21:08:20 +00:00
Régis Crelier
db15f5d73b
Dart Core Lib change to support generic functions in class NoSuchMethodError.
...
Change-Id: If7d1a8c07e4bee7ec68fede80a9d17cae0044d31
Reviewed-on: https://dart-review.googlesource.com/5329
Reviewed-by: Florian Loitsch <floitsch@google.com >
2017-09-27 17:57:41 +00:00
Régis Crelier
b3a7dd6e9d
[VM generic function reification] Support generic functions in Invocation class.
...
Make VM object TypeArguments a Dart instance.
Add a test verifying that noSuchMethod works with generic functions.
R=floitsch@google.com , rmacnak@google.com
Review-Url: https://codereview.chromium.org/3007603002 .
2017-08-28 17:00:39 -07:00
Peter von der Ahé
d6a766bb14
Improve NSM handling.
...
R=paulberry@google.com
Review-Url: https://codereview.chromium.org/2927613002 .
2017-06-07 09:28:13 +02:00
Peter von der Ahé
4fddc2e4d5
Move code for instantiating Invocation to Target.
...
R=johnniwinther@google.com
Review-Url: https://codereview.chromium.org/2897683002 .
2017-05-22 15:59:06 +02:00
Régis Crelier
9aafded095
Pass type argument vector to generic functions (if --reify-generic-functions is
...
true, still false per default).
Work in progress, not functional yet (passed vector is still ignored in callee).
R=vegorov@google.com , zra@google.com
Review-Url: https://codereview.chromium.org/2859673002 .
2017-05-18 14:03:47 -07:00
Jacob Richman
4360e99d18
Revert "Fix observatory tests broken by running dartfmt."
...
This reverts commit b1f7e6d94673b098c93c187fe3efc45c15f27edc.
BUG=
Committed: https://github.com/dart-lang/sdk/commit/62be0eacfbb36bdc92a05c7c35bb4506621b6a3a
Review-Url: https://codereview.chromium.org/2767533002 .
2017-03-21 10:07:26 -07:00
Jacob Richman
62be0eacfb
Revert "Fix observatory tests broken by running dartfmt."
...
This reverts commit b1f7e6d94673b098c93c187fe3efc45c15f27edc.
BUG=
Review-Url: https://codereview.chromium.org/2767533002 .
2017-03-20 22:19:22 -07:00
Jacob Richman
88f8aacd5f
Re-apply rolled back CL to apply dartfmt to runtime.
...
Fix observatory tests broken by running dartfmt due to line and column changes.
Temporarily reverted formatting for evaluate_activation_test.dart as dartfmt doesn't yet handle multitests.
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2759973004 .
2017-03-20 21:44:59 -07:00
Ryan Macnak
ea4744a06f
Revert "Run dartfmt on all files under runtime."
...
This reverts commit 15f393f189 .
The change caused many service test failures due to changed line numbers.
TBR=jacobr@google.com
Review-Url: https://codereview.chromium.org/2762583003 .
2017-03-20 13:42:55 -07:00
Jacob Richman
15f393f189
Run dartfmt on all files under runtime.
...
I've omitted files where the formatter output is significantly uglier
than the original code and I'll send those files in a separate CL
with options for how to make the code look reasonable while still
taking advantage of the formatter.
BUG=
R=johnmccutchan@google.com
Review-Url: https://codereview.chromium.org/2751423005 .
2017-03-20 13:13:50 -07:00
Ryan Macnak
5ee2da4475
Spec says empty namedArguments is const {}, not const <Symbol, dynamic>{}.
...
BUG=http://dartbug.com/24331
R=gbracha@google.com
Review URL: https://codereview.chromium.org//1359503002 .
2015-09-18 17:05:35 -07:00
Regis Crelier
7f10c1420d
Make invocation namedArguments unmodifiable.
...
Fixes #13714
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//1241583008 .
2015-07-17 14:04:54 -07:00
hausner@google.com
ad3fb79210
Better error message for assignment to final local variables
...
“No top-level getter found” becomes “cannot assign to final variable xxx”.
Fixes issue 16782.
R=iposva@google.com
Review URL: https://codereview.chromium.org//177633008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@33028 260f80e4-7a28-3924-810f-c04153c831b5
2014-02-25 18:01:35 +00:00
lrn@google.com
3b3e87cabc
Revert "Rename internal library dart:_collection-dev to dart:_internal."
...
Dartium needs updating too.
Committed: https://code.google.com/p/dart/source/detail?r=31827
R=floitsch@google.com
Review URL: https://codereview.chromium.org//133273011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31877 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-16 12:06:38 +00:00
srdjan@google.com
e16402e56e
Fix 16099: Invocation's positionalArguments contains an immutable array.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//139663003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31845 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 19:14:45 +00:00
lrn@google.com
ead87f47e9
Revert "Rename internal library dart:_collection-dev to dart:_internal."
...
Dartium needs updating too.
Review URL: https://codereview.chromium.org//133273011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31827 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 12:27:44 +00:00
lrn@google.com
0098710559
Rename internal library dart:_collection-dev to dart:_internal.
...
BUG= http://dartbug.com/14140
R=floitsch@google.com
Review URL: https://codereview.chromium.org//133893007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31823 260f80e4-7a28-3924-810f-c04153c831b5
2014-01-15 09:24:46 +00:00
rmacnak@google.com
e5d7ada6e9
VM: Support calling through getters in InstanceMirror.delegate.
...
Implement without accessing private members of dart:core. Fix language test expecting wrong return value.
BUG=http://dartbug.com/15138
R=fschneider@google.com
Review URL: https://codereview.chromium.org//114713002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@31140 260f80e4-7a28-3924-810f-c04153c831b5
2013-12-13 18:33:45 +00:00
regis@google.com
9ec07853c5
Report correct error message in case of super invocation (fix issue 8208).
...
R=hausner@google.com
Review URL: https://codereview.chromium.org//30533004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29042 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-22 22:12:07 +00:00
lrn@google.com
4582e5218a
Make Invocation.positionalArguments and .namedArguments never be null.
...
In the cases where they were previously null, they are now an empty list
or map.
The list or map should always be unmodifiable, but the non-empty ones
aren't yet.
BUG= http://dartbug.com/6357
R=floitsch@google.com
Review URL: https://codereview.chromium.org//22918025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26635 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 10:57:33 +00:00
ahe@google.com
5d8b1a1d8c
Move invokeOn to InstanceMirror.
...
Review URL: https://codereview.chromium.org//14251021
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21636 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 16:39:19 +00:00
ahe@google.com
89be2ccac8
Change memberName and namedArguments in Invocation to use Symbol.
...
Review URL: https://codereview.chromium.org//14066019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21602 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 07:54:48 +00:00
ahe@google.com
5b6c0ba820
Rename InvocationMirror to Invocation.
...
Review URL: https://codereview.chromium.org//14049009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21465 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 15:42:44 +00:00
lrn@google.com
844cd39fad
Change getRange to sublist. Make getRange deprecated.
...
This changes the exception behavior of getRange. It used to accept
a length of zero, no matter what start value. Now the start value
must be a valid list index.
Review URL: https://codereview.chromium.org//12817003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@20064 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-15 09:15:39 +00:00
lrn@google.com
53f877edb7
Rename String.concat to operator+.
...
Review URL: https://codereview.chromium.org//12441003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19788 260f80e4-7a28-3924-810f-c04153c831b5
2013-03-11 12:59:17 +00:00
iposva@google.com
c900112af7
- Improve the message for NoSuchMethodErrors that are
...
determined statically at compile time.
Review URL: https://codereview.chromium.org//12328019
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@18848 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-21 18:53:27 +00:00
regis@google.com
d273efd45f
Turn compile time errors related to missing getters and setters into invocation
...
of noSuchMethod or into throwing of NoSuchMethodError according to spec.
Return result of InvocationMirror.invokeOn to caller.
Fix various tests.
Review URL: https://codereview.chromium.org//11669015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16463 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-22 00:40:46 +00:00
regis@google.com
aef9047742
Invoke noSuchMethod instead of immediately throwing NoSuchMethodError when
...
invoking a non-closure as a closure (reopened issue 3326).
Address comments of last cl.
Review URL: https://codereview.chromium.org//11612002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16220 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-17 19:35:16 +00:00
regis@google.com
3ae792bbf4
Implement InvocationMirror.invokeOn method in the vm (issue 7227).
...
Review URL: https://codereview.chromium.org//11570042
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16187 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-15 00:28:41 +00:00
regis@google.com
3b1dfe51d1
Pass the proper invocation mirror argument to noSuchMethod.
...
Review URL: https://codereview.chromium.org//11523002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15939 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-11 00:31:53 +00:00
vegorov@google.com
d9929b4046
Fix throw statement in _InvocationMirror.invokeOn on VM's library.
...
UnsupportedOperation was renamed to UnsupportedError.
R=fschneider@google.com
Review URL: https://codereview.chromium.org//11414183
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@15397 260f80e4-7a28-3924-810f-c04153c831b5
2012-11-27 15:28:11 +00:00
lrn@google.com
a8720a6d9c
Change signature of noSuchMethod to take an InvocationMirror.
...
Requires VM and dart2js/dart2dart changes to work.
Committed: https://code.google.com/p/dart/source/detail?r=14198
Committed: https://code.google.com/p/dart/source/detail?r=14254
Review URL: https://codereview.chromium.org//11231074
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14324 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-31 10:32:54 +00:00
lrn@google.com
895d155ab1
Revert "Change signature of noSuchMethod to take an InvocationMirror."
...
TBR=ager@google.com
Review URL: https://codereview.chromium.org//11339042
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14260 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-30 10:47:42 +00:00
lrn@google.com
4a24ddc1d4
Change signature of noSuchMethod to take an InvocationMirror.
...
Requires VM and dart2js/dart2dart changes to work.
Committed: https://code.google.com/p/dart/source/detail?r=14198
Review URL: https://codereview.chromium.org//11231074
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14254 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-30 10:04:12 +00:00
lrn@google.com
778b0dc5e5
Revert "Change signature of noSuchMethod to take an InvocationMirror."
...
TBR=floitsch@google.com
Review URL: https://codereview.chromium.org//11336011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14199 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-29 14:07:10 +00:00
lrn@google.com
0bcd2f4f7b
Change signature of noSuchMethod to take an InvocationMirror.
...
Requires VM and dart2js/dart2dart changes to work.
Review URL: https://codereview.chromium.org//11231074
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@14198 260f80e4-7a28-3924-810f-c04153c831b5
2012-10-29 13:34:58 +00:00