diff options
Diffstat (limited to 'src/qml/parser/qqmljsast.cpp')
-rw-r--r-- | src/qml/parser/qqmljsast.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/qml/parser/qqmljsast.cpp b/src/qml/parser/qqmljsast.cpp index 89ef861c85..b8c4a58a13 100644 --- a/src/qml/parser/qqmljsast.cpp +++ b/src/qml/parser/qqmljsast.cpp @@ -55,6 +55,16 @@ FunctionExpression *asAnonymousFunctionDefinition(Node *n) return f; } +ClassExpression *asAnonymousClassDefinition(Node *n) +{ + if (!n) + return nullptr; + ClassExpression *c = n->asClassDefinition(); + if (!c || !c->name.isNull()) + return nullptr; + return c; +} + void Node::accept(Visitor *visitor) { @@ -105,6 +115,11 @@ FunctionExpression *Node::asFunctionDefinition() return nullptr; } +ClassExpression *Node::asClassDefinition() +{ + return nullptr; +} + ExpressionNode *ExpressionNode::expressionCast() { return this; @@ -174,6 +189,11 @@ FunctionExpression *NestedExpression::asFunctionDefinition() return expression->asFunctionDefinition(); } +ClassExpression *NestedExpression::asClassDefinition() +{ + return expression->asClassDefinition(); +} + void ThisExpression::accept0(Visitor *visitor) { if (visitor->visit(this)) { @@ -1296,6 +1316,11 @@ void ClassExpression::accept0(Visitor *visitor) visitor->endVisit(this); } +ClassExpression *ClassExpression::asClassDefinition() +{ + return this; +} + void ClassDeclaration::accept0(Visitor *visitor) { if (visitor->visit(this)) { |