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

Issue 1011383003: Use an explicit 'this' parameter instead of 'This' nodes. (Closed)

Created:
5 years, 9 months ago by sra1
Modified:
5 years, 9 months ago
Reviewers:
asgerf, karlklose
CC:
reviews_dartlang.org, Kevin Millikin (Google)
Target Ref:
refs/remotes/git-svn
Visibility:
Public.

Description

Use an explicit 'this' parameter instead of 'This' nodes. An explicit parameter makes it possible to visit all uses of 'this', for example, to change to a calling convention where the receiver is passed as an explicit argument. R=asgerf@google.com Committed: https://code.google.com/p/dart/source/detail?r=44578

Patch Set 1 #

Total comments: 16

Patch Set 2 : test updates #

Total comments: 8

Patch Set 3 : fix parent pointers on thisParameter; fix constant propagation on thisParameter #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+338 lines, -237 lines) Patch
M pkg/analyzer2dart/test/sexpr_data.dart View 1 91 chunks +103 lines, -103 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart View 1 2 13 chunks +53 lines, -8 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart View 1 2 1 chunk +2 lines, -1 line 2 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_integrity.dart View 1 chunk +17 lines, -2 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes.dart View 1 2 11 chunks +11 lines, -16 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_nodes_sexpr.dart View 1 5 chunks +16 lines, -8 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart View 1 2 chunks +0 lines, -7 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/shrinking_reductions.dart View 1 2 1 chunk +1 line, -0 lines 0 comments Download
M pkg/compiler/lib/src/cps_ir/type_propagation.dart View 1 2 2 chunks +3 lines, -5 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/backend.dart View 1 1 chunk +1 line, -0 lines 2 comments Download
M pkg/compiler/lib/src/dart_backend/backend_ast_to_frontend_ast.dart View 1 2 2 chunks +6 lines, -6 lines 0 comments Download
M pkg/compiler/lib/src/dart_backend/dart_backend.dart View 1 2 chunks +2 lines, -1 line 0 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart View 1 2 10 chunks +44 lines, -28 lines 2 comments Download
M pkg/compiler/lib/src/tree_ir/tree_ir_integrity.dart View 1 chunk +0 lines, -1 line 0 comments Download
M tests/compiler/dart2js/backend_dart/opt_constprop_test.dart View 1 17 chunks +17 lines, -17 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/opt_redundant_phi_test.dart View 1 8 chunks +8 lines, -8 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/opt_shrinking_test.dart View 1 18 chunks +23 lines, -23 lines 0 comments Download
M tests/compiler/dart2js/backend_dart/sexpr_test.dart View 1 1 chunk +4 lines, -1 line 0 comments Download
M tests/compiler/dart2js/backend_dart/sexpr_unstringifier.dart View 1 3 chunks +26 lines, -2 lines 0 comments Download
M tests/language/parameter_initializer_test.dart View 1 2 1 chunk +1 line, -0 lines 0 comments Download

Messages

Total messages: 11 (2 generated)
sra1
This is a prerequisite for methods that use the interceptor calling convention.
5 years, 9 months ago (2015-03-18 12:31:12 UTC) #2
asgerf
Great! I've wanted to do the same thing for a while. LGTM with comments. https://codereview.chromium.org/1011383003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart ...
5 years, 9 months ago (2015-03-18 13:28:25 UTC) #3
sra1
PTAL. I'm still working on a small number of tests. https://codereview.chromium.org/1011383003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart (right): https://codereview.chromium.org/1011383003/diff/1/pkg/compiler/lib/src/cps_ir/cps_ir_builder.dart#newcode240 ...
5 years, 9 months ago (2015-03-19 10:42:52 UTC) #4
asgerf
Still LGTM after some clean up. https://codereview.chromium.org/1011383003/diff/20001/pkg/compiler/lib/src/dart_backend/backend.dart File pkg/compiler/lib/src/dart_backend/backend.dart (right): https://codereview.chromium.org/1011383003/diff/20001/pkg/compiler/lib/src/dart_backend/backend.dart#newcode170 pkg/compiler/lib/src/dart_backend/backend.dart:170: //print(cpsDefinition.accept(new SExpressionStringifier())); Clean ...
5 years, 9 months ago (2015-03-19 11:31:13 UTC) #5
asgerf
RecursiveVisitor.visitFunctionDefinition and visitConstructorDefition should visit the thisParameter. ParentVisitor in ShrinkingReductions should set the parent pointer ...
5 years, 9 months ago (2015-03-19 13:39:41 UTC) #6
sra1
https://codereview.chromium.org/1011383003/diff/20001/pkg/compiler/lib/src/dart_backend/backend.dart File pkg/compiler/lib/src/dart_backend/backend.dart (right): https://codereview.chromium.org/1011383003/diff/20001/pkg/compiler/lib/src/dart_backend/backend.dart#newcode170 pkg/compiler/lib/src/dart_backend/backend.dart:170: //print(cpsDefinition.accept(new SExpressionStringifier())); On 2015/03/19 11:31:13, asgerf wrote: > Clean ...
5 years, 9 months ago (2015-03-19 16:54:25 UTC) #7
sra1
Committed patchset #3 (id:40001) manually as 44578 (presubmit successful).
5 years, 9 months ago (2015-03-19 17:10:15 UTC) #8
karlklose
https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart File pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart (right): https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart#newcode1279 pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart:1279: //assert(target == irBuilder.state.thisParameter); Remove commented out code. https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/dart_backend/backend.dart File ...
5 years, 9 months ago (2015-03-20 09:43:08 UTC) #10
sra1
5 years, 9 months ago (2015-03-20 10:01:42 UTC) #11
Message was sent while issue was closed.
Done (in redo CL: https://chromiumcodereview.appspot.com/1021813002/)

https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/cp...
File pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart (right):

https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/cp...
pkg/compiler/lib/src/cps_ir/cps_ir_builder_task.dart:1279: //assert(target ==
irBuilder.state.thisParameter);
On 2015/03/20 09:43:07, karlklose wrote:
> Remove commented out code.

Done.

https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/da...
File pkg/compiler/lib/src/dart_backend/backend.dart (right):

https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/da...
pkg/compiler/lib/src/dart_backend/backend.dart:170:
//print(cpsDefinition.accept(new SExpressionStringifier()));
On 2015/03/20 09:43:07, karlklose wrote:
> Remove.

Done.

https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/tr...
File pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart (right):

https://codereview.chromium.org/1011383003/diff/40001/pkg/compiler/lib/src/tr...
pkg/compiler/lib/src/tree_ir/tree_ir_builder.dart:234: /*  List<Variable>
translatePhiArguments(List<cps_ir.Reference> args) {
On 2015/03/20 09:43:07, karlklose wrote:
> Remove old code and comment.

Done.

Powered by Google App Engine
This is Rietveld 408576698