Chromium Code Reviews| Index: tests/lib/mirrors/abstract_class_test.dart |
| diff --git a/tests/lib/mirrors/abstract_class_test.dart b/tests/lib/mirrors/abstract_class_test.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c5fcfcce41e937a8a28dd745dcda9cb20308193a |
| --- /dev/null |
| +++ b/tests/lib/mirrors/abstract_class_test.dart |
| @@ -0,0 +1,49 @@ |
| +// Copyright (c) 2014, 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. |
| + |
| +library test.abstract_class_test; |
| + |
| +import 'dart:mirrors'; |
| +import 'package:expect/expect.dart'; |
| + |
| +abstract class Foo { |
| + foo(); |
| +} |
| +class Bar extends Foo { |
| + foo() {} |
| +} |
| + |
| +abstract class FunctionFoo implements Function { |
| + call(); |
| +} |
| +class FunctionBar extends FunctionFoo { |
| + call() {} |
| +} |
| + |
| +abstract class GenericFoo<T> { |
| + T genericFoo(); |
| +} |
| +class GenericBar<T> extends GenericFoo<T> { |
| + T genericFoo() {} |
| +} |
| + |
| +void main() { |
| + // FunctionTypeMirror |
| + baz() {} |
| + Expect.isFalse(reflect(baz).type.isAbstract); |
| + |
| + return; /// 01: ok |
| + |
| + // Unbound ClassMirror |
| + Expect.isTrue(reflectClass(Foo).isAbstract); |
| + Expect.isFalse(reflectClass(Bar).isAbstract); |
| + Expect.isTrue(reflectClass(FunctionFoo).isAbstract); |
| + Expect.isFalse(reflectClass(FunctionBar).isAbstract); |
| + Expect.isTrue(reflect(new FunctionBar()).type.superclass.isAbstract); |
| + Expect.isFalse(reflect(new FunctionBar()).type.isAbstract); |
|
gbracha
2014/01/08 21:33:24
Why is there no analog for this with Bar? viz.
Ex
rmacnak
2014/01/08 21:53:56
Added. The important thing is really to test with
|
| + |
| + // Bound ClassMirror |
| + Expect.isTrue(reflect(new GenericBar<int>()).type.superclass.isAbstract); |
| + Expect.isFalse(reflect(new GenericBar<int>()).type.isAbstract); |
| +} |