mlippautz@google.com
1cf1806f29
Remove unreachable code in mirrors.
...
The only case where we do not set the name in the constructor is for anonymous
mixin applications.
BUG=
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//23531037
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27390 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-11 16:10:43 +00:00
mlippautz@google.com
4df2b2b2f1
Remove leftover from CL 23038010.
...
BUG=
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//23690007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27271 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-07 00:02:29 +00:00
rmacnak@google.com
232cdaae3e
VM: Make ParameterMirror.toString say it is a parameter mirror.
...
VM: Make FunctionTypeMirror.toString use the form (args) -> retval.
dart2js: Fix FunctionTypeMirror.toString's use of separators.
BUG=http://dartbug.com/13079
R=ahe@google.com
Review URL: https://codereview.chromium.org//23601018
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27213 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-05 20:57:22 +00:00
rmacnak@google.com
d7d3588a55
Support named and optional positional arguments in reflective invocation.
...
R=ahe@google.com , regis@google.com
Review URL: https://codereview.chromium.org//23604003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27134 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-04 17:12:28 +00:00
rmacnak@google.com
865ef54309
Implement ParameterMirror.metadata.
...
BUG=http://dartbug.com/10906
BUG=http://dartbug.com/11418
R=asiva@google.com
Review URL: https://codereview.chromium.org//23224016
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27082 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 22:50:15 +00:00
rmacnak@google.com
64fd5a5079
Implement InstanceMirror.== in dart2js and InstanceMirror.hashCode in the VM and dart2js.
...
BUG=http://dartbug.com/12909
BUG=http://dartbug.com/12919
R=ahe@google.com , asiva@google.com
Review URL: https://codereview.chromium.org//23460013
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@27075 260f80e4-7a28-3924-810f-c04153c831b5
2013-09-03 20:11:11 +00:00
rmacnak@google.com
919eae46a1
Ensure class mirrors on non-generic classes always have their runtime type set. Add a test for class mirror equality.
...
BUG=http://dartbug.com/12800
R=ahe@google.com , asiva@google.com
Review URL: https://codereview.chromium.org//23657002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26951 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-30 21:51:31 +00:00
rmacnak@google.com
ac705b02a7
More reflection of mixin applications in the VM.
...
*Provide ClassMirror.mixin
*Hide extra class on the inheritance chain introduced in mixin typedefs
*Give mixin applications a simpleName that matches the source language syntax
*Update mixin_test to distinguish between members and constructors
*Update mixin_test for the mixin application naming scheme
BUG=http://dartbug.com/12464
R=ahe@google.com , asiva@google.com
Review URL: https://codereview.chromium.org//23190003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26824 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-28 22:55:53 +00:00
mlippautz@google.com
817a6fff3a
Implement ParameterMirror.{isFinal,hasDefaultValue,defaultValue}.
...
Fixes issue 12196 and partially addresses issue 12430.
BUG=
R=ahe@google.com , asiva@google.com , gbracha@google.com
Review URL: https://codereview.chromium.org//23020025
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26730 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-27 17:31:09 +00:00
mlippautz@google.com
b708a455d1
Fix Function.end_token_pos() and implement MethodMirror.source getter.
...
Move .source getter from ClosureMirror to MethodMirror (as the TODO already suggested) and provide an implementation.
BUG=
R=asiva@google.com , hausner@google.com
Review URL: https://codereview.chromium.org//23038010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26659 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-26 17:14:07 +00:00
rmacnak@google.com
2f192be945
Provide a way to get a Type back from a ClassMirror.
...
BUG= http://dartbug.com/6433
R=asiva@google.com
Review URL: https://codereview.chromium.org//22849015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26407 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-20 23:05:31 +00:00
mlippautz@google.com
1c0cff6f62
Implement MethodMirror.isOperator
...
Fixes issue 11944.
BUG=http://dartbug.com/11944
R=rmacnak@google.com
Review URL: https://codereview.chromium.org//22914017
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26369 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-20 16:39:34 +00:00
mlippautz@google.com
c79874a413
ParameterMirror: Implement some missing getters.
...
Fixes issue 11334 and issue 11684 and issue 11567.
R=asiva@google.com
Review URL: https://codereview.chromium.org//21624006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26086 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-13 21:38:36 +00:00
rmacnak@google.com
5c63370d25
Make ClosureMirror handle instances of user-defined classes that implement call.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//22625003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25944 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-08 20:25:46 +00:00
rmacnak@google.com
fe85bf84bb
Reflection on generics.
...
BUG=
R=ahe@google.com , regis@google.com
Review URL: https://codereview.chromium.org//22292002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25942 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-08 20:06:56 +00:00
rmacnak@google.com
409f02d3f9
Implement mirror equality on the VM. Resolves issue 12026.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//21381002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25711 260f80e4-7a28-3924-810f-c04153c831b5
2013-08-01 16:40:10 +00:00
mlippautz@google.com
9f602cfa83
Also fixes issue 11897.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//21124011
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25689 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-31 23:31:14 +00:00
mlippautz@google.com
c5c6df3548
BUG=
...
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//20216002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25651 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-30 22:57:59 +00:00
mlippautz@google.com
58beb194dc
Hoist .simpleName and .qualifiedName up to _LocalDeclarationMirrorImpl.
...
Current tests already cover this change.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//21281002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25647 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-30 22:22:17 +00:00
rmacnak@google.com
b68bc10c6c
Create the local MirrorSystem with internal code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20851002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25601 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-30 01:09:05 +00:00
rmacnak@google.com
47f7d23626
Ensure FunctionTypeMirrors have a proper reflectee and implement ClassMirror.superinterfaces with internal code. Remove some unnecessary fields and constructor arguments.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//21010005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25599 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-30 00:29:52 +00:00
rmacnak@google.com
844a406c8a
Implement reflect() with Dart code, InstanceMirror.type and ClosureMirror.function with internal code.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//21119002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25594 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-29 23:57:31 +00:00
rmacnak@google.com
bd07e14c9a
Make ClassMirror.constructors an internal native and lazy.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20564002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25533 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-26 18:29:38 +00:00
rmacnak@google.com
b0cd678f0c
Implement ClassMirror.superclass with internal code for ordinary (but not function type) classes. Resolves issue 5794 and issue 9434.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20465002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25508 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 22:45:07 +00:00
mlippautz@google.com
4415c965d1
BUG=
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20208002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25499 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 21:10:09 +00:00
rmacnak@google.com
6ee2707fc6
Address some drive-by comments: equality without hash, types in the instantiation expression.
...
R=ahe@google.com
Review URL: https://codereview.chromium.org//19473005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25478 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 16:37:05 +00:00
rmacnak@google.com
4a98a91696
Change the return value of setField to be in line with non-reflective assignments. Complete unwrapping of exceptions for the InstanceMirror invokes. Resolves issue 11219 and issue 11943.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20066004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25457 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-25 00:18:42 +00:00
rmacnak@google.com
8ebdd7f9d8
Make LibraryMirror.members an internal native and lazy.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20119002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25451 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 23:51:15 +00:00
rmacnak@google.com
1a0b3c7871
Make reflective invocations raise NoSuchMethodErrors in the cases where non-reflective invocations do so. Resolves issues 11187 and 11957.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//19819003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25387 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-24 00:29:17 +00:00
rmacnak@google.com
c745da73af
Make ClassMirror.members internal-native and lazy.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//19496003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25384 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 23:54:16 +00:00
mlippautz@google.com
9d367d788d
Local change to make the type getter lazy.
...
This change adds the last piece missing to inline functionality of CreateMethodMirror and its parameters. (Separate CL.)
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//19983003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25325 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:39:28 +00:00
rmacnak@google.com
6c2d006377
Fix a regression in ObjectMirror.setFieldAsync (issue 11898).
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//20006003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25323 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-23 00:02:28 +00:00
rmacnak@google.com
9c4fef756b
Implement VariableMirror creation with non-API code. To break circular initialization, have them find their type lazily.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//19512003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25317 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-22 23:05:54 +00:00
mlippautz@google.com
b3cb27a829
Since returnType is represented by a mirror, we make it lazy. We do not use a lazy mirror anymore, but instead create a type mirror upon first access.
...
CreateTypeMirror is already factored out of MethodMirror_return_type since it is needed by others mirrors (future CLs). Also introduces CreateMirror() which will be used in future CLs.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//19780002
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25252 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 23:17:47 +00:00
rmacnak@google.com
f85d1df63e
Fix regression in TypedefMirror.owner introduced when making ClassMirror.owner lazy.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//19749008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25244 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 21:16:29 +00:00
rmacnak@google.com
448dbb1017
Make the ClassMirrors created through reflectClass() find their owners (libraries) lazily.
...
Remove an unused parameter that was threaded through a number of mirror creation functions.
R=asiva@google.com
Review URL: https://codereview.chromium.org//19188004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25193 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-19 00:44:36 +00:00
rmacnak@google.com
08e322a197
Introduce an abstract DeclarationMirror in the implementation hierarchy; add a MirrorReference reflectee to TypedefMirror and TypeVariableMirror.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//19604004
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25187 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 22:13:55 +00:00
mlippautz@google.com
61bae883ed
If we have the owner mirror at creation time (which right now is a lazy mirror), we will use it. Eventually lazy mirrors will go away and we will not have to resolve() in dart code anymore.
...
If we don't have it, for example for a nested closure, we set it null and construct it lazily at access time.
Example:
outer() {
inner() {}
var closureMirror = reflect(inner);
print(closureMirror.function.owner); // Should be a MethodMirror on outer, that is constructed lazily.
}
Since we need to be able to construct the chain of owners (back up to library), we need to handle all cases in the lazy creation.
The CL also adds wrappers that can be called with native objects. At some point these wrapper will create the mirrors without referring to the ones using embedded API.
BUG=
R=asiva@google.com
Review URL: https://codereview.chromium.org//19579006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25186 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 22:04:57 +00:00
rmacnak@google.com
3421cfe092
Interpose an Expando cache on reflectClass().
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//19462008
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25181 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-18 20:54:45 +00:00
rmacnak@google.com
31145d5478
Implement metadata as an internal native. Be honest about which mirrors don't yet support metadata introspection.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//19235015
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25126 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-17 21:50:54 +00:00
rmacnak@google.com
39bf0aca44
Implement the invoke methods (invoke, getField, setField, newInstance, apply) as internal natives.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//18463003
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25024 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 21:14:43 +00:00
rmacnak@google.com
183c94e250
Implement dynamicType and voidType as TypeMirrors not ClassMirrors. Issue 11743.
...
R=asiva@google.com
Review URL: https://codereview.chromium.org//18343005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@25010 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-15 16:32:11 +00:00
mlippautz@google.com
3b5ba678cd
Add a MirrorReference reflectee to MethodMirrors. Name getter now refers to
...
internal function object, providing a name for for all cases and not only for
the ones a name has been provided in the constructor.
Fixes http://dartbug.com/6335
R=asiva@google.com , rmacnak@google.com
Review URL: https://codereview.chromium.org//18473005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24872 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-10 01:08:19 +00:00
rmacnak@google.com
bba532bc7d
Add a MirrorReference reflectee for ClassMirrors. Rewrite the name accessor in terms of it, at least for the non-special cases.
...
(This is a continuation of 18562005.)
R=asiva@google.com
Review URL: https://codereview.chromium.org//18465006
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24826 260f80e4-7a28-3924-810f-c04153c831b5
2013-07-08 22:05:15 +00:00
ahe@google.com
4509912981
Improve toString on mirrors and align VM and dart2js.
...
R=ngeoffray@google.com
Review URL: https://codereview.chromium.org//15679024
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24081 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-17 09:39:12 +00:00
gbracha@google.com
c78462c2ad
Changes to mirrors in support of metadata access at runtime.
...
R=iposva@google.com
Review URL: https://codereview.chromium.org//16757007
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@24050 260f80e4-7a28-3924-810f-c04153c831b5
2013-06-14 21:12:58 +00:00
floitsch@google.com
968ebcff5a
Make Completers asynchronous.
...
BUG= http://dartbug.com/9990
R=ajohnsen@google.com , lrn@google.com
Review URL: https://codereview.chromium.org//14690009
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@22417 260f80e4-7a28-3924-810f-c04153c831b5
2013-05-06 15:15:15 +00:00
johnniwinther@google.com
f721629103
Change libraries map to use Uri.
...
Review URL: https://codereview.chromium.org//14178010
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21929 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-24 08:19:24 +00:00
johnniwinther@google.com
b6b309de52
Change url to uri on LibraryMirror.
...
Review URL: https://codereview.chromium.org//14251005
git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@21803 260f80e4-7a28-3924-810f-c04153c831b5
2013-04-22 10:27:41 +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