-
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
Superinterfaces' members with the same name should produce a static warning #3306
Comments
Added Area-Analyzer, Triaged labels. |
Added this to the M1 milestone. |
The listed tests are currently passing and there are no tests marked as failing because of this issue. Added AssumedStale label. |
This comment was originally written by alexe.kaigorodov@gmail.com following tests do not produce any errors both under dart vm and dart analyzer: /Language/08_Interfaces/5_Superinterfaces/1_Inheritance_and_Overriding_A02_t01.dart |
This comment was originally written by rodion...@unipro.ru clarification: they're expected to produce static type warnings |
Revisions updated by `dart tools/rev_sdk_deps.dart`. args (https://github.com/dart-lang/args/compare/04c9346..a23ea85): a23ea85 2023-01-25 Devon Carew update the publishing script (#232) dartdoc (https://github.com/dart-lang/dartdoc/compare/ed56883..99df16a): 99df16a0 2023-01-24 Parker Lougheed Use a sun for light theme toggle instead of moon (#3309) 758e1851 2023-01-24 Parker Lougheed Switch dart:js and some dart:js_util usages to use static interop (#3299) 9735d895 2023-01-24 dependabot[bot] Bump github/codeql-action from 2.1.38 to 2.1.39 (#3306) f6cd8eb9 2023-01-23 Sam Rawlins Fix various bits in testing code to comply with new warnings (#3307) http (https://github.com/dart-lang/http/compare/57c53b0..092bb2d): 092bb2d 2023-01-25 Brian Quinlan Create a `package:cronet_http/cronet_http.dart` import (#859) a62f5b3 2023-01-24 Brian Quinlan Create a single top-level lib file. (#858) intl (https://github.com/dart-lang/intl/compare/3fcc810..946c34c): 946c34c 2023-01-25 Copybara-Service Merge pull request #533 from dart-lang:updateVersion 19b6785 2023-01-20 Moritz Append `-dev` to current version sse (https://github.com/dart-lang/sse/compare/be426a2..4e63b08): 4e63b08 2023-01-25 Kevin Moore Fix deprecated import to webdriver library (#76) webdev (https://github.com/dart-lang/webdev/compare/f978b90..a347fa0): a347fa0 2023-01-25 Anna Gringauze Update vm_service to version 10.0.0 (#1917) 4dd29a5 2023-01-24 Anna Gringauze Allow dart SDK <4.0.0 (#1913) b3db2c9 2023-01-24 Anna Gringauze Prepare for dart 3.0 alpha changes: Handle SDK layout update (#1907) Change-Id: I84d827db044f5b0af49b0454fd1d69b0d2ddf692 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279901 Commit-Queue: Konstantin Shcheglov <scheglov@google.com> Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Auto-Submit: Devon Carew <devoncarew@google.com>
This issue was originally filed by ms...@unipro.ru
What steps will reproduce the problem?
Run the following test with dartc:
interface SI1 {
void foo(var v, [int foo, int bar]);
}
interface SI2 {
void foo(var v, [int foo, int b4r]);
}
interface I extends SI1, SI2 {}
main() {
I i = null;
i.foo(null, null, null);
}
What is the expected output? What do you see instead?
According to the section 8.4.1 of the specification: "if there are multiple members m1, …, mk with the same name n that would be inherited (because identically named members existed in several superinterfaces) then at most one member is inherited. If the static types T1, …, Tk of the members m1, …, mk are not identical, then there must be a member mx such that Tx <: Ti, 1 <= x <= k for all i, 1 <= i <= k, or a static type warning occurs."
So, expected result is a static warning, since foo of S1 and foo of S2 have different types and none of them is a subtype of another.
Actual result: dartc does not produce a static warning.
What version of the product are you using? On what operating system?
Dartc, r8088. OS Ubuntu 10.04
Please provide any additional information below.
co19 tests:
Language/08_Interfaces/4_Superinterfaces/1_Inheritance_and_Overriding_A02_t01.dart
Language/08_Interfaces/4_Superinterfaces/1_Inheritance_and_Overriding_A02_t03.dart
Language/08_Interfaces/4_Superinterfaces/1_Inheritance_and_Overriding_A02_t04.dart
Language/08_Interfaces/4_Superinterfaces/1_Inheritance_and_Overriding_A02_t04.dart
The text was updated successfully, but these errors were encountered: