# Copyright (c) 2017, 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.md file.

main.dart.patch: |
  // Test compound constants

  class A {
    final value;
    const A(this.value);

    toString() => 'A($value)';
  }

  class B {
    final value;
    const B(this.value);

    toString() => 'B($value)';
  }

  main() {
  <<<< ["A(v1)","B(v1)"]
    print(const A('v1'));
    print(const B('v1'));
  ==== ["B(A(v2))","A(B(v2))"]
    print(const B(const A('v2')));
    print(const A(const B('v2')));
  >>>>
  }
