# 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 an instance tear-off with named parameters can be called

  class C {
    foo({a, named: 'v1', x}) {
      print(named);
    }
  }

  var closure;

  main() {
    if (closure == null) {
      print('closure is null');
      closure = new C().foo;
    }
  <<<< ["closure is null","v1"]
    closure();
  ==== "v2"
    closure(named: 'v2');
  >>>>
  }
