| // Copyright (c) 2020, 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. |
| |
| // Checks for static errors related to parameters for methods. |
| |
| @JS() |
| library js_parameters_static_test; |
| |
| import 'package:js/js.dart'; |
| import 'package:expect/expect.dart'; |
| |
| @JS() |
| class Foo { |
| external int singleNamedArg({int? a}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| external int mixedNamedArgs(int a, {int? b}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| } |
| |
| @JS() |
| class Bar { |
| external static int singleNamedArg({int? a}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| external static int mixedNamedArgs(int a, {int? b}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| } |
| |
| external int singleNamedArg({int? a}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| external int mixedNamedArgs(int a, {int? b}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| |
| @JS() |
| @anonymous |
| class Baz { |
| external int singleNamedArg({int? a}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| external int mixedNamedArgs(int a, {int? b}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| } |
| |
| @JS() |
| abstract class Qux { |
| external int singleNamedArg({int? a}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| external int mixedNamedArgs(int a, {int? b}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| } |
| |
| extension ExtensionFoo on Foo { |
| external int singleNamedArg({int? a}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| external int mixedNamedArgs(int a, {int? b}); |
| // ^ |
| // [web] Named parameters for JS interop functions are only allowed in a factory constructor of an @anonymous JS class. |
| } |
| |
| main() {} |