Exemple #1
0
        public void Warning(int code, int level, Location loc, string message)
        {
            if (reporting_disabled > 0)
            {
                return;
            }

            if (!settings.IsWarningEnabled(code, level))
            {
                return;
            }

            if (warning_regions_table != null && !loc.IsNull)
            {
                WarningRegions regions;
                if (warning_regions_table.TryGetValue(loc.File, out regions) && !regions.IsWarningEnabled(code, loc.Row))
                {
                    return;
                }
            }

            AbstractMessage msg;

            if (settings.IsWarningAsError(code))
            {
                message = "Warning as Error: " + message;
                msg     = new ErrorMessage(code, loc, message, extra_information);
            }
            else
            {
                msg = new WarningMessage(code, loc, message, extra_information);
            }

            extra_information.Clear();
            printer.Print(msg, settings.ShowFullPaths);
        }