# 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 the test framework handles more than one update to an instance
  // method.
  class C {
    foo() {
  <<<< ["instance is null", "Hello darkness, my old friend"]
      print("Hello darkness, my old friend");
  ==== "I've come to talk with you again"
      print("I've come to talk with you again");
  ==== "Because a vision softly creeping"
      print("Because a vision softly creeping");
  >>>>
    }
  }

  var instance;

  main() {
    if (instance == null) {
      print("instance is null");
      instance = new C();
    }
    instance.foo();
  }
