# 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 that we can handle a mixin application that doesn't change.
  class A {}
  class C = Object with A;

  main() {
    new C();
  <<<< []
  ==== []
    new C();
  >>>>
  }
