// Copyright (c) 2013, 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 file. // Regression test for dart2js's type inferrer, that used to not // correctly infer optional named parameters. import "package:expect/expect.dart"; @pragma('vm:never-inline') @pragma('dart2js:noInline') foo({path}) { () => 42; return path.toString(); } @pragma('vm:never-inline') @pragma('dart2js:noInline') bar({path}) { () => 42; return path; } main() { var a = [foo(path: '42'), foo(), 42, bar(path: '54')]; Expect.isTrue(a[1] is String); Expect.throwsNoSuchMethodError(() => bar().concat('54')); }