|  | // 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. | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  |  | 
|  | class M {} | 
|  |  | 
|  | class P0 { | 
|  | foo() { | 
|  | super.toString(); //   //# 01: compile-time error | 
|  | super.foo(); //        //# 02: compile-time error | 
|  | super.bar = 100; //    //# 03: compile-time error | 
|  |  | 
|  | void inner() { | 
|  | super.toString(); // //# 04: compile-time error | 
|  | super.foo(); //      //# 05: compile-time error | 
|  | super.bar = 100; //  //# 06: compile-time error | 
|  | } | 
|  | inner(); | 
|  |  | 
|  | (() { | 
|  | super.toString(); // //# 07: compile-time error | 
|  | super.foo(); //      //# 08: compile-time error | 
|  | super.bar = 100; //  //# 09: compile-time error | 
|  | })(); | 
|  |  | 
|  | return 42; | 
|  | } | 
|  | } | 
|  |  | 
|  | class P1 { | 
|  | bar() { | 
|  | super.toString(); //   //# 10: compile-time error | 
|  | return 87; | 
|  | } | 
|  |  | 
|  | // The test method is strategically placed here to try to force the | 
|  | // P1 class and its bar method to be resolved before resolving the | 
|  | // mixin applications. | 
|  | test() { | 
|  | new C(); | 
|  | var d = new D(); | 
|  | var e = new E(); | 
|  | var f = new F(); | 
|  | Expect.equals(42, d.foo()); | 
|  | Expect.equals(87, e.bar()); | 
|  | Expect.equals(99, f.baz()); | 
|  | } | 
|  | } | 
|  |  | 
|  | class P2 { | 
|  | baz() { | 
|  | super.toString(); //  //# 11: compile-time error | 
|  | return 99; | 
|  | } | 
|  | } | 
|  |  | 
|  | class C = Object with M; | 
|  | class D = Object with P0; | 
|  | class E = Object with M, P1; | 
|  | class F = Object with P2, M; | 
|  |  | 
|  | main() { | 
|  | var p1 = new P1(); | 
|  | var p2 = new P2(); | 
|  | Expect.equals(87, p1.bar()); | 
|  | p1.test(); | 
|  | Expect.equals(99, p2.baz()); | 
|  | } |