# 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 constants of new classes

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

    toString() => 'A($value)';
  }
  <<<< "A(v1)"
  ==== ["A(v2)","B(v2)","B(A(v2))","A(B(v2))"]
  class B {
    final value;
    const B(this.value);

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

  >>>>
  main() {
  <<<<
    print(const A('v1'));

  ====
    print(const A('v2'));
    print(const B('v2'));
    print(const B(const A('v2')));
    print(const A(const B('v2')));
  >>>>
  }
