defaultNamedFormalParameter method
Implementation
Parser<ParameterNode> defaultNamedFormalParameter() =>
seq4(
ref0(metadataList),
ref0(requiredToken).optional(),
ref0(normalFormalParameter),
([ref1(token, '='), ref1(token, ':')].toChoiceParser() &
ref0(expression))
.map((l) => l[1] as ExpressionNode)
.optional(),
).map4((meta, req, param, defaultVal) {
final allMeta = [...meta, ...param.metadata];
if (param is SimpleParameterNode) {
return SimpleParameterNode(
name: param.name,
type: param.type,
defaultValue: defaultVal ?? param.defaultValue,
metadata: allMeta,
isNamed: true,
isRequired: req != null,
isFinal: param.isFinal,
isVar: param.isVar,
isThis: param.isThis,
isSuper: param.isSuper,
);
}
if (param is FunctionTypedParameterNode) {
return FunctionTypedParameterNode(
name: param.name,
type: param.type,
parameters: param.parameters,
defaultValue: defaultVal ?? param.defaultValue,
metadata: allMeta,
isNamed: true,
isRequired: req != null,
);
}
return param;
});