# 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()