mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-07-23 08:55:25 +02:00
Endless loop in content-assist, bug 280934
This commit is contained in:
parent
896b8661e0
commit
5bbbd7720b
2 changed files with 13 additions and 6 deletions
|
@ -161,5 +161,11 @@ public class BasicCompletionTest extends CompletionTestBase {
|
|||
checkCompletion(code, true, expected);
|
||||
checkCompletion(code, false, expected);
|
||||
}
|
||||
|
||||
|
||||
// template <t
|
||||
public void testBug280934() throws Exception {
|
||||
String code = getAboveComment();
|
||||
String[] expected= {};
|
||||
checkCompletion(code, true, expected);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1471,12 +1471,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
|
|||
List<ICPPASTTemplateParameter> returnValue = new ArrayList<ICPPASTTemplateParameter>(DEFAULT_PARM_LIST_SIZE);
|
||||
|
||||
for (;;) {
|
||||
if (LT(1) == IToken.tGT)
|
||||
final int lt1= LT(1);
|
||||
if (lt1 == IToken.tGT || lt1 == IToken.tEOC)
|
||||
return returnValue;
|
||||
if (LT(1) == IToken.t_class || LT(1) == IToken.t_typename) {
|
||||
if (lt1 == IToken.t_class || lt1 == IToken.t_typename) {
|
||||
IToken startingToken = LA(1);
|
||||
int lastOffset = 0;
|
||||
int type = (LT(1) == IToken.t_class ? ICPPASTSimpleTypeTemplateParameter.st_class
|
||||
int type = (lt1 == IToken.t_class ? ICPPASTSimpleTypeTemplateParameter.st_class
|
||||
: ICPPASTSimpleTypeTemplateParameter.st_typename);
|
||||
lastOffset = consume().getEndOffset();
|
||||
IASTName identifierName = null;
|
||||
|
@ -1500,7 +1501,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
|
|||
((ASTNode) parm).setOffsetAndLength(startingToken.getOffset(), lastOffset - startingToken.getOffset());
|
||||
returnValue.add(parm);
|
||||
|
||||
} else if (LT(1) == IToken.t_template) {
|
||||
} else if (lt1 == IToken.t_template) {
|
||||
IToken firstToken = consume();
|
||||
consume(IToken.tLT);
|
||||
|
||||
|
@ -1530,7 +1531,7 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
|
|||
}
|
||||
returnValue.add(parm);
|
||||
|
||||
} else if (LT(1) == IToken.tCOMMA) {
|
||||
} else if (lt1 == IToken.tCOMMA) {
|
||||
consume();
|
||||
continue;
|
||||
} else {
|
||||
|
|
Loading…
Add table
Reference in a new issue