# 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 deleting an instance method with optional parameters works

  class C {
  <<<< ["instance is null","v1","v1"]
    m([a = "a"]) {
      print('v1');
    }
  ==== ["threw","threw"]
  >>>>
  }
  var instance;
  main() {
    if (instance == null) {
      print('instance is null');
      instance = new C();
    }
    try {
      instance.m();
    } catch (e) {
      print('threw');
    }
      try {
      instance.m("b");
    } catch (e) {
      print('threw');
    }
  }
