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

Issue 1311863005: Infer parameter types on overrides (Closed)

Created:
5 years, 4 months ago by vsm
Modified:
5 years, 4 months ago
Reviewers:
Leaf, Brian Wilkerson
CC:
dev-compiler+reviews_dartlang.org
Base URL:
https://github.com/dart-lang/dev_compiler.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Infer parameter types on overrides Fixes #105 This overlaps with brian's recent CL moving override inference logic. If this looks good, we'll need to move it over as well. R=brianwilkerson@google.com, leafp@google.com Committed: https://github.com/dart-lang/dev_compiler/commit/64039c3de2a5a332700cb2fcc6dd61dd7bc4dd86

Patch Set 1 #

Total comments: 6

Patch Set 2 : Address comments #

Total comments: 3

Patch Set 3 : Infer on untyped default optional params as well #

Unified diffs Side-by-side diffs Delta from patch set Stats (+49 lines, -29 lines) Patch
M lib/runtime/dart/js.js View 2 chunks +6 lines, -6 lines 0 comments Download
M lib/src/checker/resolver.dart View 1 2 2 chunks +30 lines, -10 lines 0 comments Download
M test/checker/checker_test.dart View 4 chunks +5 lines, -5 lines 0 comments Download
M tool/sdk_expected_errors.txt View 1 chunk +8 lines, -8 lines 0 comments Download

Messages

Total messages: 11 (1 generated)
vsm
5 years, 4 months ago (2015-08-25 00:19:07 UTC) #2
Brian Wilkerson
I only understood the code in resolver.dart, but it LGTM. https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart File lib/src/checker/resolver.dart (right): https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart#newcode251 ...
5 years, 4 months ago (2015-08-25 14:06:29 UTC) #3
vsm
https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart File lib/src/checker/resolver.dart (right): https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart#newcode251 lib/src/checker/resolver.dart:251: // Infer parameter types if omitted On 2015/08/25 14:06:29, ...
5 years, 4 months ago (2015-08-25 15:43:47 UTC) #4
Brian Wilkerson
https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart File lib/src/checker/resolver.dart (right): https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart#newcode251 lib/src/checker/resolver.dart:251: // Infer parameter types if omitted > Perhaps we ...
5 years, 4 months ago (2015-08-25 15:54:51 UTC) #5
vsm
On 2015/08/25 15:54:51, Brian Wilkerson wrote: > https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart > File lib/src/checker/resolver.dart (right): > > https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart#newcode251 ...
5 years, 4 months ago (2015-08-25 16:47:28 UTC) #6
Brian Wilkerson
> By "good", do you mean something besides the spec one? :-) Yes. > There ...
5 years, 4 months ago (2015-08-25 17:02:10 UTC) #7
Leaf
lgtm. https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart File lib/src/checker/resolver.dart (right): https://codereview.chromium.org/1311863005/diff/1/lib/src/checker/resolver.dart#newcode251 lib/src/checker/resolver.dart:251: // Infer parameter types if omitted On 2015/08/25 ...
5 years, 4 months ago (2015-08-25 17:03:50 UTC) #8
vsm
https://codereview.chromium.org/1311863005/diff/20001/lib/src/checker/resolver.dart File lib/src/checker/resolver.dart (right): https://codereview.chromium.org/1311863005/diff/20001/lib/src/checker/resolver.dart#newcode257 lib/src/checker/resolver.dart:257: if (parameter is SimpleFormalParameter && parameter.type == null) { ...
5 years, 4 months ago (2015-08-25 17:44:55 UTC) #9
vsm
Committed patchset #3 (id:40001) manually as 64039c3de2a5a332700cb2fcc6dd61dd7bc4dd86 (presubmit successful).
5 years, 4 months ago (2015-08-25 17:45:24 UTC) #10
Leaf
5 years, 4 months ago (2015-08-25 19:21:44 UTC) #11
Message was sent while issue was closed.
https://codereview.chromium.org/1311863005/diff/20001/lib/src/checker/resolve...
File lib/src/checker/resolver.dart (right):

https://codereview.chromium.org/1311863005/diff/20001/lib/src/checker/resolve...
lib/src/checker/resolver.dart:257: if (parameter is SimpleFormalParameter &&
parameter.type == null) {
On 2015/08/25 17:44:55, vsm wrote:
> On 2015/08/25 17:03:50, Leaf wrote:
> > Maybe a TODO to handle default parameters and function typed parameters?
> 
> Added line to handle default params.  We would not infer if function typed
(the
> override would have an explicit function type), so I think that's properly
> handled anyway.

It's a corner case, but you could argue that something like the following is the
equivalent for a function typed formal:

class A {
  int f(int g(int x)) {...}
}

class B extends A {
  int f(g(x)) {...}
}

Maybe not worth worrying about though.  And I guess you could argue that if they
really want inference they should write it as:

class B extends A {
  int f(g) {...}
}

Powered by Google App Engine
This is Rietveld 408576698