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

Issue 14969004: Implement continue for switch. (Closed)

Created:
7 years, 7 months ago by Johnni Winther
Modified:
7 years, 7 months ago
Reviewers:
ngeoffray, kasperl
CC:
reviews_dartlang.org
Visibility:
Public.

Description

Implement continue for switch. The overall strategy is to convert the following: switch (e) { l_0: case e0: s_0; break; l_1: case e1: s_1; continue l_i; ... l_n: default: s_n; continue l_j; } into this: var label; switch (e) { case e0: label = 0; break; case e1: label = 1; break; ... default: label = n; break; } l: while (true) { switch (label) { case 0: s_0; break l; case 1: s_1; label = i; continue l; ... case n: s_n; label = j; continue l; } } BUG=http://dartbug.com/8270 R=ngeoffray@google.com Committed: https://code.google.com/p/dart/source/detail?r=22838

Patch Set 1 : #

Total comments: 18

Patch Set 2 : Add synthetic default for complex switch statements. #

Patch Set 3 : Updated cf. comments + status updated. #

Total comments: 5

Patch Set 4 : Comment updated. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+509 lines, -240 lines) Patch
M sdk/lib/_internal/compiler/implementation/elements/modelx.dart View 1 2 1 chunk +2 lines, -1 line 0 comments Download
M sdk/lib/_internal/compiler/implementation/resolution/members.dart View 1 2 chunks +2 lines, -17 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/ssa/builder.dart View 1 2 3 13 chunks +349 lines, -193 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/ssa/codegen.dart View 1 5 chunks +29 lines, -12 lines 0 comments Download
M sdk/lib/_internal/compiler/implementation/ssa/nodes.dart View 1 2 4 chunks +14 lines, -3 lines 0 comments Download
M tests/co19/co19-dart2dart.status View 1 2 1 chunk +0 lines, -3 lines 0 comments Download
M tests/co19/co19-dart2js.status View 1 2 1 chunk +1 line, -8 lines 0 comments Download
A tests/language/infinite_switch_label_test.dart View 1 2 1 chunk +37 lines, -0 lines 0 comments Download
M tests/language/language.status View 1 1 chunk +0 lines, -2 lines 0 comments Download
M tests/language/language_dart2js.status View 1 1 chunk +0 lines, -1 line 0 comments Download
A tests/language/nested_switch_label_test.dart View 1 2 1 chunk +42 lines, -0 lines 0 comments Download
A tests/language/switch_label2_test.dart View 1 1 chunk +33 lines, -0 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
Johnni Winther
7 years, 7 months ago (2013-05-13 11:28:19 UTC) #1
ngeoffray
LGTM https://codereview.chromium.org/14969004/diff/2001/sdk/lib/_internal/compiler/implementation/elements/modelx.dart File sdk/lib/_internal/compiler/implementation/elements/modelx.dart (right): https://codereview.chromium.org/14969004/diff/2001/sdk/lib/_internal/compiler/implementation/elements/modelx.dart#newcode2005 sdk/lib/_internal/compiler/implementation/elements/modelx.dart:2005: ElementKind.STATEMENT, enclosingElement); Odd indentation. https://codereview.chromium.org/14969004/diff/2001/sdk/lib/_internal/compiler/implementation/ssa/builder.dart File sdk/lib/_internal/compiler/implementation/ssa/builder.dart (right): ...
7 years, 7 months ago (2013-05-14 07:08:50 UTC) #2
Johnni Winther
PTAL
7 years, 7 months ago (2013-05-16 14:17:59 UTC) #3
Johnni Winther
https://codereview.chromium.org/14969004/diff/2001/sdk/lib/_internal/compiler/implementation/elements/modelx.dart File sdk/lib/_internal/compiler/implementation/elements/modelx.dart (right): https://codereview.chromium.org/14969004/diff/2001/sdk/lib/_internal/compiler/implementation/elements/modelx.dart#newcode2005 sdk/lib/_internal/compiler/implementation/elements/modelx.dart:2005: ElementKind.STATEMENT, enclosingElement); On 2013/05/14 07:08:51, ngeoffray wrote: > Odd ...
7 years, 7 months ago (2013-05-17 07:03:04 UTC) #4
ngeoffray
LGTM https://codereview.chromium.org/14969004/diff/15001/sdk/lib/_internal/compiler/implementation/ssa/builder.dart File sdk/lib/_internal/compiler/implementation/ssa/builder.dart (right): https://codereview.chromium.org/14969004/diff/15001/sdk/lib/_internal/compiler/implementation/ssa/builder.dart#newcode4522 sdk/lib/_internal/compiler/implementation/ssa/builder.dart:4522: // in the switch expression. This sentence is ...
7 years, 7 months ago (2013-05-17 09:00:10 UTC) #5
ngeoffray
https://codereview.chromium.org/14969004/diff/15001/tests/language/language_dart2js.status File tests/language/language_dart2js.status (left): https://codereview.chromium.org/14969004/diff/15001/tests/language/language_dart2js.status#oldcode199 tests/language/language_dart2js.status:199: switch_label_test: Fail # error: target of continue is not ...
7 years, 7 months ago (2013-05-17 09:12:34 UTC) #6
Johnni Winther
https://codereview.chromium.org/14969004/diff/15001/sdk/lib/_internal/compiler/implementation/ssa/builder.dart File sdk/lib/_internal/compiler/implementation/ssa/builder.dart (right): https://codereview.chromium.org/14969004/diff/15001/sdk/lib/_internal/compiler/implementation/ssa/builder.dart#newcode4522 sdk/lib/_internal/compiler/implementation/ssa/builder.dart:4522: // in the switch expression. On 2013/05/17 09:00:10, ngeoffray ...
7 years, 7 months ago (2013-05-17 09:13:34 UTC) #7
Johnni Winther
7 years, 7 months ago (2013-05-17 09:35:40 UTC) #8
Message was sent while issue was closed.
Committed patchset #4 manually as r22838 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698