[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();