Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(131)

Issue 119913002: Align source mirrors with runtime mirrors. (Closed)

Created:
7 years ago by Johnni Winther
Modified:
6 years, 10 months ago
Reviewers:
floitsch, Emily Fortuna
CC:
reviews_dartlang.org, Alan Knight, Emily Fortuna, ahe
Visibility:
Public.

Description

Align source mirrors with runtime mirrors. BUG= R=floitsch@google.com Committed: https://code.google.com/p/dart/source/detail?r=32195

Patch Set 1 #

Patch Set 2 : #

Total comments: 22

Patch Set 3 : Rebased #

Total comments: 18

Patch Set 4 : Updated cf. comments + small fix. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+2850 lines, -3352 lines) Patch
M pkg/docgen/lib/docgen.dart View 1 2 3 26 chunks +79 lines, -57 lines 0 comments Download
M pkg/docgen/test/multi_library_test.dart View 1 2 4 chunks +14 lines, -7 lines 0 comments Download
M pkg/docgen/test/single_library_test.dart View 1 2 3 chunks +8 lines, -4 lines 0 comments Download
M pkg/pkg.status View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M sdk/lib/_internal/compiler/implementation/dart_types.dart View 1 2 5 chunks +5 lines, -5 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/analyze.dart View 1 chunk +66 lines, -0 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart View 1 2 3 1 chunk +278 lines, -0 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/dart2js_library_mirror.dart View 1 2 3 1 chunk +234 lines, -0 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart View 1 2 3 1 chunk +286 lines, -0 lines 0 comments Download
D sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirror.dart View 1 2 1 chunk +0 lines, -1873 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirrors.dart View 1 2 3 1 chunk +468 lines, -0 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/dart2js_type_mirrors.dart View 1 2 3 1 chunk +458 lines, -0 lines 0 comments Download
D sdk/lib/_internal/compiler/implementation/mirrors/mirrors.dart View 1 chunk +0 lines, -752 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/mirrors/mirrors_util.dart View 1 2 11 chunks +107 lines, -58 lines 0 comments Download
A sdk/lib/_internal/compiler/implementation/mirrors/source_mirrors.dart View 2 1 chunk +249 lines, -0 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/mirrors/util.dart View 3 chunks +6 lines, -2 lines 0 comments Download
M sdk/lib/_internal/compiler/samples/darttags/darttags.dart View 1 2 3 chunks +10 lines, -8 lines 0 comments Download
M sdk/lib/_internal/compiler/samples/jsonify/jsonify.dart View 1 2 1 chunk +5 lines, -4 lines 0 comments Download
M sdk/lib/_internal/dartdoc/lib/dartdoc.dart View 1 2 57 chunks +188 lines, -156 lines 0 comments Download
M sdk/lib/_internal/dartdoc/lib/src/dart2js_mirrors.dart View 1 chunk +2 lines, -4 lines 0 comments Download
M sdk/lib/_internal/dartdoc/lib/src/dartdoc/utils.dart View 2 chunks +4 lines, -4 lines 0 comments Download
M sdk/lib/_internal/dartdoc/lib/src/export_map.dart View 1 chunk +1 line, -1 line 0 comments Download
M sdk/lib/_internal/dartdoc/lib/universe_serializer.dart View 17 chunks +55 lines, -46 lines 0 comments Download
M sdk/lib/_internal/dartdoc/test/export_map_test.dart View 1 chunk +2 lines, -2 lines 0 comments Download
M tests/compiler/dart2js/memory_compiler.dart View 1 2 1 chunk +2 lines, -2 lines 0 comments Download
M tests/compiler/dart2js/mirror_system_helper.dart View 1 chunk +3 lines, -3 lines 0 comments Download
M tests/compiler/dart2js/mirrors_exports_test.dart View 2 chunks +5 lines, -5 lines 0 comments Download
M tests/compiler/dart2js/mirrors_lookup_test.dart View 4 chunks +28 lines, -27 lines 0 comments Download
M tests/compiler/dart2js/mirrors_metadata_test.dart View 3 chunks +16 lines, -16 lines 0 comments Download
M tests/compiler/dart2js/mirrors_mixin_test.dart View 15 chunks +32 lines, -32 lines 0 comments Download
M tests/compiler/dart2js/mirrors_test.dart View 41 chunks +173 lines, -254 lines 0 comments Download
A tests/utils/source_mirrors_test.dart View 1 chunk +36 lines, -0 lines 0 comments Download
M tools/dom/docs/lib/docs.dart View 1 2 4 chunks +7 lines, -5 lines 0 comments Download
M utils/apidoc/apidoc.dart View 6 chunks +7 lines, -7 lines 0 comments Download
M utils/apidoc/html_diff.dart View 1 2 3 6 chunks +12 lines, -14 lines 0 comments Download
M utils/apidoc/lib/metadata.dart View 1 chunk +4 lines, -3 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
Johnni Winther
7 years ago (2013-12-20 12:11:51 UTC) #1
Johnni Winther
6 years, 11 months ago (2014-01-23 21:30:35 UTC) #2
floitsch
FYI. I still have to get a better feeling of the overall change (the big ...
6 years, 10 months ago (2014-01-28 19:21:52 UTC) #3
floitsch
I tried to apply the CL to my local checkout, and it failed. Could you ...
6 years, 10 months ago (2014-01-28 19:54:54 UTC) #4
floitsch
LGTM. https://chromiumcodereview.appspot.com/119913002/diff/60001/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart File sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart (right): https://chromiumcodereview.appspot.com/119913002/diff/60001/sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart#newcode72 sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart:72: final Dart2JsMirrorSystem mirrors; Why do we call this ...
6 years, 10 months ago (2014-01-30 18:18:19 UTC) #5
Emily Fortuna
This is an epic CL, Johnni! Thank you for all of your hard work! https://chromiumcodereview.appspot.com/119913002/diff/60001/pkg/docgen/lib/docgen.dart ...
6 years, 10 months ago (2014-01-30 19:33:10 UTC) #6
Johnni Winther
Committed patchset #4 manually as r32195 (presubmit successful).
6 years, 10 months ago (2014-01-31 14:16:44 UTC) #7
Emily Fortuna
I still have a few questions about the API I'm hoping to hear back about... ...
6 years, 10 months ago (2014-01-31 21:53:48 UTC) #8
Johnni Winther
6 years, 10 months ago (2014-02-03 08:22:48 UTC) #9
Message was sent while issue was closed.
Forgot to publish my comments.

@efortuna: Ping me again if the answers aren't satifactory.

https://codereview.chromium.org/119913002/diff/60001/pkg/docgen/lib/docgen.dart
File pkg/docgen/lib/docgen.dart (right):

https://codereview.chromium.org/119913002/diff/60001/pkg/docgen/lib/docgen.da...
pkg/docgen/lib/docgen.dart:127:
mirrorToDocgen[dart2js_util.qualifiedNameOf(mirror)];
On 2014/01/30 19:33:10, Emily Fortuna wrote:
> I liked that qualified name was a property on the mirror. what's the rationale
> for this change?

The [qualifiedName] property is still there but the type has changed from String
to Symbol. The [qualifiedNameOf] is a helper to get the String version.

Maybe you can do with using [Symbol] for keys instead of [String] but I made to
conversion to ensure semantic equivalence.

https://codereview.chromium.org/119913002/diff/60001/pkg/docgen/lib/docgen.da...
pkg/docgen/lib/docgen.dart:1124: var exportedClasses =
_addAll(exported['classes'],
On 2014/01/30 19:33:10, Emily Fortuna wrote:
> perhaps instead exportedClasses could just be an Iterable, and then we can
look
> up the name on an as-needed basis instead of having the _addAll helper
function.

Sounds like a good I idea. I'll leave that up to you, though.

https://codereview.chromium.org/119913002/diff/60001/pkg/docgen/lib/docgen.da...
pkg/docgen/lib/docgen.dart:1792: return
'${owner.docName}.${dart2js_util.nameOf(mirror.owner)}-${dart2js_util.nameOf(mirror)}';
On 2014/01/30 19:33:10, Emily Fortuna wrote:
> 80 char

Done.

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
File
sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart
(right):

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
sdk/lib/_internal/compiler/implementation/mirrors/dart2js_instance_mirrors.dart:72:
final Dart2JsMirrorSystem mirrors;
On 2014/01/30 18:18:20, floitsch wrote:
> Why do we call this "mirrors" and not "mirrorSystem" ?

No good reason. Changed.

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
File
sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart
(right):

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
sdk/lib/_internal/compiler/implementation/mirrors/dart2js_member_mirrors.dart:105:
} else if (realName == 'unary-') {
On 2014/01/30 18:18:20, floitsch wrote:
> It seems hackish to have string constants here.

A general problem for this method. Added a TODO.

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
File sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirrors.dart
(right):

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirrors.dart:55:
MethodMirror _convertElementMethodToMethodMirror(Dart2JsDeclarationMirror
library,
On 2014/01/30 19:33:10, Emily Fortuna wrote:
> 80 char. :-P

Done.

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
sdk/lib/_internal/compiler/implementation/mirrors/dart2js_mirrors.dart:418: var
method = _convertElementMethodToMethodMirror(
On 2014/01/30 18:18:20, floitsch wrote:
> Why the change (removing the type "MethodMirror"). Afaict
> _convertElementMethodToMethodMirror always returns a Dart2JsMethodMirror.

Done.

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
File sdk/lib/_internal/compiler/implementation/mirrors/mirrors_util.dart
(right):

https://codereview.chromium.org/119913002/diff/60001/sdk/lib/_internal/compil...
sdk/lib/_internal/compiler/implementation/mirrors/mirrors_util.dart:15: String
nameOf(DeclarationMirror mirror) =>
On 2014/01/30 19:33:10, Emily Fortuna wrote:
> I'd like to cast a vote in favor of the old way we had accessing these. I
liked
> the properties -- it seemed less verbose.

I comes from the change to use Symbol which doesn't fit with docgen/dartdoc that
needs strings. I added these helper methods because we have a problem with
symbols of private names and I wanted to all source mirror usages statically
visible.

Powered by Google App Engine
This is Rietveld 408576698