Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: tests/language/method_override2_test.dart

Issue 18600007: Relax method override restrictions. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Test and status updates. Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/language/language_dart2js.status ('k') | tests/language/method_override3_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 // Checks that an overriding method has compatible parameters. 5 // Checks that an overriding method has compatible parameters.
6 6
7 abstract class I { 7 abstract class I {
8 m({a, b}); 8 m(x, {a, b});
ahe 2013/07/11 10:26:01 I don't think this change is correct. If the spec
floitsch 2013/07/11 11:18:47 Yes. I didn't have access to the latest spec and d
9 } 9 }
10 10
11 abstract class J extends I { } 11 abstract class J extends I { }
12 12
13 abstract class K extends J { 13 abstract class K extends J {
14 m({c, d}); /// 00: compile-time error 14 m({c, d}); /// 00: compile-time error
ahe 2013/07/11 10:26:01 For example, this should say "static type warning"
15 } 15 }
16 16
17 class C implements I { 17 class C implements I {
18 m({a, b}) { 18 m(x, {a, b}) {
19 print("$a $b"); 19 print("$x $a $b");
20 } 20 }
21 } 21 }
22 22
23 class D 23 class D
24 extends C /// 01: compile-time error 24 extends C /// 01: compile-time error
ahe 2013/07/11 10:26:01 Ditto for these three lines.
25 implements I /// 02: compile-time error 25 implements I /// 02: compile-time error
26 implements J /// 03: compile-time error 26 implements J /// 03: compile-time error
27 { 27 {
28 m({c, d}) { 28 m({c, d}) {
29 print("$c $d"); 29 print("$c $d");
30 } 30 }
31 } 31 }
32 32
33 33
34 int main() { 34 int main() {
35 var c = new C(); 35 var c = new C();
36 c.m(a: "hello", b: "world"); 36 c.m(1, a: "hello", b: "world");
37 var d = new D(); 37 var d = new D();
38 d.m(c: "hello", d: "world"); 38 d.m(c: "hello", d: "world");
39 print("${c is I} ${d is I} ${d is I} ${d is J}"); 39 print("${c is I} ${d is I} ${d is I} ${d is J}");
40 } 40 }
41 41
OLDNEW
« no previous file with comments | « tests/language/language_dart2js.status ('k') | tests/language/method_override3_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698