Skylark: Allow list slices
--
MOS_MIGRATED_REVID=88727892
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index c31d434..41fe332 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -247,7 +247,7 @@
@Override
public String toString() {
- if (func.getName().equals("$substring")) {
+ if (func.getName().equals("$slice")) {
return obj + "[" + args.get(0) + ":" + args.get(1) + "]";
}
if (func.getName().equals("$index")) {
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
index 45eae4c..68a4425 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Parser.java
@@ -697,7 +697,7 @@
return makeFuncallExpression(receiver, new Ident("$index"), args,
start, token.right);
}
- // This is a substring
+ // This is a slice (or substring)
expect(TokenKind.COLON);
int loc2 = token.left;
if (token.kind == TokenKind.RBRACKET) {
@@ -708,7 +708,7 @@
expect(TokenKind.RBRACKET);
args.add(setLocation(new Argument.Positional(endExpr), loc2, endExpr));
- return makeFuncallExpression(receiver, new Ident("$substring"), args,
+ return makeFuncallExpression(receiver, new Ident("$slice"), args,
start, token.right);
}