809, 824,
1030, 1058, 1060, 1066,
1522, 1570, 1571, 1572, 1573, 1574, 1580, 1581, 1584, 1587, 1589, 1590, 1591, 1592,
- 1607, 1616, 1633, 1634, 1635, 1685, 1690, 1691, 1692, 1695, 1696, 1699,
+ 1607, 1616, 1633, 1634, 1635, 1685, 1690, 1691, 1692, 1695, 1696, 1697, 1699,
1700, 1701, 1702, 1709, 1711, 1717, 1718, 1720, 1735,
1901, 1956, 1981, 1998,
2002, 2023, 2029,
3000, 3001, 3002, 3003, 3005, 3006, 3007, 3008, 3009,
3010, 3011, 3012, 3013, 3014, 3015, 3016, 3017, 3018, 3019,
- 3021, 3022, 3023, 3024, 3026, 3027
+ 3021, 3022, 3023, 3024, 3026, 3027,
+ 4014
};
static HashSet<int> AllWarningsHashSet;
extra_information.Add (msg);
}
- public bool CheckWarningCode (string code, Location loc)
- {
- Warning (1691, 1, loc, "`{0}' is not a valid warning number", code);
- return false;
- }
-
public bool CheckWarningCode (int code, Location loc)
{
if (AllWarningsHashSet == null)
if (AllWarningsHashSet.Contains (code))
return true;
- return CheckWarningCode (code.ToString (), loc);
+ Warning (1691, 1, loc, "`{0}' is not a valid warning number", code);
+ return false;
}
public void ExtraInformation (Location loc, string msg)
//
public abstract class ReportPrinter
{
+ protected HashSet<ITypeDefinition> reported_missing_definitions;
+
#region Properties
public int ErrorsCount { get; protected set; }
}
}
+ //
+ // Tracks reported missing types. It needs to be session specific
+ // because we can run in probing mode
+ //
+ public bool MissingTypeReported (ITypeDefinition typeDefinition)
+ {
+ if (reported_missing_definitions == null)
+ reported_missing_definitions = new HashSet<ITypeDefinition> ();
+
+ if (reported_missing_definitions.Contains (typeDefinition))
+ return true;
+
+ reported_missing_definitions.Add (typeDefinition);
+ return false;
+ }
+
public void Reset ()
{
// HACK: Temporary hack for broken repl flow
bool showFullPaths;
+ public void ClearSession ()
+ {
+ session_messages = null;
+ }
+
public override void Print (AbstractMessage msg, bool showFullPath)
{
//
// This line is useful when debugging recorded messages
//
- // Console.WriteLine ("RECORDING: {0}", msg.ToString ());
+ // Console.WriteLine ("RECORDING: {0}", msg.Text);
if (session_messages == null)
session_messages = new List<AbstractMessage> ();
error_msg |= !msg.IsWarning;
}
+ if (reported_missing_definitions != null) {
+ foreach (var missing in reported_missing_definitions)
+ dest.MissingTypeReported (missing);
+ }
+
return error_msg;
}
}
if (timers == null)
return;
- Dictionary<TimerType, string> timer_names = new Dictionary<TimerType,string> () {
+ Dictionary<TimerType, string> timer_names = new Dictionary<TimerType,string> {
{ TimerType.ParseTotal, "Parsing source files" },
{ TimerType.AssemblyBuilderSetup, "Assembly builder setup" },
{ TimerType.CreateTypeTotal, "Compiled types created" },
public override bool IsEnabled (int code, bool previous)
{
- return this.code == code ? false : previous;
+ return this.code != code && previous;
}
}
public override bool IsEnabled(int code, bool previous)
{
- return this.code == code ? true : previous;
+ return this.code == code || previous;
}
}