-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Type checking is broken #6
Comments
This comment was originally written by zundel@google.com Just to be more clear, test.py —checked should turn on the type checks. Support was only added a few days ago. A fresh build and Ben got them to work in as much as they are supported. Added Invalid label. |
This comment was originally written by zundel@google.com Added Accepted label. |
This comment was originally written by zundel@google.com bool foo(bool bar()) => bar(); bool baz() => true; main() { When run with --enable_type_checks, this should produce no errors, but instead I get: $ dart --enable_type_checks /tmp/foo3.dart V8 execution returned non-zero exit-code: 1 Set owner to jat@google.com. |
This comment was originally written by mmendez@google.com Set owner to fab...@google.com. |
This comment was originally written by jat@google.com I have a fix I will be landing today that addresses this. |
This comment was originally written by mmendez@google.com Sorry, jat. I assumed that a patch was not forth coming. Assigned back to you. Set owner to jat@google.com. |
This comment was originally written by mmendez@google.com JAT, I believe that your commit, http://code.google.com/p/dart/source/detail?r=975 fixed this issue. Please reopen if that is not the case. Added Fixed label. |
See: b/374689139. https://dart-review.googlesource.com/c/sdk/+/390941 is blocking an SDK roll. Root cause: ``` Action threw an exception: type 'ConstructorMember' is not a subtype of type 'ConstructorFragment' in type cast #0 InterfaceTypeImpl.constructors2.<anonymous closure> (package:analyzer/src/dart/element/type.dart:569) #1 MappedListIterable.elementAt (dart:_internal/iterable.dart:435) #2 ListIterator.moveNext (dart:_internal/iterable.dart:364) #3 new _GrowableList._ofEfficientLengthIterable (dart:core-patch/growable_array.dart:189) #4 new _GrowableList.of (dart:core-patch/growable_array.dart:150) #5 new List.of (dart:core-patch/array_patch.dart:39) #6 ListIterable.toList (dart:_internal/iterable.dart:224) #7 InterfaceTypeImpl.constructors2 (package:analyzer/src/dart/element/type.dart:570) #8 _Visitor._hasConstConstructorInvocation (package:linter/src/rules/prefer_const_constructors_in_immutables.dart:110) #9 _Visitor.visitConstructorDeclaration (package:linter/src/rules/prefer_const_constructors_in_immutables.dart:58) ``` To verify the fix locally: ``` solo_test_X() async { await assertNoErrorsInCode(r''' class A<T> {} '''); var A = findElement.class_('A').instantiate( typeArguments: [intType], nullabilitySuffix: NullabilitySuffix.none, ); A.constructors2; } ``` Bug: b/374689139 Change-Id: I70034d938d840dc0c3939db27e7116164e4617e9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/391483 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Phil Quitslund <pquitslund@google.com>
This issue was originally filed by benl@google.com
Use dartc_test to run:
bool foo(bool bar()) => bar();
bool bar() {}
main() {
foo(bar);
}
with --enable_type_checks.
An error is thrown because the type of bar is not bool.
The text was updated successfully, but these errors were encountered: