blob: c7f8bf26770e2b61e6def92b0946ea58d3ea1cd1 [file] [log] [blame]
// Copyright (c) 2015, 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 K implements L {
final field1;
final field2;
const K({this.field1: 42, this.field2: true});
class L {
const factory L() = K;
const factory L.named1({field1, field2}) = K;
const factory L.named2({field2, field1}) = K;
const K l1 = const L() as K;
const K l2a = const L.named1() as K;
const K l2b = const L.named1(field1: 87) as K;
const K l2c = const L.named1(field2: false) as K;
const K l2d = const L.named1(field1: 87, field2: false) as K;
const K l2e = const L.named1(field2: false, field1: 87) as K;
const K l3a = const L.named2() as K;
const K l3b = const L.named2(field1: 87) as K;
const K l3c = const L.named2(field2: false) as K;
const K l3d = const L.named2(field1: 87, field2: false) as K;
const K l3e = const L.named2(field2: false, field1: 87) as K;
main() {
Expect.equals(42, l1.field1);
Expect.equals(true, l1.field2);
Expect.equals(42, l2a.field1);
Expect.equals(true, l2a.field2);
Expect.equals(87, l2b.field1);
Expect.equals(true, l2b.field2);
Expect.equals(42, l2c.field1);
Expect.equals(false, l2c.field2);
Expect.equals(87, l2d.field1);
Expect.equals(false, l2d.field2);
Expect.equals(87, l2e.field1);
Expect.equals(false, l2e.field2);
Expect.equals(42, l3a.field1);
Expect.equals(true, l3a.field2);
Expect.equals(87, l3b.field1);
Expect.equals(true, l3b.field2);
Expect.equals(42, l3c.field1);
Expect.equals(false, l3c.field2);
Expect.equals(87, l3d.field1);
Expect.equals(false, l3d.field2);
Expect.equals(87, l3e.field1);
Expect.equals(false, l3e.field2);