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

Issue 9632018: Switch-implementation. (Closed)

Created:
8 years, 9 months ago by Lasse Reichstein Nielsen
Modified:
8 years, 9 months ago
Reviewers:
ahe, floitsch
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Switch-implementation. Change parser to compile several case expressions into one SwitchCase - so there is one case per statement group. Make the builder generate a structure similar to what would be created by an if/else-if cascade with logically or'ed comparisons as conditions. Not handling continues (but then, nothing is yet). Committed: https://code.google.com/p/dart/source/detail?r=5389

Patch Set 1 #

Total comments: 7

Patch Set 2 : Finished implementation #

Total comments: 29

Patch Set 3 : Addressed review comments. #

Total comments: 5

Patch Set 4 : Add missing handling of default in unparser. #

Total comments: 40

Patch Set 5 : Address review comments. #

Total comments: 2
Unified diffs Side-by-side diffs Delta from patch set Stats (+409 lines, -248 lines) Patch
M frog/leg/elements/elements.dart View 1 2 2 chunks +11 lines, -1 line 0 comments Download
M frog/leg/lib/js_helper.dart View 1 2 3 4 1 chunk +12 lines, -0 lines 0 comments Download
M frog/leg/lib/mock.dart View 1 1 chunk +5 lines, -1 line 0 comments Download
M frog/leg/resolver.dart View 1 2 3 4 5 chunks +102 lines, -15 lines 0 comments Download
M frog/leg/scanner/listener.dart View 1 2 2 chunks +17 lines, -8 lines 0 comments Download
M frog/leg/scanner/parser.dart View 1 2 3 4 3 chunks +25 lines, -55 lines 0 comments Download
M frog/leg/ssa/builder.dart View 1 2 3 4 12 chunks +138 lines, -71 lines 0 comments Download
M frog/leg/ssa/codegen.dart View 1 2 3 4 6 chunks +33 lines, -20 lines 0 comments Download
M frog/leg/ssa/nodes.dart View 1 2 3 4 5 chunks +23 lines, -10 lines 0 comments Download
M frog/leg/ssa/tracer.dart View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M frog/leg/tree/nodes.dart View 1 2 3 chunks +31 lines, -37 lines 0 comments Download
M frog/leg/tree/unparser.dart View 1 2 3 1 chunk +6 lines, -12 lines 0 comments Download
M frog/leg/warnings.dart View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download
M tests/co19/co19-leg.status View 1 2 3 4 6 chunks +1 line, -12 lines 2 comments Download
M tests/language/language-leg.status View 1 2 3 4 3 chunks +0 lines, -5 lines 0 comments Download

Messages

Total messages: 15 (0 generated)
Lasse Reichstein Nielsen
Preliminary peek. Break inside switch doesn't work yet (I need to either wrap the if-statement ...
8 years, 9 months ago (2012-03-08 12:10:13 UTC) #1
floitsch
FYI. https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/resolver.dart File frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/resolver.dart#newcode518 frog/leg/resolver.dart:518: Link<StatementElement> breakTargetStack; These (the break and the continueTargetStack) ...
8 years, 9 months ago (2012-03-08 16:35:13 UTC) #2
Lasse Reichstein Nielsen
https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/resolver.dart File frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/resolver.dart#newcode518 frog/leg/resolver.dart:518: Link<StatementElement> breakTargetStack; Yes. Will add comment. https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/scanner/listener.dart File frog/leg/scanner/listener.dart ...
8 years, 9 months ago (2012-03-08 18:35:40 UTC) #3
ahe
Initial comments. https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/scanner/listener.dart File frog/leg/scanner/listener.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/1/frog/leg/scanner/listener.dart#newcode1309 frog/leg/scanner/listener.dart:1309: if (switchCase.isDefaultCase && !isLast) { On 2012/03/08 ...
8 years, 9 months ago (2012-03-08 18:54:46 UTC) #4
Lasse Reichstein Nielsen
Now complete, please review in full.
8 years, 9 months ago (2012-03-09 12:26:13 UTC) #5
ahe
https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/elements/elements.dart#newcode866 frog/leg/elements/elements.dart:866: Node parseNode(DiagnosticListener l) => statement; Unrelated note: I think ...
8 years, 9 months ago (2012-03-09 13:58:32 UTC) #6
floitsch
LGTM after you have addressed peter's and my comments. https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/ssa/builder.dart File frog/leg/ssa/builder.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/ssa/builder.dart#newcode2269 frog/leg/ssa/builder.dart:2269: ...
8 years, 9 months ago (2012-03-09 16:52:14 UTC) #7
Lasse Reichstein Nielsen
https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/elements/elements.dart#newcode866 frog/leg/elements/elements.dart:866: Node parseNode(DiagnosticListener l) => statement; On 2012/03/09 13:58:32, ahe ...
8 years, 9 months ago (2012-03-12 13:05:23 UTC) #8
Lasse Reichstein Nielsen
https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/resolver.dart File frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/7001/frog/leg/resolver.dart#newcode598 frog/leg/resolver.dart:598: if (statement is SwitchStatement) { But I rewrote it ...
8 years, 9 months ago (2012-03-12 13:21:27 UTC) #9
ahe
Initial comments. I like the changes to listener.dart and parser.dart. https://chromiumcodereview.appspot.com/9632018/diff/15015/frog/leg/scanner/listener.dart File frog/leg/scanner/listener.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/15015/frog/leg/scanner/listener.dart#newcode1307 ...
8 years, 9 months ago (2012-03-12 13:24:47 UTC) #10
floitsch
LGTM once you have addressed Peter's comments. https://chromiumcodereview.appspot.com/9632018/diff/12019/frog/leg/ssa/builder.dart File frog/leg/ssa/builder.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/12019/frog/leg/ssa/builder.dart#newcode2330 frog/leg/ssa/builder.dart:2330: if (!isAborted()) ...
8 years, 9 months ago (2012-03-12 13:46:04 UTC) #11
ahe
LGTM! https://chromiumcodereview.appspot.com/9632018/diff/12019/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/12019/frog/leg/elements/elements.dart#newcode878 frog/leg/elements/elements.dart:878: (statement is SwitchStatement) ? '\$$nestingLevel' : null; I ...
8 years, 9 months ago (2012-03-13 10:17:15 UTC) #12
Lasse Reichstein Nielsen
I'll address Peters last comments in a different CL. https://chromiumcodereview.appspot.com/9632018/diff/15015/frog/leg/scanner/parser.dart File frog/leg/scanner/parser.dart (right): https://chromiumcodereview.appspot.com/9632018/diff/15015/frog/leg/scanner/parser.dart#newcode1533 frog/leg/scanner/parser.dart:1533: ...
8 years, 9 months ago (2012-03-13 12:09:38 UTC) #13
ahe
Hi Lasse, I didn't notice this earlier. I don't mind filing a bug myself or ...
8 years, 9 months ago (2012-03-14 23:08:38 UTC) #14
Lasse Reichstein Nielsen
8 years, 9 months ago (2012-03-19 13:43:21 UTC) #15
https://chromiumcodereview.appspot.com/9632018/diff/19003/tests/co19/co19-leg...
File tests/co19/co19-leg.status (right):

https://chromiumcodereview.appspot.com/9632018/diff/19003/tests/co19/co19-leg...
tests/co19/co19-leg.status:44: Language/11_Statements/11_Labels_A01_t03: Fail,
OK # Test doesn't follow spec.
The error here is that the test claims that it's an error if a statement has
more than one label. The spec grammar allows more than one label on a statement.

I already filed a bug: http://code.google.com/p/dart/issues/detail?id=2130

Powered by Google App Engine
This is Rietveld 408576698