QmlJS: Add check for duplicated import

Add a soft check for duplicated Qml/JS imports which
adds a warning when a file contains imports that
duplicate the same URI / version or file path.

Change-Id: Ib9a1f8a90dd3cf469d90e83abc1d748901b1e353
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
This commit is contained in:
Christian Stenger
2019-12-09 13:13:58 +01:00
parent a57bfda5d8
commit 6b492866af
5 changed files with 34 additions and 2 deletions

View File

@@ -65,6 +65,7 @@ protected:
void postVisit(AST::Node *ast) override;
bool visit(AST::UiProgram *ast) override;
bool visit(AST::UiImport *ast) override;
bool visit(AST::UiObjectDefinition *ast) override;
bool visit(AST::UiObjectBinding *ast) override;
bool visit(AST::UiScriptBinding *ast) override;
@@ -136,6 +137,9 @@ private:
QStack<StringSet> m_propertyStack;
QStack<QString> m_typeStack;
using ShortImportInfo = QPair<QString, LanguageUtils::ComponentVersion>;
QList<ShortImportInfo> m_importInfo;
class MessageTypeAndSuppression
{
public: