| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 library analyzer.src.task.options; | 5 library analyzer.src.task.options; |
| 6 | 6 |
| 7 import 'package:analyzer/analyzer.dart'; | 7 import 'package:analyzer/analyzer.dart'; |
| 8 import 'package:analyzer/plugin/options.dart'; | 8 import 'package:analyzer/plugin/options.dart'; |
| 9 import 'package:analyzer/source/analysis_options_provider.dart'; | 9 import 'package:analyzer/source/analysis_options_provider.dart'; |
| 10 import 'package:analyzer/src/generated/engine.dart'; | 10 import 'package:analyzer/src/generated/engine.dart'; |
| 11 import 'package:analyzer/src/generated/java_engine.dart'; | 11 import 'package:analyzer/src/generated/java_engine.dart'; |
| 12 import 'package:analyzer/src/generated/source.dart'; | 12 import 'package:analyzer/src/generated/source.dart'; |
| 13 import 'package:analyzer/src/generated/utilities_general.dart'; | 13 import 'package:analyzer/src/generated/utilities_general.dart'; |
| 14 import 'package:analyzer/src/task/general.dart'; | 14 import 'package:analyzer/src/task/general.dart'; |
| 15 import 'package:analyzer/src/task/strong/info.dart'; |
| 15 import 'package:analyzer/task/general.dart'; | 16 import 'package:analyzer/task/general.dart'; |
| 16 import 'package:analyzer/task/model.dart'; | 17 import 'package:analyzer/task/model.dart'; |
| 17 import 'package:source_span/source_span.dart'; | 18 import 'package:source_span/source_span.dart'; |
| 18 import 'package:yaml/yaml.dart'; | 19 import 'package:yaml/yaml.dart'; |
| 19 | 20 |
| 20 /// The errors produced while parsing `.analysis_options` files. | 21 /// The errors produced while parsing `.analysis_options` files. |
| 21 /// | 22 /// |
| 22 /// The list will be empty if there were no errors, but will not be `null`. | 23 /// The list will be empty if there were no errors, but will not be `null`. |
| 23 final ListResultDescriptor<AnalysisError> ANALYSIS_OPTIONS_ERRORS = | 24 final ListResultDescriptor<AnalysisError> ANALYSIS_OPTIONS_ERRORS = |
| 24 new ListResultDescriptor<AnalysisError>( | 25 new ListResultDescriptor<AnalysisError>( |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 } | 119 } |
| 119 } | 120 } |
| 120 | 121 |
| 121 /// Validates `analyzer` error filter options. | 122 /// Validates `analyzer` error filter options. |
| 122 class ErrorFilterOptionValidator extends OptionsValidator { | 123 class ErrorFilterOptionValidator extends OptionsValidator { |
| 123 /// Pretty list of legal includes. | 124 /// Pretty list of legal includes. |
| 124 static final String legalIncludes = StringUtilities.printListOfQuotedNames( | 125 static final String legalIncludes = StringUtilities.printListOfQuotedNames( |
| 125 new List.from(AnalyzerOptions.ignoreSynonyms) | 126 new List.from(AnalyzerOptions.ignoreSynonyms) |
| 126 ..addAll(AnalyzerOptions.includeSynonyms)); | 127 ..addAll(AnalyzerOptions.includeSynonyms)); |
| 127 | 128 |
| 129 bool recognizedErrorCode(String name) => |
| 130 ErrorCode.values.any((ErrorCode code) => code.name == name) || |
| 131 StaticInfo.names.contains(name); |
| 132 |
| 128 @override | 133 @override |
| 129 void validate(ErrorReporter reporter, Map<String, YamlNode> options) { | 134 void validate(ErrorReporter reporter, Map<String, YamlNode> options) { |
| 130 var analyzer = options[AnalyzerOptions.analyzer]; | 135 var analyzer = options[AnalyzerOptions.analyzer]; |
| 131 if (analyzer is! YamlMap) { | 136 if (analyzer is! YamlMap) { |
| 132 return; | 137 return; |
| 133 } | 138 } |
| 134 | 139 |
| 135 var filters = analyzer[AnalyzerOptions.errors]; | 140 var filters = analyzer[AnalyzerOptions.errors]; |
| 136 if (filters is YamlMap) { | 141 if (filters is YamlMap) { |
| 137 String value; | 142 String value; |
| 138 filters.nodes.forEach((k, v) { | 143 filters.nodes.forEach((k, v) { |
| 139 if (k is YamlScalar) { | 144 if (k is YamlScalar) { |
| 140 value = toUpperCase(k.value); | 145 value = toUpperCase(k.value); |
| 141 if (!ErrorCode.values.any((ErrorCode code) => code.name == value)) { | 146 if (!recognizedErrorCode(value)) { |
| 142 reporter.reportErrorForSpan( | 147 reporter.reportErrorForSpan( |
| 143 AnalysisOptionsWarningCode.UNRECOGNIZED_ERROR_CODE, | 148 AnalysisOptionsWarningCode.UNRECOGNIZED_ERROR_CODE, |
| 144 k.span, | 149 k.span, |
| 145 [k.value?.toString()]); | 150 [k.value?.toString()]); |
| 146 } | 151 } |
| 147 } | 152 } |
| 148 if (v is YamlScalar) { | 153 if (v is YamlScalar) { |
| 149 value = toLowerCase(v.value); | 154 value = toLowerCase(v.value); |
| 150 if (!AnalyzerOptions.ignoreSynonyms.contains(value) && | 155 if (!AnalyzerOptions.ignoreSynonyms.contains(value) && |
| 151 !AnalyzerOptions.includeSynonyms.contains(value)) { | 156 !AnalyzerOptions.includeSynonyms.contains(value)) { |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 445 void setStrongMode(AnalysisContext context, Object strongMode) { | 450 void setStrongMode(AnalysisContext context, Object strongMode) { |
| 446 bool strong = strongMode is bool ? strongMode : false; | 451 bool strong = strongMode is bool ? strongMode : false; |
| 447 if (context.analysisOptions.strongMode != strong) { | 452 if (context.analysisOptions.strongMode != strong) { |
| 448 AnalysisOptionsImpl options = | 453 AnalysisOptionsImpl options = |
| 449 new AnalysisOptionsImpl.from(context.analysisOptions); | 454 new AnalysisOptionsImpl.from(context.analysisOptions); |
| 450 options.strongMode = strong; | 455 options.strongMode = strong; |
| 451 context.analysisOptions = options; | 456 context.analysisOptions = options; |
| 452 } | 457 } |
| 453 } | 458 } |
| 454 } | 459 } |
| OLD | NEW |