• Home
  • Raw
  • Download

Lines Matching refs:ir

46 namespace panda::es2panda::ir {
129 ir::MethodDefinitionKind methodKind {};
131 ir::ModifierFlags modifiers {};
146 …explicit ArrowFunctionDescriptor(ArenaVector<ir::Expression *> &&p, binder::FunctionParamScope *ps, in ArrowFunctionDescriptor()
152 ArenaVector<ir::Expression *> params;
204 [[noreturn]] void ThrowParameterModifierError(ir::ModifierFlags status) const;
235 void AddCommonjsParams(ArenaVector<ir::Expression *> &params);
236 void AddReflectApplyArgs(ArenaVector<ir::Expression *> &args, ir::FunctionExpression *wrapper);
238 bool CheckTopStatementsForRequiredDeclare(const ArenaVector<ir::Statement *> &statements);
245 static bool IsPropertyKeysAreSame(const ir::Expression *exp1, const ir::Expression *exp2);
246 …static bool IsMemberExpressionsAreSame(const ir::MemberExpression *mExp1, const ir::MemberExpressi…
247 …static bool IsMethodDefinitionsAreSame(const ir::MethodDefinition *property, ir::MethodDefinition …
248 ir::TSTypeReference *ParseTsConstExpression();
249 ir::Expression *ParseTsTypeOperatorOrTypeReference(bool throwError);
250 ir::Expression *ParseTsIdentifierReference(TypeAnnotationParsingOptions options);
251 ir::Expression *ParseTsBasicType(TypeAnnotationParsingOptions options);
252ir::TSIntersectionType *ParseTsIntersectionType(ir::Expression *type, bool inUnion, bool restrictE…
253 ir::TSUnionType *ParseTsUnionType(ir::Expression *type, bool restrictExtends);
254ir::Expression *ParseTsParenthesizedOrFunctionType(ir::Expression *typeAnnotation, bool throwError…
255 ir::TSArrayType *ParseTsArrayType(ir::Expression *elementType);
257ir::Expression *ParseTsFunctionType(lexer::SourcePosition startLoc, bool isConstructionType, bool …
259 ir::TSTypeParameter *ParseTsMappedTypeParameter();
260 ir::MappedOption ParseMappedOption(lexer::TokenType tokenType);
261 ir::TSMappedType *ParseTsMappedType();
262 ir::TSTypePredicate *ParseTsTypePredicate();
263ir::Expression *ParseTsTypeLiteralOrInterfaceKey(bool *computed, bool *signature, bool *isIndexSig…
264 ir::Expression *ParseTsConditionalType(ir::Expression *checkType, bool restrictExtends);
265 ir::Expression *ParseTsTypeLiteralOrInterfaceMember();
266 ArenaVector<ir::Expression *> ParseTsTypeLiteralOrInterface();
267 ir::Expression *ParseTsThisType(bool throwError);
268 ir::Expression *ParseTsIndexAccessType(ir::Expression *typeName, bool throwError);
269 ir::Expression *ParseTsQualifiedReference(ir::Expression *typeName);
270ir::Expression *ParseTsTypeReferenceOrQuery(TypeAnnotationParsingOptions options, bool parseQuery …
272 void HandleRestType(ir::AstNodeType elementType, bool *hasRestType) const;
273ir::Expression *ParseTsTupleElement(ir::TSTupleKind *kind, bool *seenOptional, bool *hasRestType);
274 ir::TSTupleType *ParseTsTupleType();
275ir::TSImportType *ParseTsImportType(const lexer::SourcePosition &startLoc, bool isTypeof = false);
276 ir::Expression *ParseTsTypeAnnotation(TypeAnnotationParsingOptions *options);
277 ir::Expression *ParseTsTypeLiteralOrTsMappedType(ir::Expression *typeAnnotation);
278ir::Expression *ParseTsTypeReferenceOrTsTypePredicate(ir::Expression *typeAnnotation, bool canBeTs…
280ir::Expression *ParseTsThisTypeOrTsTypePredicate(ir::Expression *typeAnnotation, bool canBeTsTypeP…
282 ir::Expression *ParseTsTemplateLiteralType(bool throwError);
283ir::Expression *ParseTsTypeAnnotationElement(ir::Expression *typeAnnotation, TypeAnnotationParsing…
284 ir::ModifierFlags ParseModifiers();
289 void ValidateClassMethodStart(ClassElmentDescriptor *desc, ir::Expression *typeAnnotation);
290 ir::Expression *ParseClassKey(ClassElmentDescriptor *desc, bool isDeclare);
292 …void ValidateClassSetter(ClassElmentDescriptor *desc, const ArenaVector<ir::Statement *> &properti…
293 ir::Expression *propName, ir::ScriptFunction *func, bool hasDecorator,
295 …void ValidateClassGetter(ClassElmentDescriptor *desc, const ArenaVector<ir::Statement *> &properti…
296 ir::Expression *propName, ir::ScriptFunction *func, bool hasDecorator,
298ir::MethodDefinition *ParseClassMethod(ClassElmentDescriptor *desc, const ArenaVector<ir::Statemen…
299 ir::Expression *propName, lexer::SourcePosition *propEnd,
300 … ArenaVector<ir::Decorator *> &&decorators, bool isDeclare);
301ir::Statement *ParseClassProperty(ClassElmentDescriptor *desc, const ArenaVector<ir::Statement *> …
302 ir::Expression *propName, ir::Expression *typeAnnotation,
303 ArenaVector<ir::Decorator *> &&decorators, bool isDeclare);
307 ir::Expression *ParseClassKeyAnnotation();
308 ir::Decorator *ParseDecorator();
309 ArenaVector<ir::Decorator *> ParseDecorators();
310 ir::Statement *ParseClassElement(const ArenaVector<ir::Statement *> &properties,
311 … ArenaVector<ir::TSIndexSignature *> *indexSignatures, bool hasSuperClass,
313 ir::MethodDefinition *CreateImplicitConstructor(ir::Expression *superClass,
315ir::MethodDefinition *CheckClassMethodOverload(ir::Statement *property, ir::MethodDefinition **cto…
316 … lexer::SourcePosition errorInfo, ir::MethodDefinition *lastOverload,
318 ir::Identifier *SetIdentNodeInClassDefinition(bool isDeclare, binder::ConstDecl **decl);
319ir::ClassDefinition *ParseClassDefinition(bool isDeclaration, bool idRequired = true, bool isDecla…
322 void ValidateClassConstructor(ir::MethodDefinition *ctor,
323 ArenaVector<ir::Statement *> &properties,
324 ir::Expression *superClass,
326 void FindSuperCallInConstructor(const ir::AstNode *parent, bool *hasSuperCall);
327 void FindSuperCallInConstructorChildNode(const ir::AstNode *childNode, bool *hasSuperCall);
328 … bool SuperCallShouldBeFirst(ir::MethodDefinition *ctor, ArenaVector<ir::Statement *> &properties);
331 ir::Property *ParseShorthandProperty(const lexer::LexerPosition *startPos);
333 …bool ParsePropertyModifiers(ExpressionParseFlags flags, ir::PropertyKind *propertyKind, ParserStat…
334 ir::Expression *ParsePropertyKey(ExpressionParseFlags flags);
335ir::Expression *ParsePropertyValue(const ir::PropertyKind *propertyKind, const ParserStatus *metho…
339ir::Expression *ParsePropertyDefinition(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS…
340 ir::TSTypeParameter *ParseTsTypeParameter(bool throwError, bool addBinding = false);
341 ir::TSTypeParameterDeclaration *ParseTsTypeParameterDeclaration(bool throwError = true);
342 ir::TSTypeParameterInstantiation *ParseTsTypeParameterInstantiation(bool throwError = true);
343 ir::ScriptFunction *ParseFunction(ParserStatus newStatus = ParserStatus::NO_OPTS,
345 ArenaVector<ir::ParamDecorators> *paramDecorators = nullptr);
346 …void ValidateFunctionParam(const ArenaVector<ir::Expression *> &params, const ir::Expression *para…
348 void ValidateTsFunctionOverloadParams(const ArenaVector<ir::Expression *> &params);
349 …void CheckAccessorPair(const ArenaVector<ir::Statement *> &properties, const ir::Expression *propN…
350ir::MethodDefinitionKind methodKind, ir::ModifierFlags access, bool hasDecorator,
352 ArenaVector<ir::Expression *> ParseFunctionParams(bool isDeclare = false,
353 … ArenaVector<ir::ParamDecorators> *paramDecorators = nullptr);
354ir::SpreadElement *ParseSpreadElement(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS);
355ir::TSParameterProperty *CreateTsParameterProperty(ir::Expression *parameter, ir::ModifierFlags mo…
356 ir::Expression *ParseFunctionParameter(bool isDeclare);
357 …void CreateTSVariableForProperty(ir::AstNode *node, const ir::Expression *key, binder::VariableFla…
358 …void CheckObjectTypeForDuplicatedProperties(ir::Expression *member, ArenaVector<ir::Expression *> …
362 ir::Expression *ParseExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS);
363 ir::ArrowFunctionExpression *ParseTsGenericArrowFunction();
364ir::TSTypeAssertion *ParseTsTypeAssertion(ExpressionParseFlags flags = ExpressionParseFlags::NO_OP…
365 ir::TSAsExpression *ParseTsAsExpression(ir::Expression *expr, ExpressionParseFlags flags);
366ir::Expression *ParseArrayExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS);
367 ir::YieldExpression *ParseYieldExpression();
368ir::Expression *ParsePotentialExpressionSequence(ir::Expression *expr, ExpressionParseFlags flags);
369 ParserStatus ValidateArrowParameter(ir::Expression *expr);
371 ArrowFunctionDescriptor ConvertToArrowParameter(ir::Expression *expr, bool isAsync,
373ir::ArrowFunctionExpression *ParseArrowFunctionExpressionBody(ArrowFunctionContext *arrowFunctionC…
376ir::TSTypeParameterDeclaration *typeParamDecl,
377ir::Expression *returnTypeAnnotation);
378 ir::ArrowFunctionExpression *ParseArrowFunctionExpression(ir::Expression *expr,
379ir::TSTypeParameterDeclaration *typeParamDecl,
380ir::Expression *returnTypeAnnotation, bool isAsync);
381 ir::Expression *ParseCoverParenthesizedExpressionAndArrowParameterList();
382 ir::Expression *ParseKeywordExpression();
383 ir::Expression *ParseBinaryExpression(ir::Expression *left);
384ir::CallExpression *ParseCallExpression(ir::Expression *callee, bool isOptionalChain = false, bool…
385 ir::ArrowFunctionExpression *ParsePotentialArrowExpression(ir::Expression **returnExpression,
389 void ValidateUpdateExpression(ir::Expression *returnExpression, bool isChainExpression);
390 …bool ParsePotentialTsGenericFunctionCall(ir::Expression **returnExpression, const lexer::SourcePos…
392ir::Expression *ParsePostPrimaryExpression(ir::Expression *primaryExpr, lexer::SourcePosition star…
394 ir::Expression *ParseMemberExpression(bool ignoreCallExpression = false,
396ir::ObjectExpression *ParseObjectExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_…
397ir::SequenceExpression *ParseSequenceExpression(ir::Expression *startExpr, bool acceptRest = false,
399ir::Expression *ParseUnaryOrPrefixUpdateExpression(ExpressionParseFlags flags = ExpressionParseFla…
400ir::Expression *ParseLeftHandSideExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_…
401 ir::MetaProperty *ParsePotentialNewTarget();
402 void CheckInvalidDestructuring(const ir::AstNode *object) const;
403 void ValidateParenthesizedExpression(ir::Expression *lhsExpression);
404 ir::Expression *ParseAssignmentExpression(ir::Expression *lhsExpression,
406ir::Expression *ParsePrimaryExpression(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS);
407 ir::NewExpression *ParseNewExpression();
408 void ParsePotentialTsFunctionParameter(ExpressionParseFlags flags, ir::Expression *returnNode,
410 ir::Expression *ParsePatternElement(ExpressionParseFlags flags = ExpressionParseFlags::NO_OPTS,
412 ir::TemplateLiteral *ParseTemplateLiteral();
413 ir::Expression *ParseImportExpression();
414 ir::FunctionExpression *ParseFunctionExpression(ParserStatus newStatus = ParserStatus::NO_OPTS);
415 ir::Expression *ParseOptionalChain(ir::Expression *leftSideExpr);
416 ir::Expression *ParseOptionalMemberExpression(ir::Expression *object);
417 void ParseNameSpaceImport(ArenaVector<ir::AstNode *> *specifiers, bool isType);
418 ir::Identifier *ParseNamedImport(const lexer::Token &importedToken);
424 ir::StringLiteral *ParseFromClause(bool requireFrom = true);
425 void ParseNamedImportSpecifiers(ArenaVector<ir::AstNode *> *specifiers, bool isType);
426 ir::Expression *ParseModuleReference();
427 ir::AstNode *ParseImportDefaultSpecifier(ArenaVector<ir::AstNode *> *specifiers, bool isType);
428 ir::AstNode *ParseImportSpecifiers(ArenaVector<ir::AstNode *> *specifiers, bool isType);
429 void ValidateAssignmentTarget(ExpressionParseFlags flags, ir::Expression *node);
430 void ValidateLvalueAssignmentTarget(ir::Expression *node) const;
431 void ValidateArrowParameterBindings(const ir::Expression *node);
433ir::ExportDefaultDeclaration *ParseExportDefaultDeclaration(const lexer::SourcePosition &startLoc,
434 … ArenaVector<ir::Decorator *> decorators,
436 ir::ExportAllDeclaration *ParseExportAllDeclaration(const lexer::SourcePosition &startLoc);
437ir::ExportNamedDeclaration *ParseExportNamedSpecifiers(const lexer::SourcePosition &startLoc, bool…
438 ir::ExportNamedDeclaration *ParseNamedExportDeclaration(const lexer::SourcePosition &startLoc,
439 … ArenaVector<ir::Decorator *> &&decorators);
440 ir::Identifier *ParseNamedExport(const lexer::Token &exportedToken);
445 void ConsumeSemicolon(ir::Statement *statement);
448 void CheckLabelledFunction(const ir::Statement *node);
453 …void AddImportEntryItem(const ir::StringLiteral *source, const ArenaVector<ir::AstNode *> *specifi…
454 void AddExportNamedEntryItem(const ArenaVector<ir::ExportSpecifier *> &specifiers,
455 const ir::StringLiteral *source, bool isType);
456 …void AddExportStarEntryItem(const lexer::SourcePosition &startLoc, const ir::StringLiteral *source,
457 const ir::Identifier *exported);
458 void AddExportDefaultEntryItem(const ir::AstNode *declNode);
459 void AddExportLocalEntryItem(const ir::Statement *declNode, bool isTsModule);
460 void AddTsTypeExportLocalEntryItem(const ir::Statement *declNode, bool isTsModule,
465 bool ParseDirective(ArenaVector<ir::Statement *> *statements);
466 void ParseDirectivePrologue(ArenaVector<ir::Statement *> *statements);
467 …ArenaVector<ir::Statement *> ParseStatementList(StatementParsingFlags flags = StatementParsingFlag…
469 ir::Statement *ParseStatement(StatementParsingFlags flags = StatementParsingFlags::NONE);
470 ir::TSModuleDeclaration *ParseTsModuleDeclaration(bool isDeclare, bool isExport = false);
471ir::TSModuleDeclaration *ParseTsAmbientExternalModuleDeclaration(const lexer::SourcePosition &star…
473ir::TSModuleDeclaration *ParseTsModuleOrNamespaceDelaration(const lexer::SourcePosition &startLoc,
477ir::TSImportEqualsDeclaration *ParseTsImportEqualsDeclaration(const lexer::SourcePosition &startLo…
479ir::TSNamespaceExportDeclaration *ParseTsNamespaceExportDeclaration(const lexer::SourcePosition &s…
480 ir::TSModuleBlock *ParseTsModuleBlock();
481 ir::BlockStatement *ParseFunctionBody();
482 ir::BlockStatement *ParseBlockStatement();
483 ir::BlockStatement *ParseBlockStatement(binder::Scope *scope);
484 ir::EmptyStatement *ParseEmptyStatement();
485 ir::DebuggerStatement *ParseDebuggerStatement();
486 ir::BreakStatement *ParseBreakStatement();
487 ir::ContinueStatement *ParseContinueStatement();
488 ir::DoWhileStatement *ParseDoWhileStatement();
489 ir::Statement *ParsePotentialExpressionStatement(StatementParsingFlags flags, bool isDeclare);
490 ir::Statement *ParseVarStatement(bool isDeclare);
491 ir::Statement *ParseLetStatement(StatementParsingFlags flags, bool isDeclare);
492 ir::Statement *ParseConstStatement(StatementParsingFlags flags, bool isDeclare);
493ir::Statement *ParseExpressionStatement(StatementParsingFlags flags = StatementParsingFlags::NONE);
494 ir::Statement *ParseFunctionStatement(StatementParsingFlags flags, bool isDeclare);
495 ir::FunctionDeclaration *ParseFunctionDeclaration(bool canBeAnonymous = false,
498 void AddFunctionToBinder(ir::ScriptFunction *func, ParserStatus newStatus);
499 void CheckOptionalBindingPatternParameter(ir::ScriptFunction *func) const;
500ir::Statement *ParseExportDeclaration(StatementParsingFlags flags, ArenaVector<ir::Decorator *> &&…
501 std::tuple<ForStatementKind, ir::AstNode *, ir::Expression *, ir::Expression *> ParseForInOf(
502 ir::Expression *leftNode, ExpressionParseFlags exprFlags, bool isAwait);
503 …std::tuple<ForStatementKind, ir::Expression *, ir::Expression *> ParseForInOf(ir::AstNode *initNod…
506 std::tuple<ir::Expression *, ir::Expression *> ParseForUpdate(bool isAwait);
507 ir::Statement *ParseForStatement();
508 ir::IfStatement *ParseIfStatement();
510 ir::Statement *ParseImportDeclaration(StatementParsingFlags flags);
511 ir::LabelledStatement *ParseLabelledStatement(const lexer::LexerPosition &pos);
512 ir::ReturnStatement *ParseReturnStatement();
513 ir::ClassDeclaration *ParseClassStatement(StatementParsingFlags flags, bool isDeclare,
514 … ArenaVector<ir::Decorator *> &&decorators, bool isAbstract = false);
515ir::ClassDeclaration *ParseClassDeclaration(bool idRequired, ArenaVector<ir::Decorator *> &&decora…
518 ir::TSTypeAliasDeclaration *ParseTsTypeAliasDeclaration(bool isDeclare);
519ir::TSEnumDeclaration *ParseEnumMembers(ir::Identifier *key, const lexer::SourcePosition &enumStar…
521ir::TSEnumDeclaration *ParseEnumDeclaration(bool isExport = false, bool isDeclare = false, bool is…
522 ir::TSInterfaceDeclaration *ParseTsInterfaceDeclaration(bool isDeclare);
523 ir::SwitchCaseStatement *ParseSwitchCaseStatement(bool *seenDefault);
524 ir::SwitchStatement *ParseSwitchStatement();
525 ir::ThrowStatement *ParseThrowStatement();
526 ir::Expression *ParseCatchParam();
527 ir::CatchClause *ParseCatchClause();
528 ir::TryStatement *ParseTryStatement();
530ir::VariableDeclarator *ParseVariableDeclaratorInitializer(ir::Expression *init, VariableParsingFl…
532 ir::VariableDeclarator *ParseVariableDeclarator(VariableParsingFlags flags, bool isDeclare);
533ir::Statement *ParseVariableDeclaration(VariableParsingFlags flags = VariableParsingFlags::NO_OPTS,
535 ir::WhileStatement *ParseWhileStatement();
536 ir::VariableDeclaration *ParseContextualLet(VariableParsingFlags flags,
700 flags_ |= ir::ScriptFunctionFlags::GENERATOR; in FunctionContext()
704 flags_ |= ir::ScriptFunctionFlags::ASYNC; in FunctionContext()
708 flags_ |= ir::ScriptFunctionFlags::CONSTRUCTOR; in FunctionContext()
712 ir::ScriptFunctionFlags Flags() const in Flags()
717 void AddFlag(ir::ScriptFunctionFlags flags) in AddFlag()
727 ir::ScriptFunctionFlags flags_ {ir::ScriptFunctionFlags::NONE};
736 AddFlag(ir::ScriptFunctionFlags::ASYNC); in ArrowFunctionContext()
739 AddFlag(ir::ScriptFunctionFlags::ARROW); in ArrowFunctionContext()