aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/parser/qqmljsast_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-30 21:04:51 +0200
committerLars Knoll <lars.knoll@qt.io>2018-07-03 08:09:09 +0000
commitdcbdb306f4442199384a71d532a3610a84d13fd5 (patch)
treee51520aafbc9dd12cd8d0013070d67fcc32fe13a /src/qml/parser/qqmljsast_p.h
parent6d8dbba4624c8a453ba13ff009f011f2946422bb (diff)
Fix naming of classes in class expressions
As with function expressions, class expressions also get an implicitly defined name if they are directly assigned to a named variable. Change-Id: I5fda9d74c1c299107f15b82245333b54ca6d8917 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src/qml/parser/qqmljsast_p.h')
-rw-r--r--src/qml/parser/qqmljsast_p.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/qml/parser/qqmljsast_p.h b/src/qml/parser/qqmljsast_p.h
index 6a4e1e6ea1..2cf2bcb736 100644
--- a/src/qml/parser/qqmljsast_p.h
+++ b/src/qml/parser/qqmljsast_p.h
@@ -129,6 +129,7 @@ T1 cast(T2 *ast)
}
FunctionExpression *asAnonymousFunctionDefinition(AST::Node *n);
+ClassExpression *asAnonymousClassDefinition(AST::Node *n);
class QML_PARSER_EXPORT Node: public Managed
{
@@ -257,6 +258,7 @@ public:
virtual Pattern *patternCast();
// implements the IsFunctionDefinition rules in the spec
virtual FunctionExpression *asFunctionDefinition();
+ virtual ClassExpression *asClassDefinition();
void accept(Visitor *visitor);
static void accept(Node *node, Visitor *visitor);
@@ -314,6 +316,7 @@ public:
{ return rparenToken; }
FunctionExpression *asFunctionDefinition() override;
+ ClassExpression *asClassDefinition() override;
// attributes
@@ -2110,7 +2113,6 @@ public:
FunctionExpression *asFunctionDefinition() override;
-
// attributes
QStringRef name;
bool isArrowFunction = false;
@@ -2237,6 +2239,8 @@ public:
SourceLocation lastSourceLocation() const override
{ return rbraceToken; }
+ ClassExpression *asClassDefinition() override;
+
// attributes
QStringRef name;
ExpressionNode *heritage;