Chromium Code Reviews| Index: pkg/analyzer/lib/src/task/strong/checker.dart |
| diff --git a/pkg/analyzer/lib/src/task/strong/checker.dart b/pkg/analyzer/lib/src/task/strong/checker.dart |
| index 695e6ddfd8607896520a19dc8bfc75e388dc1597..463a5c2ce22853a0ea2babc5a06cd94d1b600e59 100644 |
| --- a/pkg/analyzer/lib/src/task/strong/checker.dart |
| +++ b/pkg/analyzer/lib/src/task/strong/checker.dart |
| @@ -14,6 +14,7 @@ import 'package:analyzer/dart/ast/token.dart'; |
| import 'package:analyzer/dart/ast/visitor.dart'; |
| import 'package:analyzer/dart/element/element.dart'; |
| import 'package:analyzer/dart/element/type.dart'; |
| +import 'package:analyzer/source/error_processor.dart' show ErrorProcessor; |
| import 'package:analyzer/src/dart/element/element.dart'; |
| import 'package:analyzer/src/dart/element/type.dart'; |
| import 'package:analyzer/src/error/codes.dart' show StrongModeCode; |
| @@ -1038,7 +1039,14 @@ class CodeChecker extends RecursiveAstVisitor { |
| } |
| void _recordMessage(AstNode node, ErrorCode errorCode, List arguments) { |
| - var severity = errorCode.errorSeverity; |
| + // Compute the right severity taking the analysis options into account. |
| + // We construct a dummy error to make the common case where we end up |
| + // ignoring the strong mode message cheaper. |
| + var processor = ErrorProcessor.getProcessor(_options, |
| + new AnalysisError.forValues(null, -1, 0, errorCode, null, null)); |
| + var severity = |
| + (processor != null) ? processor.severity : errorCode.errorSeverity; |
|
Brian Wilkerson
2017/03/29 13:44:22
If this works, then I suppose it's fine, but I don
|
| + |
| if (severity == ErrorSeverity.ERROR) _failure = true; |
| if (severity != ErrorSeverity.INFO || _options.strongModeHints) { |
| int begin = node is AnnotatedNode |