// Copyright (c) 2013, 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.mixin; import 'dart:mirrors'; import 'package:expect/expect.dart'; class Super {} class Mixin {} class Mixin2 {} class Mixin3 {} class MixinApplication = Super with Mixin; class Class extends Super with Mixin {} class MultipleMixins extends Super with Mixin, Mixin2, Mixin3 {} main() { Expect.equals(reflectClass(Mixin), reflectClass(MixinApplication).mixin); Expect.equals( reflectClass(Super), reflectClass(MixinApplication).superclass!.mixin); Expect.equals(reflectClass(Class), reflectClass(Class).mixin); Expect.equals(reflectClass(Mixin), reflectClass(Class).superclass!.mixin); Expect.equals( reflectClass(Super), reflectClass(Class).superclass!.superclass!.mixin); Expect.equals( reflectClass(MultipleMixins), reflectClass(MultipleMixins).mixin); Expect.equals( reflectClass(Mixin3), reflectClass(MultipleMixins).superclass!.mixin); Expect.equals(reflectClass(Mixin2), reflectClass(MultipleMixins).superclass!.superclass!.mixin); Expect.equals(reflectClass(Mixin), reflectClass(MultipleMixins).superclass!.superclass!.superclass!.mixin); Expect.equals( reflectClass(Super), reflectClass(MultipleMixins) .superclass! .superclass! .superclass! .superclass! .mixin); }