Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(794)

Unified Diff: pkg/analyzer/lib/src/task/options.dart

Issue 1445363002: Embedded options discovery (#24943). (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/test/context_manager_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/task/options.dart
diff --git a/pkg/analyzer/lib/src/task/options.dart b/pkg/analyzer/lib/src/task/options.dart
index 1ec59fab96a34a5a8406a5195b87443cd75f90dc..45faf41d29e169addec6eeee5c928ce4968ef617 100644
--- a/pkg/analyzer/lib/src/task/options.dart
+++ b/pkg/analyzer/lib/src/task/options.dart
@@ -227,28 +227,6 @@ class GenerateOptionsErrorsTask extends SourceBasedAnalysisTask {
new GenerateOptionsErrorsTask(context, target);
}
-/// Validates `analyzer` strong-mode value configuration options.
-class StrongModeOptionValueValidator extends OptionsValidator {
- ErrorBuilder trueOrFalseBuilder = new TrueOrFalseValueErrorBuilder();
-
- @override
- void validate(ErrorReporter reporter, Map<String, YamlNode> options) {
- var analyzer = options[AnalyzerOptions.analyzer];
- if (analyzer is! YamlMap) {
- return;
- }
-
- var v = analyzer.nodes[AnalyzerOptions.strong_mode];
- if (v is YamlScalar) {
- var value = toLowerCase(v.value);
- if (!AnalyzerOptions.trueOrFalse.contains(value)) {
- trueOrFalseBuilder.reportError(
- reporter, AnalyzerOptions.strong_mode, v);
- }
- }
- }
-}
-
/// Validates `analyzer` language configuration options.
class LanguageOptionValidator extends OptionsValidator {
ErrorBuilder builder = new ErrorBuilder(AnalyzerOptions.languageOptions);
@@ -313,6 +291,28 @@ class OptionsFileValidator {
}
}
+/// Validates `analyzer` strong-mode value configuration options.
+class StrongModeOptionValueValidator extends OptionsValidator {
+ ErrorBuilder trueOrFalseBuilder = new TrueOrFalseValueErrorBuilder();
+
+ @override
+ void validate(ErrorReporter reporter, Map<String, YamlNode> options) {
+ var analyzer = options[AnalyzerOptions.analyzer];
+ if (analyzer is! YamlMap) {
+ return;
+ }
+
+ var v = analyzer.nodes[AnalyzerOptions.strong_mode];
+ if (v is YamlScalar) {
+ var value = toLowerCase(v.value);
+ if (!AnalyzerOptions.trueOrFalse.contains(value)) {
+ trueOrFalseBuilder.reportError(
+ reporter, AnalyzerOptions.strong_mode, v);
+ }
+ }
+ }
+}
+
/// Validates `analyzer` top-level options.
class TopLevelAnalyzerOptionsValidator extends TopLevelOptionValidator {
TopLevelAnalyzerOptionsValidator()
@@ -372,7 +372,7 @@ class _OptionsProcessor {
}
var analyzer = options[AnalyzerOptions.analyzer];
- if (analyzer is! YamlMap) {
+ if (analyzer is! Map) {
return;
}
@@ -409,30 +409,36 @@ class _OptionsProcessor {
context.setConfigurationData(CONFIGURED_ERROR_FILTERS, filters);
}
+ void setLanguageOption(
+ AnalysisContext context, Object feature, Object value) {
+ if (feature == AnalyzerOptions.enableSuperMixins) {
+ if (isTrue(value)) {
+ AnalysisOptionsImpl options =
+ new AnalysisOptionsImpl.from(context.analysisOptions);
+ options.enableSuperMixins = true;
+ context.analysisOptions = options;
+ }
+ }
+ if (feature == AnalyzerOptions.enableGenericMethods) {
+ if (isTrue(value)) {
+ AnalysisOptionsImpl options =
+ new AnalysisOptionsImpl.from(context.analysisOptions);
+ options.enableGenericMethods = true;
+ context.analysisOptions = options;
+ }
+ }
+ }
+
void setLanguageOptions(AnalysisContext context, Object configs) {
if (configs is YamlMap) {
configs.nodes.forEach((k, v) {
- String feature;
if (k is YamlScalar && v is YamlScalar) {
- feature = k.value?.toString();
- if (feature == AnalyzerOptions.enableSuperMixins) {
- if (isTrue(v.value)) {
- AnalysisOptionsImpl options =
- new AnalysisOptionsImpl.from(context.analysisOptions);
- options.enableSuperMixins = true;
- context.analysisOptions = options;
- }
- }
- if (feature == AnalyzerOptions.enableGenericMethods) {
- if (isTrue(v.value)) {
- AnalysisOptionsImpl options =
- new AnalysisOptionsImpl.from(context.analysisOptions);
- options.enableGenericMethods = true;
- context.analysisOptions = options;
- }
- }
+ String feature = k.value?.toString();
+ setLanguageOption(context, feature, v.value);
}
});
+ } else if (configs is Map) {
+ configs.forEach((k, v) => setLanguageOption(context, k, v));
}
}
« no previous file with comments | « pkg/analysis_server/test/context_manager_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698