Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdoc-warnings.qdoc
Go to the documentation of this file.
1
// Copyright (C) 2021 The Qt Company Ltd.
2
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
3
4
/*!
5
\page qdoc-warnings.html
6
\previouspage Categories of Documentation
7
8
\title Troubleshooting QDoc Warnings
9
10
QDoc may issue warnings when generating your documentation set.
11
This section describes what these warnings mean and how to resolve
12
them. This document does not describe warnings generated by Clang.
13
14
\section1 All properties in a group must belong to the same type: <name>
15
16
When documenting QML property groups, all properties listed in
17
the comment block must belong to the same QML type.
18
19
\section1 Already generated <file> for this project
20
21
While generating the documentation for a project, QDoc keeps track of the
22
file names of the files it has generated. QDoc will issue a warning when it
23
opens a file for writing if that file is known to have been generated
24
previously, in the current execution. This can happen if a \qdoccmd page
25
command uses the same name as \qdoccmd group, for example.
26
27
You can set the environment variable \c QDOC_ALL_OVERWRITES_ARE_WARNINGS to
28
unconditionally warn about all such events. This may be useful when tracking
29
down the offending definitions.
30
31
\section1 \\brief statement does not end with a full stop
32
33
The argument to the \\brief command is a sentence, summarizing
34
the topic documented, so should end in a full stop. It should
35
also be brief.
36
37
\section1 Can't link to <target>
38
39
QDoc issues this warning when one part of the documentation
40
(identified in the warning message) tries to refer to another,
41
but doesn't correctly specify that other, the target of the link.
42
This may arise because the reference to it is mistyped or because
43
the target has changed name (for a function or type) or title
44
(for another section).
45
46
This can have a variety of causes:
47
48
\list
49
\li The link target has not been defined with a QDoc topic command,
50
e.g. {title-command}{\\title} <target>.
51
\li The <target> contains a typo.
52
\li The document that contains that link target did not get compiled.
53
\li The document that contains that link target is in a module that is
54
not in the compilation path.
55
\li The link target is in another module, and a dependency to that
56
module was not set in the configuration or QDoc failed to locate
57
the index file for the dependency.
58
\endlist
59
60
Search the source code for that particular link target. If you get no
61
results, gradually make the search less specific until you find a match.
62
63
If the link target looks like the name of a type or function,
64
this could also be due to:
65
66
\list
67
\li The name (or, for functions, where specified, signature) used
68
where it is documented not matching the name used in its
69
declaration.
70
\li The link target being marked as \l {internal-command}{\\internal} when the linking
71
text was not.
72
\endlist
73
74
\section1 Cannot find base function for <method> in <class>
75
76
QDoc produces this warning if \\reimp is used to document a method,
77
as an override of a virtual method, when no base class has a virtual
78
method with the given name and signature. This may happen because
79
the method it was written to override has changed its signature, or is
80
no longer virtual.
81
82
\section1 Cannot find <name> specified with \<command> in any header file
83
84
This means that QDoc cannot find a declaration of <name> in any
85
header file, but has found a comment that claims to document it.
86
87
An example:
88
\badcode
89
Cannot find 'Color::Red' specified with '\enum' in any header file.
90
\endcode
91
92
A documentation comment claims to describe an enum, but QDoc didn't
93
find a definition of that enum in a header file.
94
95
This may also be due to:
96
97
\list
98
\li a typo in <name> or <command>
99
\li a missing namespace-or-class prefix
100
\li <name> having moved to another namespace or class
101
\endlist
102
103
\section1 Cannot find project file for example <name>
104
105
In the example's source directory, QDoc expects to find a project
106
file named \c{CMakeLists.txt}, or a file with a \c{.pro}, \c{.qmlproject}, or
107
\c{.pyproject} extension where the base name matches that of the example
108
directory. For example, \c {examples/mymodule/helloworld/helloworld.pro}.
109
110
\section1 Cannot find snippets file to quote from
111
112
QDoc issues this warning if it is unable to find the file named
113
after a \l {snippet-command}{\\snippet} or \l {quotefromfile-command}{\\quotefromfile} command.
114
115
Some useful steps for correcting this:
116
117
\list
118
\li Check if the snippet file name is correct. QDoc appends the
119
snippet file name to each of the directories given in the
120
search path, to get a path-name for a candidate file to look
121
for. It produces this error when none of these candidates exist.
122
\li Check the search path for snippets, given by the \c exampledirs
123
configuration variable in the \c{*.qdocconf} file. You may need
124
to add an entry to this path, or correct an existing entry.
125
\li Check if the snippet file exists, or if it has been moved, renamed
126
or removed, which may happen when there are changes to the source
127
code that QDoc tries to quote from.
128
\endlist
129
130
\section1 Cannot find qdoc include file <filename>
131
132
QDoc failed to find an include file named in a command.
133
QDoc searches each directory named in the search path.
134
If there is no file with this name in any of those directories,
135
or the file found in that search is not readable, QDoc issues
136
this warning. Check that the combination of search path and
137
<filename> is correctly spelled, and that you have read permissions
138
for the file.
139
140
\note <filename> may include a directory name prefix; the whole
141
<filename> is appended to each directory in the search path.
142
143
\sa {Cannot open file to quote from: <filename>}
144
145
\section1 Cannot find <tag> in <file>
146
147
This means QDoc cannot find the identifier <id> in the
148
\l{include-command}{\\include} <file> or {snippet-command}{\\snippet} <file>.
149
150
\section1 Cannot locate index file for dependency <depend>
151
152
Example:
153
154
\badcode
155
"QMake" Cannot locate index file for dependency "activeqt"
156
\endcode
157
158
The documentation project QMake could not locate activeqt.index
159
in any of the specified index directories. In this case, the
160
specified index directories are specified in qmake.qdocconf.
161
162
\section1 Cannot nest <command> commands
163
164
This warning concerns formatting commands: bold, italic,
165
index, link, span, subscript, superscript, teletype, uicontrol,
166
underline. A formatting command cannot be used within the text
167
it applies to. An example of this:
168
169
\badcode
170
There is \b{no \b{super-}bold}.
171
\encode
172
173
\section1 Can't use <inner> in <outer>
174
175
This warning is issued for commands that cannot be nested.
176
177
Example:
178
\badcode
179
\list
180
\li \table
181
\row \li Hello \li Hi
182
\endtable
183
\endlist
184
\endcode
185
186
Results in the QDoc warning "Can't use '\\table' in '\\list'".
187
188
\section1 Cannot open file to quote from: <filename>
189
190
The search path for <filename> is defined by the following
191
variables in the \c{.qdocconf} file: \c{sources}, \c{sourcedirs},
192
and \c{exampledirs}.
193
194
QDoc failed to find a file named in a command (such as
195
\l {quotefromfile-command}{\\quotefromfile},
196
\l {snippet-command}{\\snippet}, \l {include-command}{\\include})
197
that tells it to retrieve content from the named file. It searches
198
each directory named in the search path. If there is no file with
199
this name in any of those directories, or the file is found but not
200
readable, QDoc issues this warning. Check that the combination of
201
search path and <filename> is correctly spelled, and that you have
202
read permissions for the file.
203
204
\note <filename> may include a directory name prefix; the whole
205
<filename> is appended to each directory in the search path.
206
207
\sa {Cannot find qdoc include file <filename>}
208
209
\section1 Cannot tie this documentation to anything
210
211
QDoc found a \beginqdoc ... \endqdoc comment, with no \l{Topic Commands}{topic command}, that was
212
not immediately followed by a class, function or property definition.
213
It thus does not know what the comment documents.
214
215
\section1 <class> tries to inherit itself
216
217
The \l {inherits-command}{\\inherits} command is used to document that a QMl type
218
inherits some other QML type. This warning is issued if that other
219
QML type is the same as the QML type documented.
220
221
Example:
222
223
\badcode
224
\qmltype Foo
225
\inherits Foo
226
\endcode
227
228
\section1 Command <command> failed at end of file <filename>
229
230
Example:
231
232
\badcode
233
Command "\snippet (//! [2]) failed at end of file qmlbars/qml/qmlbars/main.qml".
234
\endcode
235
236
In this case the warning means that the \l {snippet-command}{\\snippet} command did not find a second
237
label "\/\/! [2]" to mark the end of the snippet. It could also mean that it didn't
238
find any occurrence of that snippet tag in this snippet file.
239
240
Another example:
241
242
\badcode
243
Command '\skipto' failed at end of file 'styling/CMakeLists.txt".
244
\endcode
245
246
The \l {skipto-command}{\\skipto} + <pattern> moves the cursor to the next line containing
247
that pattern. If \\skipto doesn't find it, QDoc issues this warning.
248
249
\section1 Command <command> not allowed with QML property commands
250
251
Example:
252
253
\badcode
254
\qmlproperty real QtQuick.Controls::RangeSlider::first.value
255
\qmlproperty real QtQuick.Controls::RangeSlider::first.position
256
\qmlproperty real QtQuick.Controls::RangeSlider::first.visualPosition
257
\qmlsignal void QtQuick.Controls::RangeSlider::first.moved()
258
\qmlsignal void QtQuick.Controls::RangeSlider::second.moved()
259
\endcode
260
261
Error message:
262
263
\badcode
264
Command '\\qmlsignal' not allowed with QML property commands
265
\endcode
266
267
This warning is specific to property group documentation. QDoc
268
allows multiple qmlproperty or qmlattachedproperty topic commands
269
in a single documentation comment to document a property group
270
where the last element in the path is <group>.<property>. Any other topic
271
commands triggers this warning.
272
273
\section1 Could not resolve QML import statement for type <name>
274
275
QDoc issues this warning if you document a QML type, but omit
276
the \l{inqmlmodule-command}{\\inqmlmodule} command.
277
Example:
278
279
\badcode
280
Could not resolve QML import statement for type 'ItemSelectionModel'
281
\encode
282
283
Incorrect:
284
\badcode
285
\qmltype ItemSelectionModel
286
\nativetype QItemSelectionModel
287
\since 5.5
288
\ingroup qtquick-models
289
\endcode
290
Correct:
291
\badcode
292
\qmltype ItemSelectionModel
293
\nativetype QItemSelectionModel
294
\inqmlmodule QtQml.Models
295
\since 5.5
296
\ingroup qtquick-models
297
\endcode
298
299
\section1 Cyclic type inheritance: <type>
300
301
Cyclic or circular inheritance occurs when a QML type inherits from a base
302
type that itself inherits from the original type. This can occur between
303
two mutually inheriting types, or there may be intermediate types between
304
them.
305
306
This warning indicates where a cycle in the inheritance hierarchy has been
307
detected. You should examine the \l {inherits-command}{\\inherits} command
308
for the type and follow the trail of base types until one is found that
309
inherits from a type that you have previously encountered. You should then
310
break the cycle by fixing the incorrect \l {inherits-command}{\\inherits}
311
command for one of the identified types.
312
313
\section1 Dependent modules specified, but no index directories were set.
314
315
QDoc expected to see one or more -indexdir arguments on the command line.
316
Without them, QDoc cannot locate the index files of any dependencies
317
defined with the 'depends' configuration variable.
318
319
\section1 Documentation configuration for <project> doesn't define a help project (qhp)
320
321
A valid Qt help configuration was expected but not provided in the project's
322
.qdocconf file.
323
324
See also \l{Creating Help Project Files} and \l {qhp-variable}{qhp}.
325
326
\section1 Duplicate target name <target>
327
328
This warning is issued if you define two targets with the same parameter,
329
using either the \l {target-command}{\\target} or the \l {keyword-command}
330
{\\keyword} command. The target name given as parameter to these commands
331
must be unique. The warning is followed by "The previous occurrence is
332
here: [location]", where location contains a file name and line number.
333
334
\section1 Empty qdoc snippet <tag> in <file>
335
336
The snippet <tag> was found in the \l {snippet-command}{\\snippet} <file>, but it is empty.
337
338
\section1 Failed to find function when parsing \\fn <signature>
339
340
When Clang parses a function signature following an \qdoccmd fn command,
341
it checks this against the declaration in the header file. If Clang
342
discovers discrepancies, it issues this warning message.
343
344
The signature must be fully qualified. Typical issues include missing or
345
incorrect template arguments, return type, or qualifiers such as
346
\e const.
347
348
\note A \e {hidden friend} can be documented using either the
349
class-qualified syntax or the unqualified free function
350
syntax with its return type.
351
352
\section1 Failed to find qhp.<project>.subprojects.<subproject>.indexTitle
353
354
QDoc failed to find a title for a page designated as the index page
355
for <subproject> in the Qt help project configuration.
356
357
Subproject index titles must be local to the current documentation project.
358
Using a page title from another project, loaded as a dependency, also
359
results in this warning.
360
361
For more information, see \l {Creating Help Project Files}.
362
363
\section1 Failed to open <file> for writing
364
365
This warning clearly means it cannot open a file for writing, probably because
366
of a wrong path, or permission to write in a certain directory.
367
368
\section1 Found a \\target command outside table item in a table
369
370
If QDoc encounters a \l {target-command}{\\target command} that is not
371
preceded by an \\li command within a \l {table-command}
372
{\\table ... \\endtable block}, it issues this warning. The warning is
373
followed by the text
374
\e {Move the \\target inside the \\li to resolve this warning}.
375
376
\section1 \\generatelist <group> is empty
377
378
Below a short overview of all possible arguments for \l {generatelist-command}{\\generatelist}:
379
\list
380
\li \\generatelist annotatedexamples
381
\li \\generatelist annotatedattributions
382
\li \\generatelist classes <prefix>
383
\li \\generatelist classesbymodule <module name>
384
\li \\generatelist qmltypesbymodule <module name>
385
\li \\generatelist functionindex
386
\li \\generatelist legalese
387
\li \\generatelist overviews
388
\li \\generatelist attributions
389
\li \\generatelist related
390
\endlist
391
392
QDoc issues this warning if you specify \c{\generatelist <group>}
393
and the group does not contain any items, or if you specify
394
\c{\generatelist <group> <pattern>} and no item in the group
395
matches the pattern.
396
397
\section1 \\generatelist <group> no such group
398
399
This warning issues if the argument to \l {generatelist-command}{\\generatelist}
400
is a non-existing group.
401
402
Example:
403
404
\code
405
\generatelist draganddrop
406
\endcode
407
408
This statement generates a list of classes or QML types in the
409
draganddrop group. Classes or QML types are added to the
410
draganddrop group by the \c{\l {ingroup-command}{\ingroup} draganddrop} command in their
411
\l {class-command}{\\class} or \l {qmltype-command}{\\qmltype} comment.
412
413
QDoc issues this warning message if no entity has
414
this \c{\ingroup draganddrop} statement.
415
416
\section1 Has no \\inmodule command
417
418
QDoc issues this warning if the QDoc comments do not relate
419
a class, namespace, or headerfile to a module with the
420
\l{inmodule-command}{\\inmodule} command.
421
422
If the QDoc comment describes an entity that's not a member of
423
some other entity (typically a namespace or class), it should use
424
either \l {relates-command}{\\relates} or \l {inmodule-command}{\\inmodule}
425
to associate it with its broader context. This warning is raised
426
if it does not.
427
428
\section1 Illegal \\reimp; no documented virtual function for <command>
429
430
Qdoc tries to create a link to the function that this one reimplements,
431
but it could not find the link target, likely because that
432
function is not documented. This can also arise if no base class
433
has a virtual method with this name and signature; which might
434
arise due to a renaming, a change in signature or the base no
435
longer declaring it virtual.
436
437
\section1 Invalid QML property type
438
439
The type used to declare a QML property was not a valid
440
\l{QML Value Types}{QML value type} or \l{QML Object Types}{QML object type},
441
or it was a C++ or Qt type.
442
443
This warning typically occurs when developers refer to the underlying Qt
444
type used to implement a QML type, such as QStringList instead of
445
\c{list<string>}.
446
447
\section1 Invalid regular expression <regex>
448
449
Some QDoc commands take regular expressions as parameters. QDoc
450
gives this warning when the text given as such a parameter is not
451
a valid regular expression, usually due to it containing characters
452
with special meanings in regular expressions, that should have been
453
escaped.
454
455
Example:
456
457
\badcode
458
notifications.qdoc:56: (qdoc) warning: Invalid regular expression '^})$'
459
\endcode
460
461
\badcode
462
\quotefromfile webenginewidgets/notifications/data/index.html
463
\skipuntil resetPermission
464
\endcode
465
466
Invalid regular expression:
467
\badcode
468
\printuntil /^})$/
469
\endcode
470
471
Valid regular expression:
472
\badcode
473
\printuntil /^\}\)$/
474
\endcode
475
476
The \l {printuntil-command}{\\printuntil} command prints until it
477
meets a line consisting of only a right curly brace followed by a
478
right parenthesis. In this case, the curly brace and the parenthesis
479
need to be escaped because they have special meanings in regular
480
expressions.
481
482
\section1 Macro cannot have both format-specific and qdoc-syntax definitions
483
484
A \l {macro-variable}{\\macro} that specifies an output format cannot also
485
have a generic definition.
486
487
An example of a configuration that triggers this warning:
488
489
\badcode
490
macro.gui = \b
491
macro.gui.HTML = "<b>\1</b>"
492
\endcode
493
494
\section1 Macro <command> does not have a default definition
495
496
QDoc is attempting to expand a macro, and expects that macro to
497
have a default definition. Some macros may only have format-specific
498
definitions.
499
500
Example:
501
\badcode
502
macro.pi.HTML = "π" # encodes the pi symbol for HTML output format
503
\endcode
504
505
There are however instances where macro expansion requires a
506
format-independent macro. For example, you can have macros in
507
section titles, but they must have default definitions.
508
509
\section1 Macro <macro> invoked with too few arguments (expected <many>, got <few>)
510
511
The given macro needs more parameters than it was given. See
512
the definition of the macro in the configuration for further
513
details.
514
515
\section1 Missing comma in \\sa
516
517
The titles listed for a \l {sa-command}{\\sa} command should be separated
518
from one another with commas.
519
520
\section1 Missing format name after \\raw
521
522
The \l {raw-command}{\\raw} command and the corresponding \l {raw-command}{\\endraw}
523
command delimit a block of raw mark-up language code. The \\raw
524
command must be followed by the format name.
525
526
\section1 Missing image: <imagefile>
527
528
The search path to the image is wrong, or the image file does not exist.
529
530
\section1 Missing <outer> before <inner>
531
532
Some examples:
533
534
\list
535
\li The \l {li-command}{\\li} command can only be used inside a \l {list-command}{\\list}
536
or a \l {row-command}{\\row} of a \l {table-command}{\\table}.
537
\li The \l {row-command}{\\row} and \l {header-command}{\\header} commands can only be
538
used within a \l {table-command}{\\table}.
539
\endlist
540
541
\section1 Missing property type for <name>
542
543
A declaration of a \l {qmlproperty-command}{\\qmlproperty} is missing its property type.
544
545
The \\qmlproperty command expects to be followed by the property type, then the
546
fully-qualified name of the property (i.e. the name ::-joined after the name of the
547
class it belongs to).
548
549
Incorrect:
550
\badcode
551
\qmlproperty MyWidget::count
552
\endcode
553
554
Correct:
555
\badcode
556
\qmlproperty int MyWidget::count
557
\endcode
558
559
\section1 Multiple index files found for dependency <indexfile>:<depend>
560
Using <indexfile> as index file for dependency <depend>
561
562
Multiple \c{-indexdir} paths were passed to QDoc as command line options,
563
and more than one contained an \c{.index} file that matches a dependency.
564
QDoc picks the one with the latest timestamp automatically.
565
566
Typically, this warning indicates that there are build artifacts left
567
from a previous documentation build.
568
569
\section1 Multiple primary overload definitions for <function>
570
571
QDoc issues this warning when multiple functions with the same name are
572
marked with \c{\overload primary}. Only one function in an overload
573
group should be designated as the primary overload.
574
575
The warning includes the function signatures and their source locations
576
to help identify all competing primary overloads. QDoc will determine
577
the actual primary overload using lexicographic comparison (alphabetical
578
ordering of function signatures) among the functions marked as primary.
579
580
To resolve this warning, remove the \c{primary} argument from all but
581
one of the \c{\overload primary} commands in the overload group.
582
583
Example that triggers this warning:
584
585
\badcode *
586
/\1!
587
\overload primary
588
Does something with no parameters.
589
\1/
590
void doSomething();
591
592
/\1!
593
\overload primary
594
Does something with a parameter.
595
\1/
596
void doSomething(int value);
597
\endcode
598
599
Correct approach - only one primary:
600
601
\badcode *
602
/\1!
603
\overload primary
604
Does something with no parameters.
605
\1/
606
void doSomething();
607
608
/\1!
609
\overload doSomething()
610
Does something with a parameter.
611
\1/
612
void doSomething(int value);
613
\endcode
614
615
\section1 <name> documented more than once
616
617
QDoc issues this warning when it finds two comments that
618
document the same item. The location of the previously seen
619
comment is provided in warning details.
620
621
For example, you see this warning when a function has a documentation
622
comment preceding its definition, and a separate \\fn comment
623
elsewhere.
624
625
\section1 <name> is documented, but namespace <namespace> is not documented in any module
626
627
The documentation for \e {<name>} was found, but \e{<name>} is declared
628
under a namespace that is either undocumented or QDoc was unable to
629
locate the documentation for it.
630
631
This can be resolved by either documenting \e{<namespace>}, or if it is
632
already documented in another module, ensure that this module has
633
a dependency to it.
634
635
See also \l {depends-variable}{depends} and \l {indexes-variable}{indexes}.
636
637
\section1 Namespace <name> documented more than once
638
639
This warning means that a documentation set contains two comments
640
containing \l {namespace-command}{\\namespace} commands with the same
641
argument, <name>.
642
643
\section1 \\nativetype is only allowed in \\qmltype
644
645
The \l{nativetype-command}{\\nativetype} command can only be used in a QDoc
646
comment that documents a QML type.
647
648
\section1 No documentation for <name>
649
650
Example:
651
652
\badcode
653
Warning "No documentation for QNativeInterface."
654
\endcode
655
656
QDoc detects the declaration of namespace QNativeInterface in
657
a header file, but does not find a QDoc comment where that
658
namespace has been documented.
659
660
\section1 No documentation generated for function <name> in global scope
661
662
QDoc was able to match the documentation for a function \e {<name>} to its
663
declaration, but no output was generated because the function is declared
664
in the global namespace.
665
666
Use the \l {relates-command}{\\relates} command to associate the function
667
with a documented type, namespace, or a header file. The function is then
668
listed as a \e {related non-member} on the associated reference page.
669
670
\section1 No output generated for <entity> because <parent> is undocumented
671
672
QDoc issues this warning when parsing a documentation comment for an
673
API entity such as a class member, but cannot produce any output because
674
the associated parent (class) is not documented. Ensure that the parent is
675
documented and that QDoc is configured to parse the source file containing
676
the documentation comment.
677
678
If the documented member belongs to a class that is not meant to be
679
documented, mark the class as \qdoccmd {internal} or use the
680
\qdoccmd {dontdocument} command.
681
682
\section1 No such enum item <name> in <class>
683
684
Example:
685
686
\badcode
687
Cannot find 'QSGMaterialRhiShader::RenderState::DirtyState' specified
688
with \enum in any header file.
689
\endcode
690
691
QDoc issues this warning when it finds a \l{value-command}{\\value} directive in an
692
\l{enum-command}{\\enum} comment that names a value not found in the header file that declared
693
the enumerated type documented.
694
695
\section1 No such parameter
696
697
QDoc issues this warning when the parameter name given after an
698
\l{a-command}{\\a} command does not match any of the parameters named
699
in the header-file's declaration of the function or method being
700
documented.
701
702
\section1 No such <type> in QML <module>
703
704
QDoc issues this warning if a \l {qmlproperty-command} {\\qmlproperty},
705
\l {qmlmethod-command} {\\qmlmethod}, or \l {qmlsignal-command}
706
{\\qmlsignal} command argument uses a QML module identifier, but
707
the associated \l {qmltype-command}{\\qmltype} does not belong to
708
that module.
709
710
The QML module identifier, if defined, \b must match with the
711
\l {inqmlmodule-command} {\\inqmlmodule} argument in the QML type
712
documentation. In most cases, QDoc is able to locate the QML type
713
without a module identifier.
714
715
\section1 Overrides a previous doc
716
717
QDoc issues this warning when it finds two comments that appear to
718
describe the same entity. The location of the previously seen
719
comment is provided in warning details.
720
721
\section1 QML property documented multiple times: <identifier>
722
723
QDoc uses this warning when it finds two QDoc comments that document
724
the same QML property, either by appearing just before its definition,
725
or using the \l {qmlproperty-command}{\\qmlproperty} command.
726
727
\section1 QML type <TypeName> documented with <ClassName> as its native type. Replacing <ClassName> with <OtherClass>
728
729
If the \qdoccmd nativetype command is used with the same argument in
730
multiple QML type documentation comments that belong to the same
731
documentation project, QDoc issues this warning. To resolve this, ensure
732
that you use the \c {\nativetype} command only once for each C++ class.
733
734
\section1 QtDeclarative not installed; cannot parse QML
735
736
QDoc issues this warning if it has been compiled without support
737
for QML parsing. This should not happen unless you have a
738
custom build of QDoc.
739
740
\section1 Redundant link to self in \\sa command for <name>
741
742
A piece of documentation contains a link to itself in the references defined
743
in its \l {sa-command}{\\sa} command.
744
745
This problem tends to occur when there is a collection of related properties
746
or methods that refer to each other, and where the \\sa commands have been
747
copied between them, as in this example:
748
749
\badcode
750
\fn void Items::append(const Item &)
751
...
752
\sa append(), count(), insert(), remove()
753
\endcode
754
755
It is useful to replace the self-referencing link with one to another
756
related property or method.
757
758
Alternatively, the link may not be specific enough for QDoc to resolve, as
759
in this example:
760
761
\badcode
762
\fn void MyPicture::setSize(int)
763
...
764
\sa setSize()
765
\endcode
766
767
In this case, the intention may have been to refer to an overload that
768
accepts a \c double argument:
769
770
\badcode
771
\fn void MyPicture::setSize(int)
772
...
773
\sa setSize(double)
774
\endcode
775
776
\section1 The content is too long
777
778
QDoc uses a fixed-size buffer when tokenizing source files. If any single
779
token in the file has more characters than the maximum limit, QDoc issues
780
this warning.
781
782
While QDoc continues parsing the file, only the part of the token that
783
fits into the buffer is considered, meaning that the output might be
784
mangled.
785
786
To resolve this warning, the relevant content must be reduced in size,
787
either by splitting it, if possible, or by removing some of its parts.
788
789
The maximum amount of characters for a single token is shown alongside
790
the warning, for example:
791
792
\badcode
793
file.qdoc:71154: (qdoc) warning: The content is too long.
794
795
[The maximum amount of characters for this content is 524288.
796
Consider splitting it or reducing its size.]
797
\endcode
798
799
\note Since content that is too long is not parsed in full, QDoc may
800
issue warnings that are false positives. Resolve all warnings of this type
801
before fixing other warnings.
802
803
\section1 This page title exists in more than one file
804
805
The \l {title-command}{\\title} command sets the title for a page.
806
807
\code
808
\page activeqt-server.html
809
\title Building ActiveX servers in Qt
810
\endcode
811
812
QDoc issues this warning if a certain title is used in more than one page.
813
814
\section1 This qdoc comment contains no topic command (e.g., \\module, \\page)
815
816
If a QDoc comment doesn't contain a \l {Topic Commands}{topic command}, QDoc does
817
not know what the comment documents, and issues this warning.
818
Very similar to \l {Cannot tie this documentation to anything}, but
819
specific to comments that are not in C++ or QML files.
820
821
\section1 <topic> cannot be mixed with other topic commands
822
823
QDoc allows multiple topic commands in a single documentation
824
comment for certain \l{Writing Documentation#Multiple topics}{use cases}.
825
Using multiple topic commands from different categories prints
826
out this warning, and the topic generates no output.
827
828
\section1 Type is its own base type: <type>
829
830
The QML type has been incorrectly defined as its own base type, possibly
831
using the \l {inherits-command}{\\inherits} command.
832
833
\section1 Unable to parse QML snippet: <code> at line <y>, column <x>
834
835
QDoc comments can contain QML code. This code can be found in a snippet,
836
or in the QDoc comments delimited by \l {qml-command}{\\qml} and {endqml-command}{\\endqml}.
837
838
Example:
839
840
If there is a syntax error in the QML code, QDoc issues the warning
841
\badcode
842
Unable to parse QML snippet: Syntax error at line 97, column 42
843
\endcode
844
845
Snippets can also contain QML and also there the code is checked. If there is
846
for example a missing curly brace in the code, QDoc issues the warning
847
\badcode
848
Unable to parse QML snippet: Expected token '{' at line 63, column 52
849
\endcode
850
851
QDoc often fails to parse incomplete QML snippets; in these cases,
852
it's often OK to replace the \\qml ... \\endqml commands with
853
\\code ... \\endcode to suppress this warning.
854
855
\section1 Unbalanced parentheses in <text>
856
857
Points to a '(' without a corresponding ')', or vice versa.
858
859
\section1 Undocumented enum item <enum> in <enum list>
860
861
<enum list>'s \l {value-command}{\\value} or \l {omitvalue-command}{\\omitvalue} entries
862
did not include one for \l {enum-command}{<enum>}, which is named in the
863
declaration of <enum list> in the header file.
864
865
\section1 Undocumented parameter
866
867
QDoc requires the documentation of a function or method to describe
868
every parameter. It recognizes this by each parameter name (as
869
specified where the function or method is declared in a header file)
870
appearing after a \l {a-command}{\\a} command.
871
872
This requirement is not imposed for function overload documentation,
873
provided that the overload is marked with the \qdoccmd overload command
874
and a fully-documented function with the same name exists.
875
876
\section1 Undocumented property '<name>'
877
878
This warning indicates that a C++ class has a Q_PROPERTY declaration that lacks
879
documentation. Properties are part of a class's public API and require
880
documentation using the \c \property command to describe their purpose,
881
valid values, and behavior.
882
883
\note If you see both "Cannot find '<ClassName::propertyName>' specified with
884
'\\property'" and "Undocumented property '<ClassName::propertyName>'" warnings
885
together, the \c \property command exists but cannot match the property in code.
886
Dual warnings indicate mismatched property documentation: the \c \property command
887
can't find its target, and the PropertyNode has no attached documentation. Check
888
that the fully qualified name matches exactly, including namespace and class scope.
889
890
\section1 Undocumented QML <module> referred by <type> or its members
891
892
QDoc issues this warning if it is unable to locate a QML module
893
based on the identifier passed to the
894
\l {inqmlmodule-command}{\\inqmlmodule} or \l {qmlproperty-command}
895
{\\qmlproperty} commands associated with a QML \e type.
896
897
This means that either documentation for the \l {qmlmodule-command}
898
{\\qmlmodule} is missing, or an incorrect module identifier was
899
used in \\qmlproperty, \\qmlmethod, or \\qmlsignal command(s).
900
901
\section1 Undocumented return value
902
903
For functions whose return-type is not void, QDoc checks if the return
904
value is documented. This warning is issued if the documentation for a
905
function or method doesn't contain a word starting with "return".
906
907
\section1 Unexpected <end_command>
908
909
This warning is issued if, for example, you have an \l {list-command}{\\endlist} without
910
a preceding \l {list-command}{\\list}. It applies to all commands that come in pairs (e.g.
911
startFoo/endFoo).
912
913
\section1 Unexpected \\snippet
914
915
QDoc issues this warning if it is unable to locate the snippet file
916
quoted in a \l {snippet-command}{\\snippet} command.
917
918
\section1 Unknown base <name> for QML type <type>
919
920
The type name declared as the base type for a QML type was not found, or
921
it was not declared with the \qdoccmd{inherits} command.
922
923
\section1 Unknown command <name>
924
925
When a QDoc comment uses a backslash followed by a token that is not a QDoc
926
built-in command and has not been defined as a custom command
927
\l {macro-variable}{macro}, QDoc produces this warning. Check the spelling
928
of the command name, and check whether your QDoc configuration doesn't
929
include whatever would have defined it, if it's a custom command.
930
931
This may also be produced due to code being quoted in the QDoc comment,
932
for example the author may have referred to the C string termination
933
character \c{'\0'} or one of the other C string escape sequences such
934
as \c{'\n'} without escaping the backslash. Escape the backslash
935
as \c{\} to include a literal backslash in the documentation, or
936
enclose the code fragment in \c{\c{...}}, which suppresses
937
interpretation of backslashes as introducing QDoc commands.
938
939
\section1 Unknown macro
940
941
QDoc issues this warning when it sees a backslash, \c{\}, followed
942
by a token it doesn't recognize as the name of either a built-in command
943
or a \l {macro-variable}{user-defined macro}. When quoting code
944
that contains character escape sequences, you should enclose the
945
code in \\c{...} to prevent this warning against the escape sequences.
946
947
\section1 Unrecognizable QML module/type qualifier for <identifier>
948
949
A parameter passed to \l {qmlproperty-command}{\\qmlproperty} or
950
\l {qmlmethod-command}{\\qmlmethod} contains a combination of
951
qmlModule::qmlType::identifier that is not defined anywhere.
952
953
Example:
954
\badcode
955
Unrecognizable QML module/type qualifier for real QtQuick::DragHandler::DragAxis::minimum
956
\endcode
957
958
DragHandler doesn't have a property called DragAxis.
959
960
\section1 Unrecognized list style <name>
961
962
\\list can take an optional argument: a single number or character
963
that modifies the list style. Refer to the {list-command}{\\list}
964
documentation for more details. If you use an argument that is
965
not recognized, QDoc issues this warning.
966
967
\section1 Unrecognized markup language
968
969
This warning occurs when a programming language is specified for a \\code
970
command that QDoc does not recognize. For example, this QML code block has
971
been given the invalid "QL" language:
972
973
\code [text] \\endcode
974
\code [QL]
975
Item {
976
id: my_item
977
}
978
\1
979
\endcode
980
*/
qttools
src
qdoc
qdoc
doc
qdoc-warnings.qdoc
Generated on
for Qt by
1.16.1