fixed PY-7864 Dostest: Statement expected: false positive for empty doctest

This commit is contained in:
Ekaterina Tuzova
2012-10-26 17:24:52 +04:00
parent d8a85181df
commit cbd86c9ccf
2 changed files with 7 additions and 5 deletions
@@ -42,21 +42,18 @@ public class PyDocstringLexer extends PythonIndentingLexer {
indent = 0;
while (getBaseTokenType() != null && ourIgnoreSet.contains(getBaseTokenType()))
advanceBase();
while (getBaseTokenType() != null && PyTokenTypes.WHITESPACE_OR_LINEBREAK.contains(getBaseTokenType())) {
while (getBaseTokenType() != null && PyTokenTypes.WHITESPACE.contains(getBaseTokenType())) {
if (getBaseTokenType() == PyTokenTypes.TAB) {
indent = ((indent / 8) + 1) * 8;
}
else if (getBaseTokenType() == PyTokenTypes.SPACE) {
indent++;
}
else if (getBaseTokenType() == PyTokenTypes.LINE_BREAK) {
indent = 0;
}
advanceBase();
}
if (getBaseTokenType() == null) {
return 0;
}
return indent - 1;
return indent > 0? indent - 1 : indent;
}
}
@@ -58,6 +58,11 @@ public class PyDocstringParsingContext extends ParsingContext {
IElementType type = myBuilder.getTokenType();
if (type == PyDocstringTokenTypes.WELCOME) { // >>> case
myBuilder.advanceLexer();
while (myBuilder.getTokenType() == PyTokenTypes.STATEMENT_BREAK || myBuilder.getTokenType() == PyDocstringTokenTypes.WELCOME) {
myBuilder.advanceLexer();
}
if (myBuilder.getTokenType() == PyTokenTypes.INDENT)
myBuilder.advanceLexer();
}
super.parseStatement(scope);
}