# 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 a method with optional arguments can change.
  <<<< ["1:3","1:2"]
  foo(x, [y = 3]) {
    print("$x:$y");
  }

  void main() {
    foo(1);
    foo(1, 2);
  }
  ==== ["3","2"]
  foo([x = 3]) {
    print(x);
  }

  void main() {
    var f = foo;
    f();
    f(2);
  }
  >>>>
