# Method Reporter()->report()

Method report

  ``void` report(`SeverityLevel` `severity`, `string` `filename`, `int(1..)` `linenumber`, `string` `subsystem`, `string` `message`, `mixed` ... `extra_args`)`

Description

  Report a diagnostic from the compiler.

Parameter `severity`

  The severity of the diagnostic.

Parameter `filename`
Parameter `linenumber`

  Location which triggered the diagnostic.

Parameter `subsystem`

  Compiler subsystem that generated the diagnostic.

Parameter `message`

  sprintf()-style formatting string with the diagnostic message.

Parameter `extra_args`

  Extra arguments to sprintf().

  The default implementation does the following:

  - If there's a `MasterObject()->report()`, call it with the same arguments as ourselves.

  - Otherwise depending on `severity`:

    ``NOTICE`` | Ignored.
    ``WARNING`` | Calls MasterObject()->compile_warning().
    ``ERROR`` | Calls MasterObject()->compile_error().
    ``FATAL``

  If there's no master object yet, the diagnostic is output to Stdio.stderr.

Note

  In Pike 7.8 and earlier `MasterObject()->report()` was not called.

See also

  `PikeCompiler()->report()`