diff options
author | fzaiser <fzaiser@google.com> | 2017-10-23 16:28:24 +0200 |
---|---|---|
committer | Dmitry Lomov <dslomov@google.com> | 2017-10-23 17:16:24 +0200 |
commit | a4fa14293026a9522226c4e7398c94c0f7dda246 (patch) | |
tree | 290b95717ad81f1fda2fa8c776e9d1e514222ca2 | |
parent | 1a27c9f03381047ff378e43eb6085c028ba10dc3 (diff) |
Skylint: check provider names for the suffix "Info"
RELNOTES: none
PiperOrigin-RevId: 173113056
2 files changed, 16 insertions, 1 deletions
diff --git a/src/tools/skylark/java/com/google/devtools/skylark/skylint/NamingConventionsChecker.java b/src/tools/skylark/java/com/google/devtools/skylark/skylint/NamingConventionsChecker.java index 92bda52ec6..dbfff17c60 100644 --- a/src/tools/skylark/java/com/google/devtools/skylark/skylint/NamingConventionsChecker.java +++ b/src/tools/skylark/java/com/google/devtools/skylark/skylint/NamingConventionsChecker.java @@ -47,6 +47,7 @@ import java.util.List; // TODO(skylark-team): Check that UPPERCASE_VARIABLES are never mutated public class NamingConventionsChecker extends AstVisitorWithNameResolution { private static final String NAME_WITH_WRONG_CASE_CATEGORY = "name-with-wrong-case"; + private static final String PROVIDER_NAME_ENDS_IN_INFO_CATEGORY = "provider-name-suffix"; private static final String CONFUSING_NAME_CATEGORY = "confusing-name"; private static final ImmutableList<String> CONFUSING_NAMES = ImmutableList.of("O", "I", "l"); private static final ImmutableSet<String> BUILTIN_NAMES; @@ -115,6 +116,14 @@ public class NamingConventionsChecker extends AstVisitorWithNameResolution { "provider name '" + name + "' should be UpperCamelCase", location)); } + if (!name.endsWith("Info")) { + issues.add( + Issue.create( + PROVIDER_NAME_ENDS_IN_INFO_CATEGORY, + "provider name '" + name + "' should end in the suffix 'Info'", + location) + ); + } } private void checkNameNotConfusing(String name, Location location) { diff --git a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/NamingConventionsCheckerTest.java b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/NamingConventionsCheckerTest.java index 6361705c29..f152d838af 100644 --- a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/NamingConventionsCheckerTest.java +++ b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/NamingConventionsCheckerTest.java @@ -106,12 +106,18 @@ public class NamingConventionsCheckerTest { @Test public void testProviderNameMustBeCamelCase() throws Exception { - Truth.assertThat(findIssues("FooBar = provider()")).isEmpty(); + Truth.assertThat(findIssues("FooBarInfo = provider()")).isEmpty(); Truth.assertThat(findIssues("foo_bar = provider()").toString()) .contains("provider name 'foo_bar' should be UpperCamelCase [name-with-wrong-case]"); } @Test + public void testProviderNameMustEndInInfo() throws Exception { + Truth.assertThat(findIssues("FooBar = provider()").toString()) + .contains("provider name 'FooBar' should end in the suffix 'Info' [provider-name-suffix]"); + } + + @Test public void testNoDuplicates() throws Exception { Truth.assertThat(findIssues("def foo():", " badName = 1", " badName += 1")).hasSize(1); Truth.assertThat(findIssues("def foo():", " Bad = 1", " [[] for Bad in []]")).hasSize(2); |