blob: d5b94bccdde8208d8022ae2f4d730183fd7270ae [file] [log] [blame]
// Copyright (c) 2020, 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 "const_constructor_coverage_lib2.dart";
class Foo {
final Bar bar;
const /*x*/ Foo() : bar = const Bar();
const /*x*/ Foo.named1() : bar = const Bar.named1();
const /*x*/ Foo.named2() : bar = const Bar.named1();
const /*x*/ Foo.named3() : bar = const Bar.named1();
}
class Bar {
final Baz baz;
const /*x*/ Bar() : baz = const Baz();
const /*x*/ Bar.named1() : baz = const Baz.named1();
const /*x*/ Bar.named2() : baz = const Baz.named1();
const /*x*/ Bar.named3() : baz = const Baz.named1();
const Bar.named4(int i)
: baz = i > 0 ? const Baz.named5() : const Baz.named6();
}
const Foo foo = const Foo.named3();
// This file in itself should mark the following as const-constructor-covered:
// * "Bar", "Bar.named1", "Baz", "Baz.named1", "Baz.named5" and "Baz.named6"
// from evaluating field initializers (done unconditionally).
// * "Foo.named3" from constant-evaluating the const field.