Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
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_InitializerExpression , 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)
 
- 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
 
SourceLocation equalToken
 
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 910 of file qqmljsast_p.h.

Member Enumeration Documentation

◆ Type

Enumerator
Literal 
Method 
Getter 
Setter 
SpreadElement 
RestElement 
Binding 

Definition at line 915 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 946 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 953 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 962 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 1402 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 1413 of file qqmljsast.cpp.

References bindingIdentifier, bindingTarget, QQmlJS::AST::BoundName::Declared, 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 980 of file qqmljsast_p.h.

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

Referenced by QV4::Compiler::Codegen::initializeAndDestructureBindingElement(), QQmlJS::Dom::ScriptFormatter::visit(), and 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 979 of file qqmljsast_p.h.

◆ elementList()

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

Definition at line 981 of file qqmljsast_p.h.

Referenced by boundNames(), and QV4::Compiler::Codegen::initializeAndDestructureBindingElement().

+ 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 973 of file qqmljsast_p.h.

References QQmlJS::SourceLocation::isValid().

Referenced by boundNames(), QQmlJS::AST::FormalParameterList::firstSourceLocation(), QQmlJS::AST::ArrayPattern::isValidArrayLiteral(), 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 985 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 984 of file qqmljsast_p.h.

Referenced by QQmlJS::Dom::ScriptFormatter::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 976 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 982 of file qqmljsast_p.h.

References o.

Referenced by boundNames(), and QV4::Compiler::Codegen::initializeAndDestructureBindingElement().

+ Here is the caller graph for this function:

Member Data Documentation

◆ bindingIdentifier

◆ bindingTarget

◆ equalToken

SourceLocation QQmlJS::AST::PatternElement::equalToken

Definition at line 991 of file qqmljsast_p.h.

◆ identifierToken

◆ initializer

◆ isForDeclaration

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

◆ isInjectedSignalParameter

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

Definition at line 1000 of file qqmljsast_p.h.

Referenced by boundNames().

◆ scope

◆ type

◆ typeAnnotation


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