diff options
| author | Olivier De Cannière <olivier.decanniere@qt.io> | 2024-08-21 13:45:14 +0200 |
|---|---|---|
| committer | Olivier De Cannière <olivier.decanniere@qt.io> | 2024-08-21 19:57:58 +0200 |
| commit | 06577c9e80eb150b6b9e76e7805bfed1abbae82d (patch) | |
| tree | 0c2028f7aaae49dab18fdb121eea6b04ae2abfac /src/qmlcompiler/qqmljsfunctioninitializer.cpp | |
| parent | aeabdb93885e51d5c7dbecbb69af1750370a65fa (diff) | |
Compiler: Only warn about missing type annotation once per function
Change-Id: I6f9788c906158e549e57c04223ae10d5a789ecec
Reviewed-by: Sami Shalayel <sami.shalayel@qt.io>
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/qmlcompiler/qqmljsfunctioninitializer.cpp')
| -rw-r--r-- | src/qmlcompiler/qqmljsfunctioninitializer.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/qmlcompiler/qqmljsfunctioninitializer.cpp b/src/qmlcompiler/qqmljsfunctioninitializer.cpp index a767da68b6..1c90167691 100644 --- a/src/qmlcompiler/qqmljsfunctioninitializer.cpp +++ b/src/qmlcompiler/qqmljsfunctioninitializer.cpp @@ -80,6 +80,7 @@ void QQmlJSFunctionInitializer::populateSignature( function->isFullyTyped = !arguments.isEmpty() || ast->typeAnnotation; if (function->argumentTypes.isEmpty()) { + bool alreadyWarnedAboutMissingAnnotations = false; for (const QQmlJS::AST::BoundName &argument : std::as_const(arguments)) { if (argument.typeAnnotation) { if (const auto type = m_typeResolver->typeFromAST(argument.typeAnnotation->type)) { @@ -94,10 +95,13 @@ void QQmlJSFunctionInitializer::populateSignature( .arg(argument.typeAnnotation->type->toString())); } } else { - function->argumentTypes.append( - m_typeResolver->tracked( - m_typeResolver->globalType(m_typeResolver->varType()))); - signatureError(u"Functions without type annotations won't be compiled"_s); + if (!alreadyWarnedAboutMissingAnnotations) { + alreadyWarnedAboutMissingAnnotations = true; + function->argumentTypes.append( + m_typeResolver->tracked( + m_typeResolver->globalType(m_typeResolver->varType()))); + signatureError(u"Functions without type annotations won't be compiled"_s); + } } } } else { |
