aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/parser/qqmljsast.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qml/parser/qqmljsast.cpp')
-rw-r--r--src/qml/parser/qqmljsast.cpp25
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)) {