From 61413825960870ac9390d0aa0431702431c620f2 Mon Sep 17 00:00:00 2001 From: Fabian Kosmale Date: Wed, 19 Feb 2020 13:51:24 +0100 Subject: Inline components: Abort if two IC's with same name exist Change-Id: Ic52fa388711a76d729ae28678932f4a150da9583 Reviewed-by: Ulf Hermann --- src/qml/compiler/qqmlirbuilder.cpp | 6 ++++++ src/qml/compiler/qqmlirbuilder_p.h | 1 + 2 files changed, 7 insertions(+) (limited to 'src/qml/compiler') diff --git a/src/qml/compiler/qqmlirbuilder.cpp b/src/qml/compiler/qqmlirbuilder.cpp index f43d7bc06f..89f99e21cd 100644 --- a/src/qml/compiler/qqmlirbuilder.cpp +++ b/src/qml/compiler/qqmlirbuilder.cpp @@ -553,6 +553,12 @@ bool IRBuilder::visit(QQmlJS::AST::UiInlineComponent *ast) recordError(ast->firstSourceLocation(), QLatin1String("Nested inline components are not supported")); return false; } + if (inlineComponentsNames.contains(ast->name.toString())) { + recordError(ast->firstSourceLocation(), QLatin1String("Inline component names must be unique per file")); + return false; + } else { + inlineComponentsNames.insert(ast->name.toString()); + } { QScopedValueRollback rollBack {insideInlineComponent, true}; if (!defineQMLObject(&idx, ast->component)) diff --git a/src/qml/compiler/qqmlirbuilder_p.h b/src/qml/compiler/qqmlirbuilder_p.h index 8f6c623818..9629a73199 100644 --- a/src/qml/compiler/qqmlirbuilder_p.h +++ b/src/qml/compiler/qqmlirbuilder_p.h @@ -543,6 +543,7 @@ public: QList errors; QSet illegalNames; + QSet inlineComponentsNames; QList _imports; QList _pragmas; -- cgit v1.2.3