Qt 6.x
The Qt SDK
Loading...
Searching...
No Matches
QQmlJS::AST::PatternElement Class Reference

#include <qqmljsast_p.h>

+ Inheritance diagram for QQmlJS::AST::PatternElement:
+ Collaboration diagram for QQmlJS::AST::PatternElement:

Public Types

enum  Type {
  Literal , Method , Getter , Setter ,
  SpreadElement , RestElement = SpreadElement , Binding
}
 
- Public Types inherited from QQmlJS::AST::Node
enum  Kind {
  Kind_Undefined , Kind_ArgumentList , Kind_ArrayPattern , Kind_ArrayMemberExpression ,
  Kind_BinaryExpression , Kind_Block , Kind_BreakStatement , Kind_CallExpression ,
  Kind_CaseBlock , Kind_CaseClause , Kind_CaseClauses , Kind_Catch ,
  Kind_ConditionalExpression , Kind_ContinueStatement , Kind_DebuggerStatement , Kind_DefaultClause ,
  Kind_DeleteExpression , Kind_DoWhileStatement , Kind_ElementList , Kind_Elision ,
  Kind_EmptyStatement , Kind_Expression , Kind_ExpressionStatement , Kind_FalseLiteral ,
  Kind_SuperLiteral , Kind_FieldMemberExpression , Kind_Finally , Kind_ForEachStatement ,
  Kind_ForStatement , Kind_FormalParameterList , Kind_FunctionBody , Kind_FunctionDeclaration ,
  Kind_FunctionExpression , Kind_ClassExpression , Kind_ClassDeclaration , Kind_IdentifierExpression ,
  Kind_IdentifierPropertyName , Kind_ComputedPropertyName , Kind_IfStatement , Kind_LabelledStatement ,
  Kind_NameSpaceImport , Kind_ImportSpecifier , Kind_ImportsList , Kind_NamedImports ,
  Kind_ImportClause , Kind_FromClause , Kind_ImportDeclaration , Kind_Module ,
  Kind_ExportSpecifier , Kind_ExportsList , Kind_ExportClause , Kind_ExportDeclaration ,
  Kind_NewExpression , Kind_NewMemberExpression , Kind_NotExpression , Kind_NullExpression ,
  Kind_YieldExpression , Kind_NumericLiteral , Kind_NumericLiteralPropertyName , Kind_ObjectPattern ,
  Kind_PostDecrementExpression , Kind_PostIncrementExpression , Kind_PreDecrementExpression , Kind_PreIncrementExpression ,
  Kind_Program , Kind_PropertyDefinitionList , Kind_PropertyGetterSetter , Kind_PropertyName ,
  Kind_PropertyNameAndValue , Kind_RegExpLiteral , Kind_ReturnStatement , Kind_StatementList ,
  Kind_StringLiteral , Kind_StringLiteralPropertyName , Kind_SwitchStatement , Kind_TemplateLiteral ,
  Kind_TaggedTemplate , Kind_TypeExpression , Kind_ThisExpression , Kind_ThrowStatement ,
  Kind_TildeExpression , Kind_TrueLiteral , Kind_TryStatement , Kind_TypeOfExpression ,
  Kind_UnaryMinusExpression , Kind_UnaryPlusExpression , Kind_VariableDeclaration , Kind_VariableDeclarationList ,
  Kind_VariableStatement , Kind_VoidExpression , Kind_WhileStatement , Kind_WithStatement ,
  Kind_NestedExpression , Kind_ClassElementList , Kind_PatternElement , Kind_PatternElementList ,
  Kind_PatternProperty , Kind_PatternPropertyList , Kind_Type , Kind_TypeArgument ,
  Kind_TypeAnnotation , Kind_UiArrayBinding , Kind_UiImport , Kind_UiObjectBinding ,
  Kind_UiObjectDefinition , Kind_UiInlineComponent , Kind_UiObjectInitializer , Kind_UiObjectMemberList ,
  Kind_UiArrayMemberList , Kind_UiPragmaValueList , Kind_UiPragma , Kind_UiProgram ,
  Kind_UiParameterList , Kind_UiPropertyAttributes , Kind_UiPublicMember , Kind_UiQualifiedId ,
  Kind_UiScriptBinding , Kind_UiSourceElement , Kind_UiHeaderItemList , Kind_UiEnumDeclaration ,
  Kind_UiEnumMemberList , Kind_UiVersionSpecifier , Kind_UiRequired , Kind_UiAnnotation ,
  Kind_UiAnnotationList
}
 

Public Member Functions

 PatternElement (ExpressionNode *i=nullptr, Type t=Literal)
 
 PatternElement (QStringView n, TypeAnnotation *typeAnnotation=nullptr, ExpressionNode *i=nullptr, Type t=Binding)
 
 PatternElement (Pattern *pattern, ExpressionNode *i=nullptr, Type t=Binding)
 
void accept0 (BaseVisitor *visitor) override
 
virtual bool convertLiteralToAssignmentPattern (MemoryPool *pool, SourceLocation *errorLocation, QString *errorMessage)
 
SourceLocation firstSourceLocation () const override
 
SourceLocation lastSourceLocation () const override
 
ExpressionNodedestructuringTarget () const
 
PatterndestructuringPattern () const
 
PatternElementListelementList () const
 
PatternPropertyListpropertyList () const
 
bool isVariableDeclaration () const
 
bool isLexicallyScoped () const
 
virtual void boundNames (BoundNames *names)
 
- Public Member Functions inherited from QQmlJS::AST::Node
 Node ()
 
virtual ~Node ()
 
virtual ExpressionNodeexpressionCast ()
 
virtual BinaryExpressionbinaryExpressionCast ()
 
virtual StatementstatementCast ()
 
virtual UiObjectMemberuiObjectMemberCast ()
 
virtual LeftHandSideExpressionleftHandSideExpressionCast ()
 
virtual PatternpatternCast ()
 
virtual FunctionExpressionasFunctionDefinition ()
 
virtual ClassExpressionasClassDefinition ()
 
bool ignoreRecursionDepth () const
 
void accept (BaseVisitor *visitor)
 
virtual void accept0 (BaseVisitor *visitor)=0
 
virtual SourceLocation firstSourceLocation () const =0
 
virtual SourceLocation lastSourceLocation () const =0
 
- Public Member Functions inherited from QQmlJS::Managed
 Managed ()=default
 
 ~Managed ()=default
 
voidoperator new (size_t size, MemoryPool *pool)
 
void operator delete (void *)
 
void operator delete (void *, MemoryPool *)
 

Public Attributes

SourceLocation identifierToken
 
QStringView bindingIdentifier
 
ExpressionNodebindingTarget = nullptr
 
ExpressionNodeinitializer = nullptr
 
Type type = Literal
 
TypeAnnotationtypeAnnotation = nullptr
 
VariableScope scope = VariableScope::NoScope
 
bool isForDeclaration = false
 
bool isInjectedSignalParameter = false
 
- Public Attributes inherited from QQmlJS::AST::Node
int kind = Kind_Undefined
 

Additional Inherited Members

- Static Public Member Functions inherited from QQmlJS::AST::Node
static void accept (Node *node, BaseVisitor *visitor)
 

Detailed Description

Definition at line 875 of file qqmljsast_p.h.

Member Enumeration Documentation

◆ Type

Enumerator
Literal 
Method 
Getter 
Setter 
SpreadElement 
RestElement 
Binding 

Definition at line 880 of file qqmljsast_p.h.

Constructor & Destructor Documentation

◆ PatternElement() [1/3]

QQmlJS::AST::PatternElement::PatternElement ( ExpressionNode i = nullptr,
Type  t = Literal 
)
inline

Definition at line 895 of file qqmljsast_p.h.

◆ PatternElement() [2/3]

QQmlJS::AST::PatternElement::PatternElement ( QStringView  n,
TypeAnnotation typeAnnotation = nullptr,
ExpressionNode i = nullptr,
Type  t = Binding 
)
inline

Definition at line 899 of file qqmljsast_p.h.

References Q_ASSERT.

◆ PatternElement() [3/3]

QQmlJS::AST::PatternElement::PatternElement ( Pattern pattern,
ExpressionNode i = nullptr,
Type  t = Binding 
)
inline

Definition at line 907 of file qqmljsast_p.h.

References Q_ASSERT.

Member Function Documentation

◆ accept0()

void QQmlJS::AST::PatternElement::accept0 ( BaseVisitor visitor)
overridevirtual

Implements QQmlJS::AST::Node.

Reimplemented in QQmlJS::AST::PatternProperty.

Definition at line 1404 of file qqmljsast.cpp.

References QQmlJS::AST::Node::accept(), bindingTarget, initializer, and typeAnnotation.

+ Here is the call graph for this function:

◆ boundNames()

void QQmlJS::AST::PatternElement::boundNames ( BoundNames names)
virtual

Reimplemented in QQmlJS::AST::PatternProperty.

Definition at line 1415 of file qqmljsast.cpp.

References bindingIdentifier, bindingTarget, QQmlJS::AST::BoundName::Declared, e, elementList(), firstSourceLocation(), QQmlJS::AST::BoundName::Injected, isInjectedSignalParameter, propertyList(), QStringView::toString(), and typeAnnotation.

Referenced by QQmlJS::AST::PatternProperty::boundNames(), QQmlJSImportVisitor::visit(), and QV4::Compiler::ScanFunctions::visit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ convertLiteralToAssignmentPattern()

bool QQmlJS::AST::PatternElement::convertLiteralToAssignmentPattern ( MemoryPool pool,
SourceLocation errorLocation,
QString errorMessage 
)
virtual

Reimplemented in QQmlJS::AST::PatternProperty.

Definition at line 410 of file qqmljsast.cpp.

References QSOperator::Assign, Binding, bindingIdentifier, bindingTarget, errorMessage(), QString::fromLatin1(), i, identifierToken, init(), initializer, QStringView::isNull(), QQmlJS::AST::LeftHandSideExpression::leftHandSideExpressionCast(), Literal, QQmlJS::AST::Node::patternCast(), pool, Q_ASSERT, and SpreadElement.

Referenced by QQmlJS::AST::PatternProperty::convertLiteralToAssignmentPattern().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ destructuringPattern()

Pattern * QQmlJS::AST::PatternElement::destructuringPattern ( ) const
inline

Definition at line 924 of file qqmljsast_p.h.

References QQmlJS::AST::Pattern::patternCast().

Referenced by QV4::Compiler::ScanFunctions::visit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ destructuringTarget()

ExpressionNode * QQmlJS::AST::PatternElement::destructuringTarget ( ) const
inline

Definition at line 923 of file qqmljsast_p.h.

◆ elementList()

PatternElementList * QQmlJS::AST::PatternElement::elementList ( ) const
inline

Definition at line 925 of file qqmljsast_p.h.

Referenced by boundNames().

+ Here is the caller graph for this function:

◆ firstSourceLocation()

SourceLocation QQmlJS::AST::PatternElement::firstSourceLocation ( ) const
inlineoverridevirtual

Implements QQmlJS::AST::Node.

Reimplemented in QQmlJS::AST::PatternProperty.

Definition at line 917 of file qqmljsast_p.h.

References QQmlJS::SourceLocation::isValid().

Referenced by boundNames(), QQmlJS::AST::FormalParameterList::firstSourceLocation(), and QV4::Compiler::ScanFunctions::visit().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ isLexicallyScoped()

bool QQmlJS::AST::PatternElement::isLexicallyScoped ( ) const
inline

Definition at line 929 of file qqmljsast_p.h.

Referenced by QV4::Compiler::Codegen::variableDeclaration().

+ Here is the caller graph for this function:

◆ isVariableDeclaration()

bool QQmlJS::AST::PatternElement::isVariableDeclaration ( ) const
inline

Definition at line 928 of file qqmljsast_p.h.

Referenced by QQmlJS::Dom::Rewriter::visit(), QQmlJSImportVisitor::visit(), and QV4::Compiler::ScanFunctions::visit().

+ Here is the caller graph for this function:

◆ lastSourceLocation()

SourceLocation QQmlJS::AST::PatternElement::lastSourceLocation ( ) const
inlineoverridevirtual

Implements QQmlJS::AST::Node.

Reimplemented in QQmlJS::AST::PatternProperty.

Definition at line 920 of file qqmljsast_p.h.

Referenced by QV4::Compiler::ScanFunctions::visit().

+ Here is the caller graph for this function:

◆ propertyList()

PatternPropertyList * QQmlJS::AST::PatternElement::propertyList ( ) const
inline

Definition at line 926 of file qqmljsast_p.h.

References o.

Referenced by boundNames().

+ Here is the caller graph for this function:

Member Data Documentation

◆ bindingIdentifier

◆ bindingTarget

◆ identifierToken

◆ initializer

◆ isForDeclaration

bool QQmlJS::AST::PatternElement::isForDeclaration = false

◆ isInjectedSignalParameter

bool QQmlJS::AST::PatternElement::isInjectedSignalParameter = false

Definition at line 943 of file qqmljsast_p.h.

Referenced by boundNames().

◆ scope

◆ type

Type QQmlJS::AST::PatternElement::type = Literal

Definition at line 938 of file qqmljsast_p.h.

Referenced by QQmlJS::Dom::Rewriter::visit(), and QQmlJS::Dom::Rewriter::visit().

◆ typeAnnotation


The documentation for this class was generated from the following files: