dart-lang/sdk

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


Added Accepted 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.