Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

implement dart:mirrors #199

Closed
vsmenon opened this issue May 27, 2015 · 11 comments
Closed

implement dart:mirrors #199

vsmenon opened this issue May 27, 2015 · 11 comments

Comments

@vsmenon
Copy link
Contributor

vsmenon commented May 27, 2015

Implement the dart:mirrors API. We should be able to map this to our dynamic invocation code / metadata.

@vsmenon vsmenon self-assigned this May 27, 2015
vsmenon added a commit that referenced this issue Jun 15, 2015
This is a very bare bones version - just enough to get angular running.

See #199

[email protected]

Review URL: https://codereview.chromium.org/1186683005.
@vsmenon
Copy link
Contributor Author

vsmenon commented Jun 15, 2015

The basic parts of this (i.e., the parts used by angular) are landed. This is still missing a lot of features - general method / function mirrors, parameter names, etc.

@vsmenon
Copy link
Contributor Author

vsmenon commented Jul 13, 2015

Angular is now using parameter annotations as well (only for constructors).

@jmesserly
Copy link
Contributor

Angular is now using parameter annotations as well (only for constructors).

should be easy to implement now, given that we track parameter types?

@vsmenon
Copy link
Contributor Author

vsmenon commented Jul 13, 2015

Yeah, we've already got code for class-level annotations too, mainly we just need to decide how we want to encode it.

vsmenon added a commit that referenced this issue Aug 7, 2015
@vsmenon
Copy link
Contributor Author

vsmenon commented Nov 20, 2015

Angular is now using ClassMirror.owner:

https://api.dartlang.org/1.13.0/dart-mirrors/DeclarationMirror/owner.html

This will require us to embed a pointer in classes back to the containing library in generated code.

vsmenon added a commit that referenced this issue Dec 1, 2015
A little more implementation and workarounds for Angular.  See #199.

[email protected]

Review URL: https://codereview.chromium.org/1489043002 .
@vsmenon vsmenon removed their assignment Jan 29, 2016
@jmesserly jmesserly removed the js label Mar 2, 2016
@vsmenon
Copy link
Contributor Author

vsmenon commented Apr 19, 2016

Some more items required for Angular apps in mirrors mode:

  • Implement DeclarationMirror.owner
  • Implement LibraryMirror.uri
  • Instance var / getter / setter / method mirrors
  • Fix ClassMirror.newInstance support factory constructors

All of these will require additional compile-time metadata.

@eernstg
Copy link

eernstg commented Apr 20, 2016

I guess the intended workflow is such that 'reflectable' would not be helpful here, as long as it is running as a pub transformer?

@vsmenon
Copy link
Contributor Author

vsmenon commented Apr 20, 2016

Yes, this is just a convenience to run Angular2 apps without transformation.

@vsmenon vsmenon added P2 medium and removed P1 high labels May 5, 2016
@vsmenon vsmenon added P3 low and removed P2 medium labels May 12, 2016
@vsmenon vsmenon removed their assignment May 12, 2016
@srawlins
Copy link

srawlins commented Aug 1, 2016

LibraryMirror.uri is important for some rare cases of unit testing: dart-lang/test#110 requires this to find assets for a test.

vsmenon added a commit that referenced this issue Aug 19, 2016
About 50 tests pass right now.  A bunch more fail.

See #199

[email protected]

Review URL: https://codereview.chromium.org/2256393002 .
@vsmenon vsmenon added P1 high and removed P3 low labels Aug 22, 2016
@vsmenon vsmenon self-assigned this Aug 22, 2016
@vsmenon
Copy link
Contributor Author

vsmenon commented Aug 22, 2016

Bumping and taking. We need some of this for testing support.

@vsmenon
Copy link
Contributor Author

vsmenon commented Sep 6, 2016

This issue was moved to dart-lang/sdk#27268

@vsmenon vsmenon closed this as completed Sep 6, 2016
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Development

No branches or pull requests

4 participants