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

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

Issue 10905109: Add named constructor name checking (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
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 // VMOptions=--constructor_name_check
ahe 2012/09/06 08:54:26 Please don't add VM specific options to shared lan
Ivan Posva 2012/09/06 09:12:50 Would you rather have us break all of the users by
ahe 2012/09/06 09:32:59 That's a strange trade-off. You can have a VM-spec
Ivan Posva 2012/09/06 10:39:01 I think it makes perfect sense to have the tests t
hausner 2012/09/06 16:18:38 Yes, this flag goes away as soon as we enable the
5 5
6 class A { 6 class A {
7 // Constructor may not be static. 7 // Constructor may not be static.
8 static A(); /// 00: compile-time error 8 static A(); /// 00: compile-time error
9 9
10 // Factory may not be static. 10 // Factory may not be static.
11 static factory A() { return null; } /// 01: compile-time error 11 static factory A() { return null; } /// 01: compile-time error
12 12
13 // Constructor may not be abstract. 13 // Constructor may not be abstract.
14 abstract A(); /// 02: compile-time error 14 abstract A(); /// 02: compile-time error
15 15
16 // Factory may not be abstract 16 // Factory may not be abstract
17 abstract factory A() { return null; } /// 03: compile-time error 17 abstract factory A() { return null; } /// 03: compile-time error
18
19 // Named constructor may not conflict with names of methods and fields.
20 var m;
21 A.m() { m = 0; } /// 04: compile-time error
22
23 set q(var value) { m = q; }
24 A.q(); /// 05: compile-time error
25
26 int foo(int a, int b) => a + b * m;
27 A.foo() : m = 0; /// 06: compile-time error
siva 2012/09/06 16:52:10 We should add a test where the named constructor a
hausner 2012/09/06 18:02:13 Done.
18 } 28 }
19 29
20 main() { 30 main() {
21 new A(); 31 new A();
22 } 32 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698