-
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
dartc has broken type checking in some cases #925
Labels
closed-not-planned
Closed as we don't intend to take action on the reported issue
Comments
We are removing code generation from DartC. Added WontFix label. |
copybara-service bot
pushed a commit
that referenced
this issue
May 10, 2023
…ed_data, webdev, yaml Revisions updated by `dart tools/rev_sdk_deps.dart`. csslib (https://github.com/dart-lang/csslib/compare/923edf0..c4e904c): c4e904c 2023-05-10 Devon Carew rev for publishing (#179) c9e47d0 2023-05-10 Kevin Moore Require Dart 2.19, latest lints, skin hanging test (#175) 3976e6f 2023-05-10 Devon Carew address an issue parsing font names (#168) a337a9a 2023-05-10 Devon Carew fixed CssPrinter pretty print indent levels (#169) ffi (https://github.com/dart-lang/ffi/compare/1a859e0..7f4acbd): 7f4acbd 2023-05-09 Devon Carew Rev pubspec and update changelog (#194) http (https://github.com/dart-lang/http/compare/406ce74..db84d12): db84d12 2023-05-10 Brian Quinlan Require the release version of Dart 3.0.0 (#925) leak_tracker (https://github.com/dart-lang/leak_tracker/compare/fc14e36..46a1fa0): 46a1fa0 2023-05-09 Polina Cherkasova Make sure leak tracker does not fail in case of duplicates. (#60) mime (https://github.com/dart-lang/mime/compare/cd8001e..57fbf6e): 57fbf6e 2023-05-09 Dimitar Petrov Add m4b mime type (#92) protobuf (https://github.com/dart-lang/protobuf/compare/9d7cf0d..05058a7): 05058a7 2023-05-10 Ömer Sinan Ağacan Apply internally enabled lints (#816) test (https://github.com/dart-lang/test/compare/1d65501..0b306dd): 0b306dd5 2023-05-09 Nate Bosch Document behavior of explicit file path args (#2011) typed_data (https://github.com/dart-lang/typed_data/compare/021f25a..921f5c0): 921f5c0 2023-05-09 Devon Carew add topics to the pubspec file (#65) webdev (https://github.com/dart-lang/webdev/compare/fe5b975..469b105): 469b1058 2023-05-10 Elliott Brooks Update DCM workflow (#2106) yaml (https://github.com/dart-lang/yaml/compare/1f39ffe..af3d8cd): af3d8cd 2023-05-10 Nate Bosch Uncomment some tests (#145) Change-Id: I97a7b284e01c4fde10b8cfc814d95ecc9686ddff Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/302448 Auto-Submit: Devon Carew <devoncarew@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
This issue was closed.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This issue was originally filed by zundel@google.com
In checked mode (dartc --enable_type_checks), there is a bug in runtime type checking in some cases. Here's a test that exercises it
TypeChecksInFactoryMethods.dart
interface Foo<T> default Bar {
Foo.from();
}
class Bar<T> implements Foo<T> {
Bar() {}
factory Bar.from() {
var func = (T arg) { print(arg); }; // If T is not a string, runtime checks should fail
func("Hello World!");
return new Bar<T>();
}
}
main() {
Foo value;
value = new Foo<String>.from();
bool gotError = false;
try {
value = new Foo<int>.from();
} catch (TypeError e) {
gotError = true;
}
Expect.equals(true, gotError);
}
Basically, getting type arguments into the hoisted methods from a factory method hasn't been worked out. Factory methods get their type arguments passed in as the first parameter, for other methods, the arguments are passed on a property of 'this' but in these hoisted methods from a factory, 'this' is set to Dart$Null.
The text was updated successfully, but these errors were encountered: