Ilya created LUCENENET-557:
------------------------------

             Summary: Suspicious code found by PVS-Studio
                 Key: LUCENENET-557
                 URL: https://issues.apache.org/jira/browse/LUCENENET-557
             Project: Lucene.Net
          Issue Type: Bug
          Components: Lucene.Net Contrib
    Affects Versions: Lucene.Net 3.0.3
            Reporter: Ilya


I have found several issues by analyzing Lucene.Net with PVS-Studio static 
analyzer.

1. V3035 Consider inspecting the 'substCount =+ 2' expression. Probably '+=' 
should be used here. Contrib.Analyzers GermanStemmer.cs 224

2. V3020 An unconditional 'return' within a loop. Contrib.Analyzers 
NGramTokenFilter.cs 109
Possible if statement should be used here instead of while
while (curPos + curGramSize <= curTermLength)
{     // while there is input
    ClearAttributes();
    termAtt.SetTermBuffer(curTermBuffer, curPos, curGramSize);
    offsetAtt.SetOffset(tokStart + curPos, tokStart + curPos + curGramSize);
    curPos++;
    return true;
}

3. V3021 There are two 'if' statements with identical conditional expressions. 
The first 'if' statement contains method return. This means that the second 
'if' statement is senseless Contrib.Analyzers BrazilianStemmer.cs 1153
if (suffix(RV, "iu"))
{
    CT = removeSuffix(CT, "iu"); return true;
}
if (suffix(RV, "iu"))
{
    CT = removeSuffix(CT, "iu"); return true;
}

4. V3022 Expression 'side == null' is always false. Contrib.Analyzers 
EdgeNGramTokenizer.cs 147
Because side is a enum

5. V3029 The conditional expressions of the 'if' operators situated alongside 
each other are identical. Check lines: 517, 523. Lucene.Net 
QueryParserTokenManager.cs 517
Maybe JjCanMove_1 should be used here?



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to