aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/parser/qqmljsast_p.h
diff options
context:
space:
mode:
authorLars Knoll <lars.knoll@qt.io>2018-06-21 22:57:07 +0200
committerLars Knoll <lars.knoll@qt.io>2018-06-26 10:04:04 +0000
commit5faf2e9a693d10e1e689c42deec911083a35ddb2 (patch)
tree58d56608b05274c89139175b6664d7157437aa7e /src/qml/parser/qqmljsast_p.h
parentb797006c4491127f5c34f8eca49c6d1d576941db (diff)
Properly distinguish between class expressions and declarations
Introduce both types in the AST, and handle them properly in the code generator. Change-Id: I754ac0976de69009bdb8b203d890e4ec0ad03b30 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.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/qml/parser/qqmljsast_p.h b/src/qml/parser/qqmljsast_p.h
index 67abbbf88a..6a4e1e6ea1 100644
--- a/src/qml/parser/qqmljsast_p.h
+++ b/src/qml/parser/qqmljsast_p.h
@@ -169,6 +169,7 @@ public:
Kind_FunctionDeclaration,
Kind_FunctionExpression,
Kind_ClassExpression,
+ Kind_ClassDeclaration,
Kind_IdentifierExpression,
Kind_IdentifierPropertyName,
Kind_ComputedPropertyName,
@@ -2246,6 +2247,19 @@ public:
SourceLocation rbraceToken;
};
+class QML_PARSER_EXPORT ClassDeclaration: public ClassExpression
+{
+public:
+ QQMLJS_DECLARE_AST_NODE(ClassDeclaration)
+
+ ClassDeclaration(const QStringRef &n, ExpressionNode *heritage, ClassElementList *elements)
+ : ClassExpression(n, heritage, elements)
+ { kind = K; }
+
+ void accept0(Visitor *visitor) override;
+};
+
+
class QML_PARSER_EXPORT ClassElementList : public Node
{
public: