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

Side by Side Diff: lib/src/rules.dart

Issue 1407283008: Verify type annotations on public APIs (#24). (Closed) Base URL: https://github.com/dart-lang/linter.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 unified diff | Download patch
« no previous file with comments | « lib/src/ast.dart ('k') | lib/src/rules/type_annotate_public_apis.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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';
11 import 'package:linter/src/rules/always_declare_return_types.dart'; 11 import 'package:linter/src/rules/always_declare_return_types.dart';
12 import 'package:linter/src/rules/always_specify_types.dart'; 12 import 'package:linter/src/rules/always_specify_types.dart';
13 import 'package:linter/src/rules/camel_case_types.dart'; 13 import 'package:linter/src/rules/camel_case_types.dart';
14 import 'package:linter/src/rules/constant_identifier_names.dart'; 14 import 'package:linter/src/rules/constant_identifier_names.dart';
15 import 'package:linter/src/rules/empty_constructor_bodies.dart'; 15 import 'package:linter/src/rules/empty_constructor_bodies.dart';
16 import 'package:linter/src/rules/implementation_imports.dart'; 16 import 'package:linter/src/rules/implementation_imports.dart';
17 import 'package:linter/src/rules/library_names.dart'; 17 import 'package:linter/src/rules/library_names.dart';
18 import 'package:linter/src/rules/library_prefixes.dart'; 18 import 'package:linter/src/rules/library_prefixes.dart';
19 import 'package:linter/src/rules/non_constant_identifier_names.dart'; 19 import 'package:linter/src/rules/non_constant_identifier_names.dart';
20 import 'package:linter/src/rules/one_member_abstracts.dart'; 20 import 'package:linter/src/rules/one_member_abstracts.dart';
21 import 'package:linter/src/rules/package_api_docs.dart'; 21 import 'package:linter/src/rules/package_api_docs.dart';
22 import 'package:linter/src/rules/package_prefixed_library_names.dart'; 22 import 'package:linter/src/rules/package_prefixed_library_names.dart';
23 import 'package:linter/src/rules/prefer_is_not_empty.dart'; 23 import 'package:linter/src/rules/prefer_is_not_empty.dart';
24 import 'package:linter/src/rules/pub/package_names.dart'; 24 import 'package:linter/src/rules/pub/package_names.dart';
25 import 'package:linter/src/rules/slash_for_doc_comments.dart'; 25 import 'package:linter/src/rules/slash_for_doc_comments.dart';
26 import 'package:linter/src/rules/super_goes_last.dart'; 26 import 'package:linter/src/rules/super_goes_last.dart';
27 import 'package:linter/src/rules/type_annotate_public_apis.dart';
27 import 'package:linter/src/rules/type_init_formals.dart'; 28 import 'package:linter/src/rules/type_init_formals.dart';
28 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart'; 29 import 'package:linter/src/rules/unnecessary_brace_in_string_interp.dart';
29 import 'package:linter/src/rules/unnecessary_getters_setters.dart'; 30 import 'package:linter/src/rules/unnecessary_getters_setters.dart';
30 31
31 final Registry ruleRegistry = new Registry() 32 final Registry ruleRegistry = new Registry()
32 ..register(new AlwaysDeclareReturnTypes()) 33 ..register(new AlwaysDeclareReturnTypes())
33 ..register(new AlwaysSpecifyTypes()) 34 ..register(new AlwaysSpecifyTypes())
34 ..register(new CamelCaseTypes()) 35 ..register(new CamelCaseTypes())
35 ..register(new ConstantIdentifierNames()) 36 ..register(new ConstantIdentifierNames())
36 ..register(new EmptyConstructorBodies()) 37 ..register(new EmptyConstructorBodies())
37 ..register(new ImplementationImports()) 38 ..register(new ImplementationImports())
38 ..register(new LibraryNames()) 39 ..register(new LibraryNames())
39 ..register(new LibraryPrefixes()) 40 ..register(new LibraryPrefixes())
40 ..register(new NonConstantIdentifierNames()) 41 ..register(new NonConstantIdentifierNames())
41 ..register(new PreferIsNotEmpty()) 42 ..register(new PreferIsNotEmpty())
42 ..register(new OneMemberAbstracts()) 43 ..register(new OneMemberAbstracts())
43 ..register(new PackageApiDocs()) 44 ..register(new PackageApiDocs())
44 ..register(new PackagePrefixedLibraryNames()) 45 ..register(new PackagePrefixedLibraryNames())
45 ..register(new PubPackageNames()) 46 ..register(new PubPackageNames())
46 ..register(new SlashForDocComments()) 47 ..register(new SlashForDocComments())
47 ..register(new SuperGoesLast()) 48 ..register(new SuperGoesLast())
48 ..register(new TypeInitFormals()) 49 ..register(new TypeInitFormals())
50 ..register(new TypeAnnotatePublicApis())
49 ..register(new UnnecessaryBraceInStringInterp()) 51 ..register(new UnnecessaryBraceInStringInterp())
50 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35 52 // Disabled pending fix: https://github.com/dart-lang/linter/issues/35
51 //..register(new UnnecessaryGetters()) 53 //..register(new UnnecessaryGetters())
52 ..register(new UnnecessaryGettersSetters()); 54 ..register(new UnnecessaryGettersSetters());
53 55
54 /// Registry of contributed lint rules. 56 /// Registry of contributed lint rules.
55 class Registry extends Object with IterableMixin<LintRule> { 57 class Registry extends Object with IterableMixin<LintRule> {
56 Map<String, LintRule> _ruleMap = <String, LintRule>{}; 58 Map<String, LintRule> _ruleMap = <String, LintRule>{};
57 59
58 @override 60 @override
59 Iterator<LintRule> get iterator => _ruleMap.values.iterator; 61 Iterator<LintRule> get iterator => _ruleMap.values.iterator;
60 62
61 Iterable<LintRule> get rules => _ruleMap.values; 63 Iterable<LintRule> get rules => _ruleMap.values;
62 64
63 LintRule operator [](String key) => _ruleMap[key]; 65 LintRule operator [](String key) => _ruleMap[key];
64 66
65 /// All lint rules explicitly enabled by the given [config]. 67 /// All lint rules explicitly enabled by the given [config].
66 /// 68 ///
67 /// For example: 69 /// For example:
68 /// my_rule: true 70 /// my_rule: true
69 /// 71 ///
70 /// enables `my_rule`. 72 /// enables `my_rule`.
71 /// 73 ///
72 /// Unspecified rules are treated as disabled by default. 74 /// Unspecified rules are treated as disabled by default.
73 Iterable<LintRule> enabled(LintConfig config) => rules 75 Iterable<LintRule> enabled(LintConfig config) => rules
74 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name))); 76 .where((rule) => config.ruleConfigs.any((rc) => rc.enables(rule.name)));
75 77
76 void register(LintRule rule) { 78 void register(LintRule rule) {
77 _ruleMap[rule.name] = rule; 79 _ruleMap[rule.name] = rule;
78 } 80 }
79 } 81 }
OLDNEW
« no previous file with comments | « lib/src/ast.dart ('k') | lib/src/rules/type_annotate_public_apis.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698