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

Issue 1927103002: Add checks for type bounds on generic methods (Closed)

Created:
4 years, 7 months ago by Brian Wilkerson
Modified:
4 years, 7 months ago
CC:
reviews_dartlang.org
Base URL:
https://github.com/dart-lang/sdk.git@master
Target Ref:
refs/heads/master
Visibility:
Public.

Description

Patch Set 1 #

Total comments: 14
Unified diffs Side-by-side diffs Delta from patch set Stats (+266 lines, -2 lines) Patch
M pkg/analyzer/lib/src/generated/error_verifier.dart View 4 chunks +80 lines, -2 lines 8 comments Download
M pkg/analyzer/test/generated/static_type_warning_code_test.dart View 1 chunk +58 lines, -0 lines 2 comments Download
M pkg/analyzer/test/src/dart/element/element_test.dart View 2 chunks +128 lines, -0 lines 4 comments Download

Messages

Total messages: 8 (2 generated)
Brian Wilkerson
This doesn't cover all of the cases that need to be checked (tear-offs come to ...
4 years, 7 months ago (2016-04-28 15:01:33 UTC) #2
Brian Wilkerson
ping
4 years, 7 months ago (2016-04-28 17:08:51 UTC) #3
scheglov
LGTM https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/generated/error_verifier.dart File pkg/analyzer/lib/src/generated/error_verifier.dart (right): https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/generated/error_verifier.dart#newcode5715 pkg/analyzer/lib/src/generated/error_verifier.dart:5715: .toList()); It looks that this expression can be ...
4 years, 7 months ago (2016-04-28 17:14:53 UTC) #4
Jennifer Messerly
Nice! a few thoughts https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/generated/error_verifier.dart File pkg/analyzer/lib/src/generated/error_verifier.dart (right): https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/generated/error_verifier.dart#newcode5660 pkg/analyzer/lib/src/generated/error_verifier.dart:5660: void _checkTypeArguments(Element element, TypeArgumentList typeArguments, ...
4 years, 7 months ago (2016-04-28 17:30:02 UTC) #5
Brian Wilkerson
Committed patchset #1 (id:1) manually as 1601b9b26417b66c09ed41e90456bc5cea5ee168 (presubmit successful).
4 years, 7 months ago (2016-04-28 19:46:09 UTC) #7
Brian Wilkerson
4 years, 7 months ago (2016-04-28 20:46:12 UTC) #8
Message was sent while issue was closed.
https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/genera...
File pkg/analyzer/lib/src/generated/error_verifier.dart (right):

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/genera...
pkg/analyzer/lib/src/generated/error_verifier.dart:5660: void
_checkTypeArguments(Element element, TypeArgumentList typeArguments,
> FunctionExpressionInvocation and MethodInvocation both implement
> InvocationExpression ...

Yes, but I was hoping to use the same method for tear-offs, which don't
implement InvocationExpression.

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/genera...
pkg/analyzer/lib/src/generated/error_verifier.dart:5672: if (element is
FunctionTypedElement) {
Not sure. I'll look into that as part of the next CL.

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/genera...
pkg/analyzer/lib/src/generated/error_verifier.dart:5675: } else if (element is
ClassElement) {
Sorry, you're seeing an incomplete thought.

It isn't possible yet, but I want to convert
_checkForTypeArgumentNotMatchingBounds to share this code, at which point it
will be possible.

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/lib/src/genera...
pkg/analyzer/lib/src/generated/error_verifier.dart:5715: .toList());
Done

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/test/generated...
File pkg/analyzer/test/generated/static_type_warning_code_test.dart (right):

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/test/generated...
pkg/analyzer/test/generated/static_type_warning_code_test.dart:1300:
Point/*<T>*/ f/*<T extends num>*/(num/*=T*/ x, num/*=T*/ y) {
I just copied the test without thinking about it too hard. Unless you object,
though, I'm going to just leave it as is.

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/test/src/dart/...
File pkg/analyzer/test/src/dart/element/element_test.dart (right):

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/test/src/dart/...
pkg/analyzer/test/src/dart/element/element_test.dart:2103:
function.typeParameters = ElementFactory.typeParameters(['T']);
Done

https://codereview.chromium.org/1927103002/diff/1/pkg/analyzer/test/src/dart/...
pkg/analyzer/test/src/dart/element/element_test.dart:2182: method.type = new
FunctionTypeImpl(method);
Oversight. Done.

Powered by Google App Engine
This is Rietveld 408576698