# 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 modifying an instance method works

  class C {
    m() {
  <<<< ["instance is null","v1"]
    print('v1');
  ==== ["v2"]
    print('v2');
  >>>>
    }
  }
  var instance;
  main() {
    if (instance == null) {
      print('instance is null');
      instance = new C();
    }
    instance.m();
  }
