mirror of
https://github.com/dart-lang/sdk
synced 2024-09-18 21:41:19 +00:00
447ddebd68
This CL also lifts the restriction that classes could not extends or implement 'Function'. BUG=https://code.google.com/p/dart/issues/detail?id=10849 BUG=https://code.google.com/p/dart/issues/detail?id=12411 TEST=tests/language/bound_closure_equality_test.dart, tests/language/black_listed_test.dart R=iposva@google.com Review URL: https://codereview.chromium.org//22425006 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@26114 260f80e4-7a28-3924-810f-c04153c831b5
81 lines
3.8 KiB
Dart
81 lines
3.8 KiB
Dart
// 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.
|
|
|
|
// Test that certain interfaces/classes are blacklisted from being
|
|
// implemented or extended.
|
|
|
|
// bool.
|
|
class MyBool implements bool {} /// 01: compile-time error
|
|
abstract class MyBoolInterface implements bool default F { /// 02: compile-time error
|
|
MyBoolInterface(); /// 02: continued
|
|
} /// 02: continued
|
|
|
|
// num.
|
|
class MyNum implements num {} /// 03: compile-time error
|
|
abstract class MyNumInterface implements num default F { /// 04: compile-time error
|
|
MyNumInterface(); /// 04: continued
|
|
} /// 04: continued
|
|
|
|
// int.
|
|
class MyInt implements int {} /// 05: compile-time error
|
|
abstract class MyIntInterface implements int default F { /// 06: compile-time error
|
|
MyIntInterface(); /// 06: continued
|
|
} /// 06: continued
|
|
|
|
// double.
|
|
class MyDouble implements double {} /// 07: compile-time error
|
|
abstract class MyDoubleInterface implements double default F { /// 08: compile-time error
|
|
MyDoubleInterface(); /// 08: continued
|
|
} /// 08: continued
|
|
|
|
// String.
|
|
class MyString implements String {} /// 09: compile-time error
|
|
abstract class MyStringInterface implements String default F { /// 10: compile-time error
|
|
MyStringInterface(); /// 10: continued
|
|
} /// 10: continued
|
|
|
|
// Function.
|
|
class MyFunction implements Function {}
|
|
class MyOtherFunction extends Function {}
|
|
abstract class MyFunctionInterface implements Function default F { /// 12: compile-time error
|
|
MyFunctionInterface(); /// 12: continued
|
|
} /// 12: continued
|
|
|
|
// dynamic.
|
|
class MyDynamic implements dynamic {} /// 13: compile-time error
|
|
abstract class MyDynamicInterface implements dynamic default F { /// 14: compile-time 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
|
|
}
|