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

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

Issue 10910284: Stop making classes implicitly abstract (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 3 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/get_set_syntax_test.dart ('k') | tests/language/interface_negative_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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 interface Interface { 5 interface Interface {
6 final x; 6 final x;
7 } 7 }
8 8
9 // The abstract keyword is implicit if a class declares an abstract
10 // member. This class does not declare any abstract members, so it
11 // must be marked abstract because it doesn't implement the x getter.
12 abstract class Abstract implements Interface { 9 abstract class Abstract implements Interface {
13 String toString() => x.toString(); 10 String toString() => x.toString();
14 } 11 }
15 12
16 // This class does not implement "x" either, but it is not marked 13 // This class does not implement "x" either, but it is not marked
17 // abstract. 14 // abstract.
18 class SubAbstract1 extends Abstract { } /// 01: static type warning 15 class SubAbstract1 extends Abstract { } /// 01: static type warning
19 16
20 // This class is implicitly abstract as it declares an abstract getter 17 // This class is implicitly abstract as it declares an abstract getter
21 // method. 18 // method.
(...skipping 10 matching lines...) Expand all
32 } 29 }
33 30
34 class SubConcrete extends Concrete { 31 class SubConcrete extends Concrete {
35 final x; 32 final x;
36 SubConcrete(this.x); 33 SubConcrete(this.x);
37 } 34 }
38 35
39 void main() { 36 void main() {
40 var x = new Abstract(); /// 02: runtime error 37 var x = new Abstract(); /// 02: runtime error
41 var y = new SubAbstract1(); /// 01: continued 38 var y = new SubAbstract1(); /// 01: continued
42 var z = new SubAbstract2(); /// 03: runtime error 39 var z = new SubAbstract2();
43 var a = new SubSubAbstract2(); /// 04: continued 40 var a = new SubSubAbstract2(); /// 04: continued
44 Expect.equals(x, x); /// 02: continued 41 Expect.equals(x, x); /// 02: continued
45 Expect.equals('7', new Concrete().toString()); 42 Expect.equals('7', new Concrete().toString());
46 Expect.equals('42', new SubConcrete(42).toString()); 43 Expect.equals('42', new SubConcrete(42).toString());
47 Expect.equals('7', new SubConcrete(new Concrete()).toString()); 44 Expect.equals('7', new SubConcrete(new Concrete()).toString());
48 } 45 }
OLDNEW
« no previous file with comments | « tests/language/get_set_syntax_test.dart ('k') | tests/language/interface_negative_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698