.. _Inline Lint Waivers:

Inline Lint Waivers
-------------------


Lint waivers can be extracted from user comments containing a specific pragma.

.. code-block::
   :caption: Inline waivers syntax:

    code line 1
    code line 2
    // @DVT_LINTER_WAIVER_START "#NAME#" #STATUS# #CHECKS#
    code line 4
    ...
    code line 7
    // @DVT_LINTER_WAIVER_END "#NAME#"
    code line 8
    code line 10 // @DVT_LINTER_WAIVER "#NAME#" #STATUS# #CHECKS#
    code line 11
    code line 12 /* @DVT_LINTER_WAIVER "#NAME#" #STATUS# #CHECKS# */ // inline comment
    code line 13 /* @DVT_LINTER_WAIVER "#NAME#" #STATUS# #CHECKS# */ /* @DVT_LINTER_WAIVER "#NAME#" #STATUS# #CHECKS# */ // inline comment


**Parameters:**

#NAME#

- Must be an unique id of a waiver
- It is optional; if not defined, a default name containing file and line is used

#STATUS#

- Any value from the following set of values (mandatory)
 
  - error   : hits matched by this waiver will be reported as errors
  - warning : hits matched by this waiver will be reported as warnings
  - info    : hits matched by this waiver will be reported as infos
  - disable : hits matched by this waiver will not be stored
- If two or more waivers cover the same piece of code they will apply in the order they were declared.
- Inline waivers are applied before file waivers

#CHECKS#

- Is a comma separated list of check names

.. note::

  - Inline waivers are applied only on failures in the same file where they were declared.
  - The failures in files included between begin and end of a waiver are not affected by the waiver.
  - The begin/end of multiline waivers must always be in the same file.
  - The multiline waivers can be interlaced by using names for start and end pragmas.
  - The inline waivers must be inserted before inline comments as block comments, otherwise they will not be identified.


.. _UVMF Custom Pragma Waivers:

.. include:: uvmf_custom_pragmas/index.rst

