aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/skylark
diff options
context:
space:
mode:
authorGravatar fzaiser <fzaiser@google.com>2017-10-23 16:28:24 +0200
committerGravatar Dmitry Lomov <dslomov@google.com>2017-10-23 17:16:24 +0200
commita4fa14293026a9522226c4e7398c94c0f7dda246 (patch)
tree290b95717ad81f1fda2fa8c776e9d1e514222ca2 /src/tools/skylark
parent1a27c9f03381047ff378e43eb6085c028ba10dc3 (diff)
Skylint: check provider names for the suffix "Info"
RELNOTES: none PiperOrigin-RevId: 173113056
Diffstat (limited to 'src/tools/skylark')
-rw-r--r--src/tools/skylark/java/com/google/devtools/skylark/skylint/NamingConventionsChecker.java9
-rw-r--r--src/tools/skylark/javatests/com/google/devtools/skylark/skylint/NamingConventionsCheckerTest.java8
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);