visitFunctionTypeExpr method

  1. @override
String visitFunctionTypeExpr(
  1. FuncTypeExpr expr
)
override

Implementation

@override
String visitFunctionTypeExpr(FuncTypeExpr expr) {
  final output = StringBuffer();
  output.write('${_lexicon.kFun} ${_lexicon.groupExprStart}');
  output.write(expr.paramTypes
      .map((param) => visitParamTypeExpr(param))
      .join('${_lexicon.comma} '));
  if (expr.hasOptionalParam) {
    output.write(_lexicon.optionalPositionalParameterEnd);
  } else if (expr.hasNamedParam) {
    output.write(_lexicon.codeBlockEnd);
  }
  output.write(
      '${_lexicon.groupExprEnd} ${_lexicon.functionReturnTypeIndicator} ');
  final returnTypeString = formatAST(expr.returnType);
  output.write(returnTypeString);
  return output.toString();
}