Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 4f0bcf2

Browse files
committed
more signatures
1 parent 2ad18a1 commit 4f0bcf2

File tree

3 files changed

+10
-2
lines changed

3 files changed

+10
-2
lines changed

lib/src/closure/closure_codegen.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ abstract class ClosureCodegen {
117117
if (type.namedParameterTypes.isNotEmpty) {
118118
var namedArgs = <String, ClosureType>{};
119119
type.namedParameterTypes.forEach((n, t) {
120-
namedArgs[n] = _closureTypeForDartType(t);
120+
namedArgs[n] = _closureTypeForDartType(t).orUndefined();
121121
});
122122
args.add(new ClosureType.record(namedArgs).toOptional());
123123
}

test/codegen/closure.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class Foo {
2222

2323
nullary_method() {}
2424

25+
function_params(int f(x, [y]), g(x, {String y})) {}
26+
2527
String get prop => null;
2628
set prop(String value) {}
2729

test/codegen/expect/closure.js

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,11 @@ dart_library.library('closure', null, /* Imports */[
5656
let c = opts && 'c' in opts ? opts.c : null;
5757
}
5858
nullary_method() {}
59+
/**
60+
* @param {function(*, *=):?number} f
61+
* @param {function(*, {y: (string|undefined)}=):*} g
62+
*/
63+
function_params(f, g) {}
5964
/** @return {string} */
6065
get prop() {
6166
return null;
@@ -75,7 +80,8 @@ dart_library.library('closure', null, /* Imports */[
7580
untyped_method: [dart.dynamic, [dart.dynamic, dart.dynamic]],
7681
typed_method: [core.String, [Foo, core.List, core.int, core.num, core.double, core.bool, core.String, js.JsArray, js.JsObject, js.JsFunction]],
7782
optional_params: [dart.dynamic, [dart.dynamic], [dart.dynamic, dart.dynamic]],
78-
nullary_method: [dart.dynamic, []]
83+
nullary_method: [dart.dynamic, []],
84+
function_params: [dart.dynamic, [dart.functionType(core.int, [dart.dynamic], [dart.dynamic]), dart.functionType(dart.dynamic, [dart.dynamic], {y: core.String})]]
7985
}),
8086
statics: () => ({named_params: [dart.dynamic, [dart.dynamic], {b: dart.dynamic, c: dart.dynamic}]}),
8187
names: ['named_params']

0 commit comments

Comments
 (0)