| 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 linter.src.rules; | 5 library linter.src.rules; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:linter/src/config.dart'; | 9 import 'package:linter/src/config.dart'; |
| 10 import 'package:linter/src/linter.dart'; | 10 import 'package:linter/src/linter.dart'; |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 import 'package:linter/src/rules/close_sinks.dart'; | 21 import 'package:linter/src/rules/close_sinks.dart'; |
| 22 import 'package:linter/src/rules/comment_references.dart'; | 22 import 'package:linter/src/rules/comment_references.dart'; |
| 23 import 'package:linter/src/rules/constant_identifier_names.dart'; | 23 import 'package:linter/src/rules/constant_identifier_names.dart'; |
| 24 import 'package:linter/src/rules/control_flow_in_finally.dart'; | 24 import 'package:linter/src/rules/control_flow_in_finally.dart'; |
| 25 import 'package:linter/src/rules/empty_catches.dart'; | 25 import 'package:linter/src/rules/empty_catches.dart'; |
| 26 import 'package:linter/src/rules/empty_constructor_bodies.dart'; | 26 import 'package:linter/src/rules/empty_constructor_bodies.dart'; |
| 27 import 'package:linter/src/rules/empty_statements.dart'; | 27 import 'package:linter/src/rules/empty_statements.dart'; |
| 28 import 'package:linter/src/rules/hash_and_equals.dart'; | 28 import 'package:linter/src/rules/hash_and_equals.dart'; |
| 29 import 'package:linter/src/rules/implementation_imports.dart'; | 29 import 'package:linter/src/rules/implementation_imports.dart'; |
| 30 import 'package:linter/src/rules/iterable_contains_unrelated_type.dart'; | 30 import 'package:linter/src/rules/iterable_contains_unrelated_type.dart'; |
| 31 import 'package:linter/src/rules/list_remove_unrelated_type.dart'; | |
| 32 import 'package:linter/src/rules/library_names.dart'; | 31 import 'package:linter/src/rules/library_names.dart'; |
| 33 import 'package:linter/src/rules/library_prefixes.dart'; | 32 import 'package:linter/src/rules/library_prefixes.dart'; |
| 33 import 'package:linter/src/rules/list_remove_unrelated_type.dart'; |
| 34 import 'package:linter/src/rules/non_constant_identifier_names.dart'; | 34 import 'package:linter/src/rules/non_constant_identifier_names.dart'; |
| 35 import 'package:linter/src/rules/one_member_abstracts.dart'; | 35 import 'package:linter/src/rules/one_member_abstracts.dart'; |
| 36 import 'package:linter/src/rules/only_throw_errors.dart'; | 36 import 'package:linter/src/rules/only_throw_errors.dart'; |
| 37 import 'package:linter/src/rules/overridden_fields.dart'; | 37 import 'package:linter/src/rules/overridden_fields.dart'; |
| 38 import 'package:linter/src/rules/package_api_docs.dart'; | 38 import 'package:linter/src/rules/package_api_docs.dart'; |
| 39 import 'package:linter/src/rules/package_prefixed_library_names.dart'; | 39 import 'package:linter/src/rules/package_prefixed_library_names.dart'; |
| 40 import 'package:linter/src/rules/prefer_is_not_empty.dart'; | 40 import 'package:linter/src/rules/prefer_is_not_empty.dart'; |
| 41 import 'package:linter/src/rules/pub/package_names.dart'; | 41 import 'package:linter/src/rules/pub/package_names.dart'; |
| 42 import 'package:linter/src/rules/public_member_api_docs.dart'; | 42 import 'package:linter/src/rules/public_member_api_docs.dart'; |
| 43 import 'package:linter/src/rules/slash_for_doc_comments.dart'; | 43 import 'package:linter/src/rules/slash_for_doc_comments.dart'; |
| 44 import 'package:linter/src/rules/sort_constructors_first.dart'; | 44 import 'package:linter/src/rules/sort_constructors_first.dart'; |
| 45 import 'package:linter/src/rules/sort_unnamed_constructors_first.dart'; | 45 import 'package:linter/src/rules/sort_unnamed_constructors_first.dart'; |
| 46 import 'package:linter/src/rules/super_goes_last.dart'; | 46 import 'package:linter/src/rules/super_goes_last.dart'; |
| 47 import 'package:linter/src/rules/test_types_in_equals.dart'; | 47 import 'package:linter/src/rules/test_types_in_equals.dart'; |
| 48 import 'package:linter/src/rules/throw_in_finally.dart'; | 48 import 'package:linter/src/rules/throw_in_finally.dart'; |
| 49 import 'package:linter/src/rules/type_annotate_public_apis.dart'; | 49 import 'package:linter/src/rules/type_annotate_public_apis.dart'; |
| 50 import 'package:linter/src/rules/type_init_formals.dart'; | 50 import 'package:linter/src/rules/type_init_formals.dart'; |
| 51 import 'package:linter/src/rules/unawaited_futures.dart'; | 51 import 'package:linter/src/rules/unawaited_futures.dart'; |
| 52 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart'; | 52 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart'; |
| 53 import 'package:linter/src/rules/unnecessary_getters_setters.dart'; | 53 import 'package:linter/src/rules/unnecessary_getters_setters.dart'; |
| 54 import 'package:linter/src/rules/unrelated_type_equality_checks.dart'; | 54 import 'package:linter/src/rules/unrelated_type_equality_checks.dart'; |
| 55 import 'package:linter/src/rules/whitespace_around_ops.dart'; |
| 55 | 56 |
| 56 final Registry ruleRegistry = new Registry() | 57 final Registry ruleRegistry = new Registry() |
| 57 ..register(new AlwaysDeclareReturnTypes()) | 58 ..register(new AlwaysDeclareReturnTypes()) |
| 58 ..register(new AlwaysSpecifyTypes()) | 59 ..register(new AlwaysSpecifyTypes()) |
| 59 ..register(new AnnotateOverrides()) | 60 ..register(new AnnotateOverrides()) |
| 60 ..register(new AvoidAs()) | 61 ..register(new AvoidAs()) |
| 61 ..register(new AvoidEmptyElse()) | 62 ..register(new AvoidEmptyElse()) |
| 62 ..register(new AvoidReturnTypesOnSetters()) | 63 ..register(new AvoidReturnTypesOnSetters()) |
| 63 ..register(new AvoidInitToNull()) | 64 ..register(new AvoidInitToNull()) |
| 64 ..register(new AwaitOnlyFutures()) | 65 ..register(new AwaitOnlyFutures()) |
| (...skipping 27 matching lines...) Expand all Loading... |
| 92 ..register(new SortConstructorsFirst()) | 93 ..register(new SortConstructorsFirst()) |
| 93 ..register(new SortUnnamedConstructorsFirst()) | 94 ..register(new SortUnnamedConstructorsFirst()) |
| 94 ..register(new SuperGoesLast()) | 95 ..register(new SuperGoesLast()) |
| 95 ..register(new TypeInitFormals()) | 96 ..register(new TypeInitFormals()) |
| 96 ..register(new TypeAnnotatePublicApis()) | 97 ..register(new TypeAnnotatePublicApis()) |
| 97 ..register(new UnawaitedFutures()) | 98 ..register(new UnawaitedFutures()) |
| 98 ..register(new UnnecessaryBraceInStringInterp()) | 99 ..register(new UnnecessaryBraceInStringInterp()) |
| 99 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35 | 100 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35 |
| 100 //..register(new UnnecessaryGetters()) | 101 //..register(new UnnecessaryGetters()) |
| 101 ..register(new UnnecessaryGettersSetters()) | 102 ..register(new UnnecessaryGettersSetters()) |
| 102 ..register(new UnrelatedTypeEqualityChecks()); | 103 ..register(new UnrelatedTypeEqualityChecks()) |
| 103 | 104 ..register(new WhitespaceAroundOps()); |
| 104 | 105 |
| 105 /// Registry of contributed lint rules. | 106 /// Registry of contributed lint rules. |
| 106 class Registry extends Object with IterableMixin<LintRule> { | 107 class Registry extends Object with IterableMixin<LintRule> { |
| 107 Map<String, LintRule> _ruleMap = <String, LintRule>{}; | 108 Map<String, LintRule> _ruleMap = <String, LintRule>{}; |
| 108 | 109 |
| 109 @override | 110 @override |
| 110 Iterator<LintRule> get iterator => _ruleMap.values.iterator; | 111 Iterator<LintRule> get iterator => _ruleMap.values.iterator; |
| 111 | 112 |
| 112 Iterable<LintRule> get rules => _ruleMap.values; | 113 Iterable<LintRule> get rules => _ruleMap.values; |
| 113 | 114 |
| 114 LintRule operator [](String key) => _ruleMap[key]; | 115 LintRule operator [](String key) => _ruleMap[key]; |
| 115 | 116 |
| 116 /// All lint rules explicitly enabled by the given [config]. | 117 /// All lint rules explicitly enabled by the given [config]. |
| 117 /// | 118 /// |
| 118 /// For example: | 119 /// For example: |
| 119 /// my_rule: true | 120 /// my_rule: true |
| 120 /// | 121 /// |
| 121 /// enables `my_rule`. | 122 /// enables `my_rule`. |
| 122 /// | 123 /// |
| 123 /// Unspecified rules are treated as disabled by default. | 124 /// Unspecified rules are treated as disabled by default. |
| 124 Iterable<LintRule> enabled(LintConfig config) => rules | 125 Iterable<LintRule> enabled(LintConfig config) => rules |
| 125 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name))); | 126 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name))); |
| 126 | 127 |
| 127 void register(LintRule rule) { | 128 void register(LintRule rule) { |
| 128 _ruleMap[rule.name] = rule; | 129 _ruleMap[rule.name] = rule; |
| 129 } | 130 } |
| 130 } | 131 } |
| OLD | NEW |