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