From 85f15e2af40be1e9500fe600daba31839b904ef4 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Thu, 30 Jan 2020 10:51:34 +0100 Subject: Required properties: Allow retroactive require specification It is now possible to mark a property of a parent class as required in the child by writing required Change-Id: I9e9d58c7b5c00577b056e905b39744b2fa359ea0 Reviewed-by: Ulf Hermann --- src/qml/parser/qqmljs.g | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'src/qml/parser/qqmljs.g') diff --git a/src/qml/parser/qqmljs.g b/src/qml/parser/qqmljs.g index b0f0f6a809..879de92e5f 100644 --- a/src/qml/parser/qqmljs.g +++ b/src/qml/parser/qqmljs.g @@ -1350,6 +1350,18 @@ OptionalSemicolon: | Semicolon; and then we would miss a semicolon (see tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml)*/ ./ +UiRequired: T_REQUIRED QmlIdentifier Semicolon; +/. + case $rule_number: { + AST::UiRequired *node = new (pool) AST::UiRequired(stringRef(2)); + node->requiredToken = loc(1); + node->semicolonToken = loc(3); + sym(1).Node = node; + } break; +./ + +UiObjectMember: UiRequired; + UiObjectMember: T_REQUIRED UiObjectMemberPropertyNoInitialiser; /. case $rule_number: { @@ -1360,7 +1372,6 @@ UiObjectMember: T_REQUIRED UiObjectMemberPropertyNoInitialiser; } break; ./ - UiObjectMemberWithScriptStatement: T_PROPERTY UiPropertyType QmlIdentifier T_COLON UiScriptStatement OptionalSemicolon; /. case $rule_number: { -- cgit v1.2.3