| // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| // Dart test checking that static/instance field shadowing do not conflict. |
| |
| // @dart = 2.9 |
| |
| // Test that certain interfaces/classes are denylisted from being |
| // implemented or extended. |
| |
| // bool. |
| class MyBool implements bool {} // //# 01: compile-time error |
| abstract class MyBoolInterface implements bool default F { // //# 02: syntax error |
| MyBoolInterface(); // //# 02: continued |
| } // //# 02: continued |
| |
| // num. |
| class MyNum implements num {} // //# 03: compile-time error |
| abstract class MyNumInterface implements num default F { // //# 04: syntax error |
| MyNumInterface(); // //# 04: continued |
| } // //# 04: continued |
| |
| // int. |
| class MyInt implements int {} // //# 05: compile-time error |
| abstract class MyIntInterface implements int default F { // //# 06: syntax error |
| MyIntInterface(); // //# 06: continued |
| } // //# 06: continued |
| |
| // double. |
| class MyDouble implements double {} // //# 07: compile-time error |
| abstract class MyDoubleInterface implements double default F { // //# 08: syntax error |
| MyDoubleInterface(); // //# 08: continued |
| } // //# 08: continued |
| |
| // String. |
| class MyString implements String {} // //# 09: compile-time error |
| abstract class MyStringInterface implements String default F { // //# 10: syntax error |
| MyStringInterface(); // //# 10: continued |
| } // //# 10: continued |
| |
| // Function. |
| class MyFunction implements Function {} |
| |
| class MyOtherFunction extends Function {} |
| abstract class MyFunctionInterface implements Function default F { // //# 12: syntax error |
| MyFunctionInterface(); // //# 12: continued |
| } // //# 12: continued |
| |
| // dynamic. |
| class MyDynamic implements dynamic {} // //# 13: compile-time error |
| abstract class MyDynamicInterface implements dynamic default F { // //# 14: syntax error |
| MyDynamicInterface(); // //# 14: continued |
| } // //# 14: continued |
| |
| class F { |
| factory MyBoolInterface() { return null; } // //# 02: continued |
| factory MyNumInterface() { return null; } // //# 04: continued |
| factory MyIntInterface() { return null; } // //# 06: continued |
| factory MyDoubleInterface() { return null; } // //# 08: continued |
| factory MyStringInterface() { return null; } // //# 10: continued |
| factory MyFunctionInterface() { return null; } // //# 12: continued |
| factory MyDynamicInterface() { return null; } // //# 14: continued |
| } |
| |
| main() { |
| new MyBool(); // //# 01: continued |
| new MyBoolInterface(); // //# 02: continued |
| new MyNum(); // //# 03: continued |
| new MyNumInterface(); // //# 04: continued |
| new MyInt(); // //# 05: continued |
| new MyIntInterface(); // //# 06: continued |
| new MyDouble(); // //# 07: continued |
| new MyDoubleInterface(); // //# 08: continued |
| new MyString(); // //# 09: continued |
| new MyStringInterface(); // //# 10: continued |
| new MyFunction(); |
| new MyOtherFunction(); |
| new MyFunctionInterface(); //# 12: continued |
| new MyDynamic(); // //# 13: continued |
| new MyDynamicInterface(); // //# 14: continued |
| } |