diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/Lexer.java | 3 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/syntax/LexerTest.java | 6 |
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"); |