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 9086010: closure calls (just the invocation part). (Closed)

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

Description

closure calls (just the invocation part). Committed: https://code.google.com/p/dart/source/detail?r=3003

Patch Set 1 #

Patch Set 2 : Remove debug print. #

Patch Set 3 : Add test file. #

Total comments: 14

Patch Set 4 : Address comments. #

Total comments: 9

Patch Set 5 : Remove debug statements. #

Patch Set 6 : Address comment. #

Total comments: 8

Patch Set 7 : Update test status file. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+212 lines, -87 lines) Patch
M frog/leg/compiler.dart View 1 2 3 4 5 6 1 chunk +5 lines, -0 lines 0 comments Download
M frog/leg/elements/elements.dart View 1 2 3 4 5 6 2 chunks +12 lines, -0 lines 0 comments Download
M frog/leg/namer.dart View 1 chunk +5 lines, -0 lines 0 comments Download
M frog/leg/resolver.dart View 1 2 3 4 5 6 1 chunk +9 lines, -1 line 0 comments Download
M frog/leg/ssa/builder.dart View 1 2 3 4 5 6 1 chunk +132 lines, -83 lines 0 comments Download
M frog/leg/typechecker.dart View 1 2 3 4 5 6 1 chunk +6 lines, -1 line 0 comments Download
A frog/tests/leg/src/ClosureCodegenTest.dart View 1 2 1 chunk +41 lines, -0 lines 0 comments Download
M tests/language/language-leg.status View 1 2 3 4 5 6 2 chunks +2 lines, -2 lines 0 comments Download

Messages

Total messages: 8 (0 generated)
floitsch
8 years, 11 months ago (2012-01-04 17:05:05 UTC) #1
kasperl
DBC: http://codereview.chromium.org/9086010/diff/4002/frog/leg/leg.dart File frog/leg/leg.dart (right): http://codereview.chromium.org/9086010/diff/4002/frog/leg/leg.dart#newcode28 frog/leg/leg.dart:28: void unreachable([msg = "UNREACHABLE"]) { msg -> message ...
8 years, 11 months ago (2012-01-05 07:01:52 UTC) #2
floitsch
PTAL. http://codereview.chromium.org/9086010/diff/4002/frog/leg/leg.dart File frog/leg/leg.dart (right): http://codereview.chromium.org/9086010/diff/4002/frog/leg/leg.dart#newcode28 frog/leg/leg.dart:28: void unreachable([msg = "UNREACHABLE"]) { On 2012/01/05 07:01:52, ...
8 years, 11 months ago (2012-01-05 12:18:38 UTC) #3
floitsch
PTAL.
8 years, 11 months ago (2012-01-05 12:18:38 UTC) #4
kasperl
http://codereview.chromium.org/9086010/diff/10001/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): http://codereview.chromium.org/9086010/diff/10001/frog/leg/elements/elements.dart#newcode367 frog/leg/elements/elements.dart:367: if (element.kind === ElementKind.VARIABLE || Should we have element.isVariable() ...
8 years, 11 months ago (2012-01-05 12:52:19 UTC) #5
floitsch
http://codereview.chromium.org/9086010/diff/10001/frog/leg/elements/elements.dart File frog/leg/elements/elements.dart (right): http://codereview.chromium.org/9086010/diff/10001/frog/leg/elements/elements.dart#newcode367 frog/leg/elements/elements.dart:367: if (element.kind === ElementKind.VARIABLE || On 2012/01/05 12:52:19, kasperl ...
8 years, 11 months ago (2012-01-05 13:59:19 UTC) #6
ngeoffray
LGTM http://codereview.chromium.org/9086010/diff/4002/frog/leg/leg.dart File frog/leg/leg.dart (right): http://codereview.chromium.org/9086010/diff/4002/frog/leg/leg.dart#newcode28 frog/leg/leg.dart:28: void unreachable([msg = "UNREACHABLE"]) { Since we'll get ...
8 years, 11 months ago (2012-01-05 14:05:46 UTC) #7
floitsch
8 years, 11 months ago (2012-01-24 13:28:37 UTC) #8
apparently forgot to send out my response. (already more than 2 weeks old).

https://chromiumcodereview.appspot.com/9086010/diff/4002/frog/leg/leg.dart
File frog/leg/leg.dart (right):

https://chromiumcodereview.appspot.com/9086010/diff/4002/frog/leg/leg.dart#ne...
frog/leg/leg.dart:28: void unreachable([msg = "UNREACHABLE"]) {
On 2012/01/05 14:05:46, ngeoffray wrote:
> Since we'll get rid of this method, I suggest you don't change it, but instead
> use the compiler error reporting methods. The other uses of unreachable can
stay
> around for now, but we need to change them.

Done.

https://chromiumcodereview.appspot.com/9086010/diff/4002/frog/leg/resolver.dart
File frog/leg/resolver.dart (right):

https://chromiumcodereview.appspot.com/9086010/diff/4002/frog/leg/resolver.da...
frog/leg/resolver.dart:319: // Closure call.
On 2012/01/05 14:05:46, ngeoffray wrote:
> Closure call -> We're calling a closure returned from an expression.

Done.

https://chromiumcodereview.appspot.com/9086010/diff/13001/frog/leg/ssa/builde...
File frog/leg/ssa/builder.dart (right):

https://chromiumcodereview.appspot.com/9086010/diff/13001/frog/leg/ssa/builde...
frog/leg/ssa/builder.dart:894: if (element === null) {
On 2012/01/05 14:05:46, ngeoffray wrote:
> Why not removing that check and just do visit(node.selector); closureTarget =
> pop(); ?
Because the selector doesn't (yet) have any element on it.

https://chromiumcodereview.appspot.com/9086010/diff/13001/frog/leg/ssa/builde...
frog/leg/ssa/builder.dart:942: assert(node.receiver === null);
On 2012/01/05 14:05:46, ngeoffray wrote:
> I would not put that assert here. I you really want it, then I'd put it in
> 'isClosureSend'.

moved to visitClosureSend.

https://chromiumcodereview.appspot.com/9086010/diff/13001/frog/leg/ssa/builde...
frog/leg/ssa/builder.dart:955: } else {
On 2012/01/05 14:05:46, ngeoffray wrote:
> else if (!element.isInstanceMember()) {
>  ...
> } else {
>   compiler.internalError("Cannot generate code for send", node: node);
> }
> }

Done.

https://chromiumcodereview.appspot.com/9086010/diff/13001/frog/leg/typechecke...
File frog/leg/typechecker.dart (right):

https://chromiumcodereview.appspot.com/9086010/diff/13001/frog/leg/typechecke...
frog/leg/typechecker.dart:313: print(node.selector);
On 2012/01/05 14:05:46, ngeoffray wrote:
> Remove debugging code.

Done.

Powered by Google App Engine
This is Rietveld 408576698