aboutsummaryrefslogtreecommitdiffstats
path: root/src/qmlcompiler/qqmljsfunctioninitializer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qmlcompiler/qqmljsfunctioninitializer.cpp')
-rw-r--r--src/qmlcompiler/qqmljsfunctioninitializer.cpp12
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 {