Type checking is broken
DartBot opened this issue · 7 comments
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.
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
bool foo(bool bar()) => bar();
bool baz() => true;
main() {
Expect.equals(true, foo(baz));
}
When run with --enable_type_checks, this should produce no errors, but instead I get:
$ dart --enable_type_checks /tmp/foo3.dart
/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:403: [object Object]
throw e;
^
[object Object]
at $Dart$ThrowException (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:401:11)
at $te (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1701:3)
at $chk (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1688:3)
at unnamed7e6fa6$foo$member (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:18591:3)
at unnamed7e6fa6$main$member (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:18616:35)
at /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1079:5
at isolate$Isolate.run (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:869:14)
at isolate$IsolateEvent.process (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:905:16)
at isolate$doOneEventLoopIteration (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1038:11)
at isolate$doRunEventLoop (/tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1054:26)
Execution failed.
Mapped stack trace:
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:401:11 ($Dart$ThrowException)
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1701:3 ($te)
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1688:3 ($chk)
at MAPPED : file:/tmp/foo3.dart/foo3.dart:1:10 (unnamed7e6fa6$foo$member)
at MAPPED : file:/tmp/foo3.dart/foo3.dart:6:22 (unnamed7e6fa6$main$member)
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1079:5
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:869:14 (isolate$Isolate.run)
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:905:16 (isolate$IsolateEvent.process)
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1038:11 (isolate$doOneEventLoopIteration)
at UNMAPPED: /tmp/dart_file:_tmp_foo3.dart3547703831643974851.js:1054:26 (isolate$doRunEventLoop)
V8 execution returned non-zero exit-code: 1
Set owner to jat@google.com.
Removed Priority-High label.
Added Priority-Medium, Area-Compiler labels.
This comment was originally written by mmendez@google.com
Set owner to fab...@google.com.
Added Started label.
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.