Implement Severity rewriting

Change-Id: I21fef5182e7138c1efc1af05f0ae6c79b6916d87
Reviewed-on: https://dart-review.googlesource.com/59086
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
diff --git a/pkg/front_end/lib/src/fasta/loader.dart b/pkg/front_end/lib/src/fasta/loader.dart
index 0e2a25e..b86ce27 100644
--- a/pkg/front_end/lib/src/fasta/loader.dart
+++ b/pkg/front_end/lib/src/fasta/loader.dart
@@ -26,6 +26,8 @@
 
 import 'problems.dart' show internalProblem;
 
+import 'rewrite_severity.dart' show rewriteSeverity;
+
 import 'severity.dart' show Severity;
 
 import 'target_implementation.dart' show TargetImplementation;
@@ -237,6 +239,7 @@
   bool addMessage(Message message, int charOffset, int length, Uri fileUri,
       Severity severity,
       {bool wasHandled: false, List<LocatedMessage> context}) {
+    severity = rewriteSeverity(severity, message.code, fileUri);
     if (severity == Severity.ignored) return false;
     String trace = """
 message: ${message.message}
diff --git a/pkg/front_end/lib/src/fasta/rewrite_severity.dart b/pkg/front_end/lib/src/fasta/rewrite_severity.dart
new file mode 100644
index 0000000..1ca0a15
--- /dev/null
+++ b/pkg/front_end/lib/src/fasta/rewrite_severity.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2018, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+import 'severity.dart' show Severity;
+
+import 'messages.dart' as msg;
+
+Severity rewriteSeverity(
+    Severity severity, msg.Code<Object> code, Uri fileUri) {
+  if (severity == Severity.ignored &&
+      fileUri.path.contains("/pkg/front_end/lib/src/fasta/")) {
+    return Severity.error;
+  }
+  return severity;
+}