aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Lexer.java3
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java6
2 files changed, 8 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
index 15283f8a71..e5805f5bc0 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Lexer.java
@@ -252,7 +252,8 @@ public final class Lexer {
} else if (c == '\r') {
pos++;
} else if (c == '\t') {
- indentLen += 8 - indentLen % 8;
+ error("Tabulations are not allowed for identation. Use spaces instead.");
+ indentLen++;
pos++;
} else if (c == '\n') { // entirely blank line: discard
indentLen = 0;
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java b/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java
index 0fd91df959..0417074abc 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java
@@ -356,6 +356,12 @@ public class LexerTest {
}
@Test
+ public void testIndentationWithTab() throws Exception {
+ tokens("def x():\n\tpass");
+ assertThat(lastError.toString()).contains("Tabulations are not allowed");
+ }
+
+ @Test
public void testIndentationWithCrLf() throws Exception {
assertThat(values(tokens("1\r\n 2\r\n")))
.isEqualTo("INT(1) NEWLINE INDENT INT(2) NEWLINE OUTDENT NEWLINE EOF");