aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/tools/skylark
diff options
context:
space:
mode:
authorGravatar laurentlb <laurentlb@google.com>2018-03-07 12:40:50 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-07 12:43:05 -0800
commit3068c0ed7eae3e1ff29ddd32d23def0bdfd42548 (patch)
tree5a2a18543d652e095deb7a9b98fcb9f42a2bfe5e /src/tools/skylark
parente2cf7aa47e3b0504a85fd5e5fc8586f923777aaf (diff)
Skylint: Warn for the '/' operator (instead of '//').
RELNOTES: None. PiperOrigin-RevId: 188217409
Diffstat (limited to 'src/tools/skylark')
-rw-r--r--src/tools/skylark/java/com/google/devtools/skylark/skylint/BadOperationChecker.java8
-rw-r--r--src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BadOperationCheckerTest.java7
2 files changed, 15 insertions, 0 deletions
diff --git a/src/tools/skylark/java/com/google/devtools/skylark/skylint/BadOperationChecker.java b/src/tools/skylark/java/com/google/devtools/skylark/skylint/BadOperationChecker.java
index 65922b54e2..09df8ff7fe 100644
--- a/src/tools/skylark/java/com/google/devtools/skylark/skylint/BadOperationChecker.java
+++ b/src/tools/skylark/java/com/google/devtools/skylark/skylint/BadOperationChecker.java
@@ -39,6 +39,7 @@ public class BadOperationChecker extends AstVisitorWithNameResolution {
private static final String DEPRECATED_PLUS_DEPSET_CATEGORY = "deprecated-plus-depset";
private static final String DEPRECATED_PLUS_DICT_CATEGORY = "deprecated-plus-dict";
private static final String DEPRECATED_PIPE_CATEGORY = "deprecated-pipe-dict";
+ private static final String DEPRECATED_DIVISION_CATEGORY = "deprecated-division";
private final List<Issue> issues = new ArrayList<>();
@@ -123,6 +124,13 @@ public class BadOperationChecker extends AstVisitorWithNameResolution {
+ "See https://docs.bazel.build/versions/master/skylark/depsets.html "
+ "for the recommended use of depsets.",
node.getLocation()));
+ } else if (node.getOperator() == Operator.DIVIDE) {
+ issues.add(
+ Issue.create(
+ DEPRECATED_DIVISION_CATEGORY,
+ "'/' operator is deprecated and should not be used. "
+ + "Use '//' instead (like in Python for floor division).",
+ node.getLocation()));
}
}
diff --git a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BadOperationCheckerTest.java b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BadOperationCheckerTest.java
index 834b0e0e22..27c1063147 100644
--- a/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BadOperationCheckerTest.java
+++ b/src/tools/skylark/javatests/com/google/devtools/skylark/skylint/BadOperationCheckerTest.java
@@ -145,4 +145,11 @@ public class BadOperationCheckerTest {
Truth.assertThat(findIssues("foo + bar")).isEmpty();
Truth.assertThat(findIssues("foo += bar")).isEmpty();
}
+
+ @Test
+ public void divisionOperator() {
+ Truth.assertThat(findIssues("5 / 2").toString())
+ .contains("1:1-1:5: '/' operator is deprecated");
+ Truth.assertThat(findIssues("5 // 2")).isEmpty();
+ }
}