[analyzer][cfe] Don't crash on converting errors with Severity.context

Change-Id: I70760dc2c1bc2f6a0b4bbec6887ebfac0b1f3172
Reviewed-on: https://dart-review.googlesource.com/63400
Commit-Queue: Dmitry Stefantsov <dmitryas@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/fasta/error_converter.dart b/pkg/analyzer/lib/src/fasta/error_converter.dart
index ae2fb92..d988e9e 100644
--- a/pkg/analyzer/lib/src/fasta/error_converter.dart
+++ b/pkg/analyzer/lib/src/fasta/error_converter.dart
@@ -657,7 +657,11 @@
           errorCode,
           message.message,
           message.tip));
-    } else {
+    } else if (message.severity != Severity.context) {
+      // Messages with [Severity.context] are supposed to give extra information
+      // to messages of other kinds, and it should be possible to ignore them
+      // without affecting the discoverability of compile-time errors.  See also
+      // https://github.com/dart-lang/sdk/issues/33730.
       throw new StateError('Unable to convert (${message.code}, $errorCodeStr, '
           '@${message.span.start.offset}, $message)');
     }
diff --git a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
index 1651957..8ac0d6c 100644
--- a/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/compile_time_error_code_kernel_test.dart
@@ -277,13 +277,6 @@
 
   @override
   @failingTest
-  test_constConstructorWithNonFinalField_this() async {
-    // Expected 1 errors of type CompileTimeErrorCode.CONST_CONSTRUCTOR_WITH_NON_FINAL_FIELD, found 0
-    await super.test_constConstructorWithNonFinalField_this();
-  }
-
-  @override
-  @failingTest
   test_constEval_newInstance_constConstructor() async {
     // Expected 1 errors of type CompileTimeErrorCode.CONST_INITIALIZED_WITH_NON_CONSTANT_VALUE, found 0
     await super.test_constEval_newInstance_constConstructor();
@@ -685,48 +678,6 @@
 
   @override
   @failingTest
-  test_duplicateDefinition_locals_inCase() async {
-    // Bad state: No type information for a at 58
-    await super.test_duplicateDefinition_locals_inCase();
-  }
-
-  @override
-  @failingTest
-  test_duplicateDefinition_locals_inFunctionBlock() async {
-    // Bad state: No declaration information for m(a) {} at 24
-    await super.test_duplicateDefinition_locals_inFunctionBlock();
-  }
-
-  @override
-  @failingTest
-  test_duplicateDefinition_locals_inIf() async {
-    // Bad state: No type information for a at 49
-    await super.test_duplicateDefinition_locals_inIf();
-  }
-
-  @override
-  @failingTest
-  test_duplicateDefinition_locals_inMethodBlock() async {
-    // Bad state: No type information for a at 37
-    await super.test_duplicateDefinition_locals_inMethodBlock();
-  }
-
-  @override
-  @failingTest
-  test_duplicateDefinition_parameters_inConstructor() async {
-    // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
-    await super.test_duplicateDefinition_parameters_inConstructor();
-  }
-
-  @override
-  @failingTest
-  test_duplicateDefinition_parameters_inFunctionTypeAlias() async {
-    // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
-    await super.test_duplicateDefinition_parameters_inFunctionTypeAlias();
-  }
-
-  @override
-  @failingTest
   test_duplicateDefinition_parameters_inLocalFunction() async {
     // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
     await super.test_duplicateDefinition_parameters_inLocalFunction();
@@ -734,20 +685,6 @@
 
   @override
   @failingTest
-  test_duplicateDefinition_parameters_inMethod() async {
-    // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
-    await super.test_duplicateDefinition_parameters_inMethod();
-  }
-
-  @override
-  @failingTest
-  test_duplicateDefinition_parameters_inTopLevelFunction() async {
-    // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
-    await super.test_duplicateDefinition_parameters_inTopLevelFunction();
-  }
-
-  @override
-  @failingTest
   test_duplicateDefinition_typeParameters() async {
     // Expected 1 errors of type CompileTimeErrorCode.DUPLICATE_DEFINITION, found 0
     await super.test_duplicateDefinition_typeParameters();
@@ -2759,13 +2696,6 @@
 
   @override
   @failingTest
-  test_sharedDeferredPrefix() async {
-    // Bad state: Expected element reference for analyzer offset 86; got one for kernel offset 90
-    await super.test_sharedDeferredPrefix();
-  }
-
-  @override
-  @failingTest
   test_superInInvalidContext_binaryExpression() async {
     // Expected 1 errors of type CompileTimeErrorCode.SUPER_IN_INVALID_CONTEXT, found 0
     await super.test_superInInvalidContext_binaryExpression();
diff --git a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
index 8e9c9ae..5c1b8df 100644
--- a/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
+++ b/pkg/analyzer/test/generated/static_warning_code_kernel_test.dart
@@ -948,13 +948,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_invalidGetterOverrideReturnType() async {
-    return super.test_invalidGetterOverrideReturnType();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_invalidGetterOverrideReturnType_implicit() async {
     return super.test_invalidGetterOverrideReturnType_implicit();
   }
@@ -977,42 +970,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_invalidMethodOverrideNamedParamType() async {
-    return super.test_invalidMethodOverrideNamedParamType();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideNormalParamType_interface() async {
-    return super.test_invalidMethodOverrideNormalParamType_interface();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideNormalParamType_superclass() async {
-    return super.test_invalidMethodOverrideNormalParamType_superclass();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideNormalParamType_superclass_interface() async {
-    return super
-        .test_invalidMethodOverrideNormalParamType_superclass_interface();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideNormalParamType_twoInterfaces() async {
-    return super.test_invalidMethodOverrideNormalParamType_twoInterfaces();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_invalidMethodOverrideNormalParamType_twoInterfaces_conflicting() async {
     return super
         .test_invalidMethodOverrideNormalParamType_twoInterfaces_conflicting();
@@ -1021,55 +978,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_invalidMethodOverrideOptionalParamType() async {
-    return super.test_invalidMethodOverrideOptionalParamType();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideOptionalParamType_twoInterfaces() async {
-    return super.test_invalidMethodOverrideOptionalParamType_twoInterfaces();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideReturnType_interface() async {
-    return super.test_invalidMethodOverrideReturnType_interface();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideReturnType_interface_grandparent() async {
-    return super.test_invalidMethodOverrideReturnType_interface_grandparent();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideReturnType_mixin() async {
-    return super.test_invalidMethodOverrideReturnType_mixin();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideReturnType_superclass() async {
-    return super.test_invalidMethodOverrideReturnType_superclass();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
-  test_invalidMethodOverrideReturnType_superclass_grandparent() async {
-    return super.test_invalidMethodOverrideReturnType_superclass_grandparent();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_invalidMethodOverrideReturnType_twoInterfaces() async {
     return super.test_invalidMethodOverrideReturnType_twoInterfaces();
   }
@@ -1077,13 +985,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_invalidMethodOverrideReturnType_void() async {
-    return super.test_invalidMethodOverrideReturnType_void();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_invalidOverrideNamed_fewerNamedParameters() async {
     return super.test_invalidOverrideNamed_fewerNamedParameters();
   }
@@ -1126,13 +1027,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_invalidSetterOverrideNormalParamType() async {
-    return super.test_invalidSetterOverrideNormalParamType();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_invalidSetterOverrideNormalParamType_superclass_interface() async {
     return super
         .test_invalidSetterOverrideNormalParamType_superclass_interface();
@@ -1141,13 +1035,6 @@
   @override
   @failingTest
   @potentialAnalyzerProblem
-  test_invalidSetterOverrideNormalParamType_twoInterfaces() async {
-    return super.test_invalidSetterOverrideNormalParamType_twoInterfaces();
-  }
-
-  @override
-  @failingTest
-  @potentialAnalyzerProblem
   test_invalidSetterOverrideNormalParamType_twoInterfaces_conflicting() async {
     return super
         .test_invalidSetterOverrideNormalParamType_twoInterfaces_conflicting();
diff --git a/pkg/analyzer/test/generated/strong_mode_kernel_test.dart b/pkg/analyzer/test/generated/strong_mode_kernel_test.dart
index 29e0889..411efa9 100644
--- a/pkg/analyzer/test/generated/strong_mode_kernel_test.dart
+++ b/pkg/analyzer/test/generated/strong_mode_kernel_test.dart
@@ -398,13 +398,6 @@
 
   @override
   @failingTest
-  test_genericMethod_override_invalidReturnType() async {
-    // Expected 1 errors of type StrongModeCode.STRONG_MODE_INVALID_METHOD_OVERRIDE, found 0
-    await super.test_genericMethod_override_invalidReturnType();
-  }
-
-  @override
-  @failingTest
   test_genericMethod_override_invalidTypeParamCount() async {
     // Expected 1 errors of type StrongModeCode.STRONG_MODE_INVALID_METHOD_OVERRIDE, found 0
     await super.test_genericMethod_override_invalidTypeParamCount();