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

Issue 2460373002: Remove BlockExpression from the Kernel language. (Closed)

Created:
4 years, 1 month ago by Kevin Millikin (Google)
Modified:
4 years, 1 month ago
CC:
dart-kernel+reviews_google.com
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Remove BlockExpression from the Kernel language. BlockExpression allowed statements to appear in an expression context. It is unsafe for its original use case, allowing 'yield' to appear as an expression, because the VM's yield implementation does not work when there are live expression intermediate values. Eliminate it by changing the async ExpressionLifter to return a transformed expression and emit statements into a given list as a side effect. This requires implementing the transformation for all statements to account for how they may contain a nested expression. BUG= R=asgerf@google.com Committed: https://github.com/dart-lang/kernel/commit/698af311ca03ca9691e593bbcfca47cb1c69936d

Patch Set 1 #

Total comments: 11

Patch Set 2 : Incorporate review comments, format continuation.dart. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+475 lines, -280 lines) Patch
M lib/ast.dart View 1 chunk +0 lines, -30 lines 0 comments Download
M lib/binary/ast_from_binary.dart View 1 chunk +0 lines, -4 lines 0 comments Download
M lib/binary/ast_to_binary.dart View 1 chunk +0 lines, -6 lines 0 comments Download
M lib/binary/tag.dart View 1 chunk +0 lines, -1 line 0 comments Download
M lib/text/ast_to_text.dart View 2 chunks +0 lines, -27 lines 0 comments Download
M lib/transformations/async.dart View 4 chunks +27 lines, -44 lines 0 comments Download
M lib/transformations/continuation.dart View 1 20 chunks +448 lines, -161 lines 0 comments Download
M lib/type_propagation/builder.dart View 1 chunk +0 lines, -5 lines 0 comments Download
M lib/visitor.dart View 2 chunks +0 lines, -2 lines 0 comments Download

Messages

Total messages: 6 (2 generated)
Kevin Millikin (Google)
https://codereview.chromium.org/2460373002/diff/1/lib/transformations/async.dart File lib/transformations/async.dart (right): https://codereview.chromium.org/2460373002/diff/1/lib/transformations/async.dart#newcode427 lib/transformations/async.dart:427: arguments.positional[0] = expr.operand.accept(this)..parent = arguments; This was a bug: ...
4 years, 1 month ago (2016-10-31 12:29:32 UTC) #2
asgerf
LGTM! https://codereview.chromium.org/2460373002/diff/1/lib/transformations/continuation.dart File lib/transformations/continuation.dart (right): https://codereview.chromium.org/2460373002/diff/1/lib/transformations/continuation.dart#newcode284 lib/transformations/continuation.dart:284: TreeNode visitInvalidStatement(InvalidStatemnt stmt) { InvalidStatemnt -> InvalidStatement https://codereview.chromium.org/2460373002/diff/1/lib/transformations/continuation.dart#newcode405 ...
4 years, 1 month ago (2016-11-01 10:44:45 UTC) #3
Kevin Millikin (Google)
https://codereview.chromium.org/2460373002/diff/1/lib/transformations/continuation.dart File lib/transformations/continuation.dart (right): https://codereview.chromium.org/2460373002/diff/1/lib/transformations/continuation.dart#newcode284 lib/transformations/continuation.dart:284: TreeNode visitInvalidStatement(InvalidStatemnt stmt) { On 2016/11/01 10:44:45, asgerf wrote: ...
4 years, 1 month ago (2016-11-01 13:11:31 UTC) #4
Kevin Millikin (Google)
4 years, 1 month ago (2016-11-01 13:13:35 UTC) #6
Message was sent while issue was closed.
Committed patchset #2 (id:20001) manually as
698af311ca03ca9691e593bbcfca47cb1c69936d (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698