[cs] CPD: Fix for issue where statements following a using directive were ignored.

This commit is contained in:
Maikel Steneker
2020-03-06 12:12:34 +01:00
parent 90f286a4a1
commit d8e04ecc11
2 changed files with 18 additions and 3 deletions

View File

@ -41,9 +41,9 @@ public abstract class BaseTokenFilter<T extends GenericToken> implements TokenFi
currentToken = null;
if (!unprocessedTokens.isEmpty()) {
currentToken = unprocessedTokens.poll();
return currentToken;
}
} else {
currentToken = (T) tokenManager.getNextToken();
}
while (!shouldStopProcessing(currentToken)) {
analyzeToken(currentToken);
analyzeTokens(currentToken, remainingTokens);
@ -53,8 +53,12 @@ public abstract class BaseTokenFilter<T extends GenericToken> implements TokenFi
return currentToken;
}
if (!unprocessedTokens.isEmpty()) {
currentToken = unprocessedTokens.poll();
} else {
currentToken = (T) tokenManager.getNextToken();
}
}
return null;
}

View File

@ -125,6 +125,17 @@ public class CsTokenizerTest {
assertEquals(TokenEntry.EOF, tokens.getTokens().get(0));
}
@Test
public void testStatementsAfterUsingDirectivesAreNotIgnored() {
tokenizer.setIgnoreUsings(true);
tokenizer.tokenize(toSourceCode(
"using System;\n"
+ "public class MyClass {\n"
+ "}\n"),
tokens);
assertEquals(6, tokens.size());
}
@Test
public void testUsingStatementsAreNotIgnored() {
tokenizer.setIgnoreUsings(true);