Commit Graph

33 Commits

Author SHA1 Message Date
Florian Loitsch 2547caab25 Reapply "reflectType() dynamic type arguments support (#26012)"
This was a pull request: 8a8033a417

MirrorsUsed doesn't transitively include reflective information. However, it must still be able to create TypeMirrors for types that are used as return- or parameter types.

Initially, the patch checked that TypeMirrors had the correct number of arguments for generic types. This is now disabled.

A better approach would be to know if a class has full reflective information, or not. But this would require much bigger changes to the system.

R=sigmund@google.com

Review-Url: https://codereview.chromium.org/2615943004 .
2017-01-10 15:53:21 +01:00
Asger Feldthaus 6bae3151e2 Revert "reflectType() dynamic type arguments support (#26012)"
This reverts commit 8a8033a417.

There are a bunch of dart2js mirror tests that fail.

Issue https://github.com/dart-lang/sdk/pull/26012

BUG=

Review-Url: https://codereview.chromium.org/2617163002 .
2017-01-06 19:12:27 +01:00
Anatoly Pulyaevskiy 8a8033a417 reflectType() dynamic type arguments support (#26012)
* Basic implementation of reflecting generic types using dynamic list of type arguments

* Removed redundant expectation in test

* Added basic support for dynamic type arguments in reflectType of js_mirrors

* Fixes according to code review comments: major cleanup, added more test cases and updated docs

* Updated JS mirrors reflectType() to match behavior of VM implementation

* Terminate exception messages with a dot; Improved error handling for empty argument list and type checks;

* Use NumTypeParameters when checking provided argument list size

* Check if type arguments are malbounded; added test cases for typedefs and mixins

* Uncommented a test case

* Updated lib.status to mark some tests as failing in dart2js due to limitations in JS mirrors

* Fixed mixin test mock definition; updated configuration for tests requiring checked mode

* Handle nested generic types in type argument parsing (JS)
2017-01-06 06:05:14 -08:00
Vyacheslav Egorov eb8c24e133 Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork."
R=zra@google.com
BUG=

Review URL: https://codereview.chromium.org/2451623006 .
2016-10-27 10:09:22 +02:00
Vyacheslav Egorov 12968edb9c Revert "Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork.""
This reverts commit 4e7a31262e.

Windows bots are broken now.

R=zra@google.com
BUG=

Review URL: https://codereview.chromium.org/2451893004 .
2016-10-26 17:07:18 +02:00
Vyacheslav Egorov 4e7a31262e Reland "Merge more Kernel infrastructure from kernel_sdk SDK fork."
This relands commit 2fed1c3905 with fixes to ensure that analyzer summaries are correctly created and XARM build does not try to use target binaries on the host.

R=zra@google.com
BUG=

Review URL: https://codereview.chromium.org/2453773002 .
2016-10-26 16:48:28 +02:00
Vyacheslav Egorov cf7ff42e60 Revert "Merge more Kernel infrastructure from kernel_sdk SDK fork."
This reverts commit 2fed1c3905.

SDK builds are failing

TBR=zra@google.com

Review URL: https://codereview.chromium.org/2455593002 .
2016-10-26 13:06:27 +02:00
Vyacheslav Egorov 2fed1c3905 Merge more Kernel infrastructure from kernel_sdk SDK fork.
- bring patched SDK generation scripts and VM patch tweaks that allow VM patch files to be parsed by analyzer front-end;
  Patched SDK is an SDK with all VM patches spliced into it. Kernel compiler is based on the analyzer front-end which does
  not have any patch files support/model so for it to produce Kernel files that match VM we need to generate a such patched SDKs.

- bring test script modifications that allow to test Kernel pipeline

BUG=
R=asiva@google.com, kmillikin@google.com, whesse@google.com, zra@google.com

Review URL: https://codereview.chromium.org/2434123003 .
2016-10-26 13:02:54 +02:00
Matthias Hausner 1a6d1eca32 Implement @patch annotation for patch class members
Allow members of patch classes to be annotated with @patch. The VM
ignores the annotation. I simply replaces the original method
if the name matches, or reports an error if field names match.

Adding a bit is_patched to members to do more checking remains a
TODO. There are currently no unused bits available, and I don’t want
to increase the size of Function objects for this.

BUG=
R=asiva@google.com

Review URL: https://codereview.chromium.org/2230383003 .
2016-08-10 12:54:57 -07:00
Matthias Hausner e11ca24053 Use metadata annotation @patch for patch classes
Annotate patch classes and top-level patch functions with @patch
instead of the pseudo-keyword patch. This allows the analyzer
to read patch files, and matches the syntax that dart2js uses.

The deprecated syntax is still supported, but a warning is printed when detected.

BUG=

Review URL: https://codereview.chromium.org/2220883004 .
2016-08-09 09:48:03 -07:00
rmacnak@google.com 327b85d956 Move symbol demangling to dart:_internal to remove dart:core dependency on dart:mirrors.
BUG=
R=srdjan@google.com

Review URL: https://codereview.chromium.org//1107613002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45405 260f80e4-7a28-3924-810f-c04153c831b5
2015-04-24 17:49:58 +00:00
rmacnak@google.com bfd342fd8a Remove MirroredCompilationError from the VM.
Regenerate snapshot test due to removed symbol.

BUG=http://dartbug.com/16562
R=regis@google.com

Review URL: https://codereview.chromium.org//389573007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@38202 260f80e4-7a28-3924-810f-c04153c831b5
2014-07-14 18:00:04 +00:00
rmacnak@google.com da3b61d764 Add missing demangling to the VM's NoSuchMethodError. Ensure the VM's NoSuchMethorErrors for reflective invocation match those for non-reflective invocation.
Fix bug in VM demangling of setters.
Fix bug where test was not covering invocation on classes as intended.

BUG=http://dartbug.com/18042
R=asiva@google.com

Review URL: https://codereview.chromium.org//326263002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@37294 260f80e4-7a28-3924-810f-c04153c831b5
2014-06-12 22:53:00 +00:00
rmacnak@google.com 3939e3e7f5 Improve error messages in MirrorSystem.findLibrary.
BUG=http://dartbug.com/18532
R=gbracha@google.com

Review URL: https://codereview.chromium.org//287523003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36114 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-13 17:20:08 +00:00
rmacnak@google.com d1402873c3 Revert "Improve error messages in MirrorSystem.findLibrary."
Review URL: https://codereview.chromium.org//283593002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36056 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-12 19:41:11 +00:00
rmacnak@google.com 0c696f26ed Improve error messages in MirrorSystem.findLibrary.
BUG=http://dartbug.com/18532
R=gbracha@google.com

Review URL: https://codereview.chromium.org//278983004

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@36048 260f80e4-7a28-3924-810f-c04153c831b5
2014-05-12 17:52:31 +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
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 a9c7171aa2 Allow creation of public symbols using MirrorSystem.getSymbol when passing a null library.
R=asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//61753019

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30435 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-20 01:33:24 +00:00
rmacnak@google.com 1dcc9ea681 Ensure constructorName symbols include private manglings.
R=asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//53883002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@30178 260f80e4-7a28-3924-810f-c04153c831b5
2013-11-11 23:08:38 +00:00
rmacnak@google.com 07c3de9310 Mirror implementation removals: async invoke, mirrorSystemOf(port), Mirror.mirrors.
(API was removed in r29492)

R=ahe@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//23460050

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29698 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-31 21:01:59 +00:00
ahe@google.com 36e2df1a1d Mirrors overhaul.
R=johnniwinther@google.com

Review URL: https://codereview.chromium.org//23455028

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29551 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-30 14:58:58 +00:00
rmacnak@google.com 0abc881d9e Mirror API removals: async invocations, mirrorSystemOf(port), Mirror.mirrors.
R=ahe@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//45293002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@29492 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-29 21:14:19 +00:00
rmacnak@google.com 0d23dbc1e2 Make TypedefMirror a direct descendant of TypeMirror.
BUG=http://dartbug.com/11616
R=ahe@google.com, asiva@google.com

Review URL: https://codereview.chromium.org//24005002

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28862 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-18 16:59:55 +00:00
rmacnak@google.com e8d030b338 Do not hide membership of implementation classes in dart:core.
BUG=http://dartbuc.com/12141
R=ahe@google.com, asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//27226003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28695 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-16 00:15:10 +00:00
rmacnak@google.com 564fbb68dd Add proper API for creating private symbols wrt a library.
BUG=http://dartbug.com/13355
BUG=http://dartbug.com/12358
R=ahe@google.com, asiva@google.com, gbracha@google.com

Review URL: https://codereview.chromium.org//24631003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@28551 260f80e4-7a28-3924-810f-c04153c831b5
2013-10-11 20:56:14 +00:00
iposva@google.com 5b369cc1c4 - Implement reflectClass.
Review URL: https://codereview.chromium.org//14118011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21610 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-17 10:11:21 +00:00
ahe@google.com 45ad548837 Update dart:mirrors to use Symbol.
Review URL: https://codereview.chromium.org//14173005

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21460 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-15 15:00:45 +00:00
iposva@google.com b564104ea5 - Properly load the core libraries as libraries and not as scripts.
This will honor their imports and library names.
Review URL: https://codereview.chromium.org//12321082

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@19017 260f80e4-7a28-3924-810f-c04153c831b5
2013-02-25 23:25:29 +00:00
johnniwinther@google.com e0a4980031 Mirrors implemented via patches. 2nd try.
Review URL: https://codereview.chromium.org//11624011

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16317 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-19 12:45:46 +00:00
johnniwinther@google.com 6cf3513d36 Revert "Mirrors implemented via patches."
This reverts commit r16204, 16206, and r16210.

Review URL: https://codereview.chromium.org//11595007

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16211 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-17 14:58:12 +00:00
johnniwinther@google.com b8c038d809 Mirrors implemented via patches.
Review URL: https://codereview.chromium.org//11591015

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@16204 260f80e4-7a28-3924-810f-c04153c831b5
2012-12-17 13:24:29 +00:00