# 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 newly instantiated subclasses are handled correctly when there is
  // more than one change

  class A {
    foo() {
      print('Called foo');
    }

    bar() {
      print('Called bar');
    }
  }

  class B extends A {
  }

  main() {
  <<<< "Called foo"
    new A().foo();
  ==== "Called foo"
    new A().foo();
  ==== "Called bar"
    new B().bar();
  >>>>
  }
