|  | // 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 = 2.9 | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  |  | 
|  | class A { | 
|  | final x; | 
|  | final y; | 
|  | final z; | 
|  | final t; | 
|  |  | 
|  | const A([this.z = 99, tt = 100]) | 
|  | : y = 499, | 
|  | t = tt, | 
|  | x = 3; | 
|  | const A.n({this.z: 99, tt: 100}) | 
|  | : y = 499, | 
|  | t = tt, | 
|  | x = 3; | 
|  | const A.named({z, this.t}) | 
|  | : y = 400 + z, | 
|  | this.z = z, | 
|  | x = 3; | 
|  | const A.named2({t, z, y, x}) | 
|  | : x = t, | 
|  | y = z, | 
|  | z = y, | 
|  | t = x; | 
|  |  | 
|  | toString() => "A $x $y $z $t"; | 
|  | } | 
|  |  | 
|  | const a1 = const A(99, 100); | 
|  | const a2 = const A.named(z: 99, t: 100); | 
|  | const a3 = const A.named2(t: 1, z: 2, y: 3, x: 4); | 
|  | const a4 = const A(); | 
|  | const a5 = const A(99, 100); | 
|  | const a5n = const A.n(tt: 100, z: 99); | 
|  | const a6 = const A(1, 2); | 
|  | const a6n = const A.n(z: 1, tt: 2); | 
|  | const a7 = const A.named(z: 7); | 
|  | const a8 = const A.named2(); | 
|  | const a9 = const A.named2(x: 4, y: 3, z: 2, t: 1); | 
|  | const a10 = const A.named2(x: 1, y: 2, z: 3, t: 4); | 
|  |  | 
|  | main() { | 
|  | Expect.equals(3, a1.x); | 
|  | Expect.equals(499, a1.y); | 
|  | Expect.equals(99, a1.z); | 
|  | Expect.equals(100, a1.t); | 
|  | Expect.equals("A 3 499 99 100", a1.toString()); | 
|  | Expect.identical(a1, a2); | 
|  | Expect.identical(a1, a4); | 
|  | Expect.identical(a1, a5); | 
|  |  | 
|  | Expect.equals(1, a3.x); | 
|  | Expect.equals(2, a3.y); | 
|  | Expect.equals(3, a3.z); | 
|  | Expect.equals(4, a3.t); | 
|  | Expect.equals("A 1 2 3 4", a3.toString()); | 
|  |  | 
|  | Expect.equals(3, a6.x); | 
|  | Expect.equals(499, a6.y); | 
|  | Expect.equals(1, a6.z); | 
|  | Expect.equals(2, a6.t); | 
|  | Expect.equals("A 3 499 1 2", a6.toString()); | 
|  |  | 
|  | Expect.equals(3, a7.x); | 
|  | Expect.equals(407, a7.y); | 
|  | Expect.equals(7, a7.z); | 
|  | Expect.equals(null, a7.t); | 
|  | Expect.equals("A 3 407 7 null", a7.toString()); | 
|  |  | 
|  | Expect.equals(null, a8.x); | 
|  | Expect.equals(null, a8.y); | 
|  | Expect.equals(null, a8.y); | 
|  | Expect.equals(null, a8.t); | 
|  | Expect.equals("A null null null null", a8.toString()); | 
|  |  | 
|  | Expect.identical(a3, a9); | 
|  |  | 
|  | Expect.equals(4, a10.x); | 
|  | Expect.equals(3, a10.y); | 
|  | Expect.equals(2, a10.z); | 
|  | Expect.equals(1, a10.t); | 
|  | Expect.equals("A 4 3 2 1", a10.toString()); | 
|  | } |