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

Issue 9283014: Implement field parameter for generative constructors. (Closed)

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

Description

Implement field parameter for generative constructors. Committed: https://code.google.com/p/dart/source/detail?r=3543

Patch Set 1 : '' #

Patch Set 2 : '' #

Total comments: 2

Patch Set 3 : '' #

Total comments: 6
Unified diffs Side-by-side diffs Delta from patch set Stats (+55 lines, -29 lines) Patch
M frog/leg/lib/core.dart View 1 2 2 chunks +2 lines, -3 lines 0 comments Download
M frog/leg/resolver.dart View 1 2 2 chunks +35 lines, -3 lines 4 comments Download
M frog/leg/ssa/builder.dart View 1 2 3 chunks +10 lines, -17 lines 0 comments Download
M frog/leg/warnings.dart View 1 2 1 chunk +7 lines, -1 line 2 comments Download
M tests/language/language-leg.status View 1 2 3 chunks +1 line, -5 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
ngeoffray
8 years, 11 months ago (2012-01-24 10:25:33 UTC) #1
karlklose
LGTM. https://chromiumcodereview.appspot.com/9283014/diff/4001/frog/leg/resolver.dart File frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9283014/diff/4001/frog/leg/resolver.dart#newcode881 frog/leg/resolver.dart:881: } else if (node.receiver.asIdentifier() === null || Check ...
8 years, 11 months ago (2012-01-24 10:47:39 UTC) #2
ngeoffray
Thanks Karl! https://chromiumcodereview.appspot.com/9283014/diff/4001/frog/leg/resolver.dart File frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9283014/diff/4001/frog/leg/resolver.dart#newcode881 frog/leg/resolver.dart:881: } else if (node.receiver.asIdentifier() === null || ...
8 years, 11 months ago (2012-01-24 12:45:40 UTC) #3
ahe
LGTM! https://chromiumcodereview.appspot.com/9283014/diff/2002/frog/leg/resolver.dart File frog/leg/resolver.dart (right): https://chromiumcodereview.appspot.com/9283014/diff/2002/frog/leg/resolver.dart#newcode641 frog/leg/resolver.dart:641: node, 'named constructors with type parameters are not ...
8 years, 11 months ago (2012-01-24 14:28:44 UTC) #4
ngeoffray
8 years, 11 months ago (2012-01-24 14:57:04 UTC) #5
Thanks for the review Peter. Follow-up CL:
https://chromiumcodereview.appspot.com/9146036

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

https://chromiumcodereview.appspot.com/9283014/diff/2002/frog/leg/resolver.da...
frog/leg/resolver.dart:641: node, 'named constructors with type parameters are
not implemented');
On 2012/01/24 14:28:44, ahe wrote:
> parameters -> arguments.

Done.

https://chromiumcodereview.appspot.com/9283014/diff/2002/frog/leg/resolver.da...
frog/leg/resolver.dart:894: resolver.defineElement(node, field);
On 2012/01/24 14:28:44, ahe wrote:
> I think we should define the element regardlessly.

Defining it.

> 
> Also, don't you need to check that the enclosing element of the field is the
> current class?

No, I'm doing a lookup in the current class, and it only looks at its members.

https://chromiumcodereview.appspot.com/9283014/diff/2002/frog/leg/warnings.dart
File frog/leg/warnings.dart (right):

https://chromiumcodereview.appspot.com/9283014/diff/2002/frog/leg/warnings.da...
frog/leg/warnings.dart:82: "A field parameter must be preceded by 'this'");
On 2012/01/24 14:28:44, ahe wrote:
> This error message may be confusing. Just because the parser thinks this may
be
> a field parameter, the user could be intending something else.
> 
> For example:
> 
> class Foo {
>   m(lib.MyClass) { } // Whoops: forgot a parameter name.
> }

Done.

Powered by Google App Engine
This is Rietveld 408576698