Declaration_parser.Declaration
module Parse: Parser_common.PARSER
module Type: Type_parser.TYPE
let async: Parser_env.env => (bool, list(Flow_ast.Comment.t(Loc.t)));
let generator: Parser_env.env => (bool, list(Flow_ast.Comment.t(Loc.t)));
let variance:
Parser_env.env =>
parse_readonly:bool =>
bool =>
bool =>
option(Flow_ast.Variance.t(Loc.t));
let function_params:
await:bool =>
yield:bool =>
Parser_env.env =>
Js_parser.Comment_attachment.Ast.Function.Params.t(Loc.t, Loc.t);
let function_body:
Parser_env.env =>
async:bool =>
generator:bool =>
expression:bool =>
simple_params:bool =>
(Flow_ast.Function.body(Loc.t, Loc.t), bool);
let check_unique_formal_parameters:
Parser_env.env =>
Js_parser.Comment_attachment.Ast.Function.Params.t(Loc.t, Loc.t) =>
unit;
let check_unique_component_formal_parameters:
Parser_env.env =>
Js_parser.Comment_attachment.Ast.Statement.ComponentDeclaration.Params.t
(Loc.t,
Loc.t) =>
unit;
let strict_function_post_check:
Parser_env.env =>
contains_use_strict:bool =>
option(Flow_ast.Identifier.t(Loc.t, Loc.t)) =>
Js_parser.Comment_attachment.Ast.Function.Params.t(Loc.t, Loc.t) =>
unit;
let strict_component_post_check:
Parser_env.env =>
contains_use_strict:bool =>
Flow_ast.Identifier.t(Loc.t, Loc.t) =>
Js_parser.Comment_attachment.Ast.Statement.ComponentDeclaration.Params.t
(Loc.t,
Loc.t) =>
unit;
let let_:
Parser_env.env =>
(list(Flow_ast.Statement.VariableDeclaration.Declarator.t(Loc.t, Loc.t)),
list(Js_parser.Comment_attachment.Ast.Comment.t(Loc.t)), list((Loc.t,
Parse_error.t)));
let const:
Parser_env.env =>
(list(Flow_ast.Statement.VariableDeclaration.Declarator.t(Loc.t, Loc.t)),
list(Js_parser.Comment_attachment.Ast.Comment.t(Loc.t)), list((Loc.t,
Parse_error.t)));
let var:
Parser_env.env =>
(list(Flow_ast.Statement.VariableDeclaration.Declarator.t(Loc.t, Loc.t)),
list(Js_parser.Comment_attachment.Ast.Comment.t(Loc.t)), list((Loc.t,
Parse_error.t)));
let _function: Parser_env.env => Flow_ast.Statement.t(Loc.t, Loc.t);
let enum_declaration:
?leading:list(Flow_ast.Comment.t(Loc.t)) =>
Parser_env.env =>
Flow_ast.Statement.t(Loc.t, Loc.t);
let component: Parser_env.env => Flow_ast.Statement.t(Loc.t, Loc.t);