-
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
Dart Editor: incomplete error reporting on typedefs mismatch #3316
Comments
Added Area-Editor, Triaged labels. |
Added this to the M1 milestone. |
Is this really issue? Reduced sample: interface I {} Set owner to @gbracha. |
By design, the Dart static checker does not complain about all possible type problems. In particular, it tolerates assignment/parameter passing/return whenever a subtype relation exists in either direction. So, since EventHandler<int> <: Object, no warning is given for someClass.add(new Object()) In contrast, no subtype relation exists between int and EventHandler<int> in either direction. See http://www.dartlang.org/articles/optional-types/ for a discussion and rationale. Added AsDesigned label. |
dartdoc: 494a6bed 2023-02-02 Sam Rawlins Bump markdown dep to a pre-release of 7.0.0 (#3321) ad6f1612 2023-02-02 Devon Carew introduce an environmentProvider abstraction (#3324) d0b73000 2023-02-02 Sam Rawlins Prepare testing code for some upcoming Warnings (#3322) 936a7888 2023-02-01 Sam Rawlins Add text about front-end manual testing (#3286) cbee812d 2023-02-01 Sam Rawlins Avoid renaming generator params (#3316) bcaa0349 2023-02-01 Sam Rawlins Privatize Library.sdkLib and move getClassByName (#3317) af32def5 2023-01-31 dependabot[bot] Bump github/codeql-action from 2.1.39 to 2.2.1 (#3313) 528e97da 2023-01-31 dependabot[bot] Bump actions/cache from 3.2.3 to 3.2.4 (#3312) 54020672 2023-02-01 Parker Lougheed Begin changelog for next release after 6.1.5 (#3315) markdown: f51c24c 2023-02-01 Zhiguang Chen Prepend a line ending if the p tag is removed and there is an element before it in a *tight* list (#513) dd3e3a1 2023-01-31 dependabot[bot] Bump dart-lang/setup-dart from 1.3 to 1.4 (#510) 5f25fc9 2023-01-31 dependabot[bot] Bump actions/checkout from 3.2.0 to 3.3.0 (#511) 54266b2 2023-01-31 Kevin Moore Prepare to release v7.0.0 (#509) d6ceff9 2023-01-31 Zhiguang Chen Add line endings before HTML blocks (#508) ccd3c8b 2023-01-29 Zhiguang Chen Rewrite link reference definitions (#506) e8f84dc 2023-01-24 Kevin Moore Update GFM to 0.29.0.gfm.7 (#507) 93f67b0 2023-01-20 Zhiguang Chen Add an `enableTagfilter` option to `HtmlRenderer` to eanble GFM `tagfilter` extension (#447) d110770 2023-01-13 Zhiguang Chen Rewrite SetextHeaderSyntax (#500) c1b9bc6 2023-01-09 Sam Rawlins Migrate from no-implicit-casts to strict-casts (#504) 3e78c08 2023-01-01 dependabot[bot] Bump actions/checkout from 3.0.2 to 3.2.0 (#501) 417747f 2022-12-15 Zhiguang Chen Refactor list syntax (#499) 30ec05f 2022-11-29 Zhiguang Chen Do not escape single quote(apostrophe) inside code (#498) c3d1136 2022-11-29 Zhiguang Chen introduce a Line class (#494) Change-Id: I9d971b927b72500ab84cce461a60fe1a86818e2e Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281543 Reviewed-by: Samuel Rawlins <[email protected]> Commit-Queue: Devon Carew <[email protected]>
Start with a typedef: typedef EventHandler<T>(Object sender, T args);
Then a method with EventHandler<T> as a param:
class SomeClass<T> {
void add(EventHandler<T> handler){
...
}
}
Then usage:
var someClass = new SomeClass<int>();
Calling add w/ a valid handler makes the editor happy.
Calling add w/ a number
someClass.add(5)
shows an error: 'int is not assignable to EventHandler<int>' as expected.Calling add w/ a random object `someClass.add(new Object()) shows no error in the editor, although it blows up wonderfully at runtime.
Attachment:
[Screen Shot 2012-05-30 at 10.19.11 AM.png](https://storage.googleapis.com/google-code-attachments/dart/issue-3316/comment-0/Screen Shot 2012-05-30 at 10.19.11 AM.png) (22.21 KB)
The text was updated successfully, but these errors were encountered: