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

Issue 9243011: Implement named constructors and resolving of redirecting constructors and super-initializers. (Closed)

Created:
8 years, 11 months ago by karlklose
Modified:
8 years, 10 months ago
Reviewers:
floitsch, ngeoffray
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Implement named constructors and resolving of redirecting constructors and super-initializers. Committed: https://code.google.com/p/dart/source/detail?r=3455

Patch Set 1 #

Patch Set 2 : Rename field. #

Total comments: 20

Patch Set 3 : Address comments. #

Total comments: 53

Patch Set 4 : Address comments. #

Total comments: 2

Patch Set 5 : Move constructor name creation to lookup function. #

Total comments: 8
Unified diffs Side-by-side diffs Delta from patch set Stats (+392 lines, -149 lines) Patch
M frog/leg/elements/elements.dart View 1 2 3 4 6 chunks +44 lines, -28 lines 4 comments Download
M frog/leg/emitter.dart View 1 chunk +1 line, -1 line 0 comments Download
M frog/leg/namer.dart View 2 chunks +20 lines, -4 lines 0 comments Download
M frog/leg/resolver.dart View 1 2 3 4 7 chunks +211 lines, -76 lines 0 comments Download
M frog/leg/scanner/class_element_parser.dart View 1 2 3 4 1 chunk +26 lines, -10 lines 4 comments Download
M frog/leg/scanner/listener.dart View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M frog/leg/ssa/builder.dart View 1 2 3 4 3 chunks +9 lines, -9 lines 0 comments Download
M frog/leg/typechecker.dart View 1 2 1 chunk +1 line, -2 lines 0 comments Download
M frog/leg/warnings.dart View 1 2 3 4 chunks +18 lines, -6 lines 0 comments Download
M frog/tests/leg/src/ResolverTest.dart View 1 2 3 7 chunks +59 lines, -8 lines 0 comments Download
M tests/language/language-leg.status View 1 2 3 4 chunks +1 line, -4 lines 0 comments Download

Messages

Total messages: 11 (0 generated)
karlklose
8 years, 11 months ago (2012-01-18 09:10:01 UTC) #1
floitsch
LGTM! http://codereview.chromium.org/9243011/diff/2001/frog/leg/resolver.dart File frog/leg/resolver.dart (right): http://codereview.chromium.org/9243011/diff/2001/frog/leg/resolver.dart#newcode120 frog/leg/resolver.dart:120: if (initializerOrSuper == null) initializerOrSuper = init; initializerOrSuper ...
8 years, 11 months ago (2012-01-18 15:22:14 UTC) #2
karlklose
Thanks Florian! http://codereview.chromium.org/9243011/diff/2001/frog/leg/resolver.dart File frog/leg/resolver.dart (right): http://codereview.chromium.org/9243011/diff/2001/frog/leg/resolver.dart#newcode120 frog/leg/resolver.dart:120: if (initializerOrSuper == null) initializerOrSuper = init; ...
8 years, 11 months ago (2012-01-18 16:36:08 UTC) #3
ngeoffray
Lots of comments :) http://codereview.chromium.org/9243011/diff/5002/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): http://codereview.chromium.org/9243011/diff/5002/frog/leg/elements/elements.dart#newcode358 frog/leg/elements/elements.dart:358: // TODO(ngeoffray): Implement these. Remove ...
8 years, 11 months ago (2012-01-19 08:56:11 UTC) #4
karlklose
A lot of changes :-) http://codereview.chromium.org/9243011/diff/5002/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): http://codereview.chromium.org/9243011/diff/5002/frog/leg/elements/elements.dart#newcode358 frog/leg/elements/elements.dart:358: // TODO(ngeoffray): Implement these. ...
8 years, 11 months ago (2012-01-19 13:51:24 UTC) #5
ngeoffray
http://codereview.chromium.org/9243011/diff/5002/frog/leg/resolver.dart File frog/leg/resolver.dart (right): http://codereview.chromium.org/9243011/diff/5002/frog/leg/resolver.dart#newcode134 frog/leg/resolver.dart:134: error(init, MessageKind.DUPLICATE_INITIALIZER, [name]); On 2012/01/19 13:51:24, karlklose wrote: > ...
8 years, 11 months ago (2012-01-19 14:36:33 UTC) #6
karlklose
> The 'constructor' map right? That's no problem, generative > constructors and > factories share ...
8 years, 11 months ago (2012-01-19 16:06:26 UTC) #7
ngeoffray
LGTM! http://codereview.chromium.org/9243011/diff/7013/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): http://codereview.chromium.org/9243011/diff/7013/frog/leg/elements/elements.dart#newcode363 frog/leg/elements/elements.dart:363: [SourceString constructor = const SourceString(''), constructor -> constructorName? ...
8 years, 11 months ago (2012-01-20 13:54:17 UTC) #8
karlklose
Thanks for the review, Nicolas! http://codereview.chromium.org/9243011/diff/7013/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): http://codereview.chromium.org/9243011/diff/7013/frog/leg/elements/elements.dart#newcode363 frog/leg/elements/elements.dart:363: [SourceString constructor = const ...
8 years, 11 months ago (2012-01-20 14:11:36 UTC) #9
ahe
https://chromiumcodereview.appspot.com/9243011/diff/7013/frog/leg/scanner/class_element_parser.dart File frog/leg/scanner/class_element_parser.dart (right): https://chromiumcodereview.appspot.com/9243011/diff/7013/frog/leg/scanner/class_element_parser.dart#newcode69 frog/leg/scanner/class_element_parser.dart:69: name = new SourceString('$className.$constructorName'); The scanner and parser generally ...
8 years, 10 months ago (2012-02-15 07:31:15 UTC) #10
ahe
8 years, 10 months ago (2012-02-15 09:25:00 UTC) #11
https://chromiumcodereview.appspot.com/9243011/diff/7013/frog/leg/scanner/cla...
File frog/leg/scanner/class_element_parser.dart (right):

https://chromiumcodereview.appspot.com/9243011/diff/7013/frog/leg/scanner/cla...
frog/leg/scanner/class_element_parser.dart:69: name = new
SourceString('$className.$constructorName');
On 2012/02/15 07:31:15, ahe wrote:
> Right now, I'm seeing a 14% improvement from using ByteArray on
> vm_scanner_bench. However, when I try to use ByteArray in Leg, scanner
> performance regress. So we're somehow losing more than 14% performance in
> class_element_parser. I'm not sure that this particular change is responsible
> for this regression, but it underlines the importance of being very careful
> about these things.

I made some additional instrumentation and I can completely clear this
particular change of any adverse effects on the scanner performance of
hello_world.dart.

Powered by Google App Engine
This is Rietveld 408576698