mirror of
https://github.com/eclipse-cdt/cdt
synced 2025-06-07 01:36:01 +02:00
[99426] Fixed completion of declSpecs in function parameters.
This commit is contained in:
parent
e1abf3b487
commit
58615beb77
3 changed files with 16 additions and 8 deletions
|
@ -1946,6 +1946,7 @@ public class GNUCSourceParser extends AbstractGNUSourceCodeParser {
|
||||||
parameterDeclarationLoop: for (;;) {
|
parameterDeclarationLoop: for (;;) {
|
||||||
switch (LT(1)) {
|
switch (LT(1)) {
|
||||||
case IToken.tRPAREN:
|
case IToken.tRPAREN:
|
||||||
|
case IToken.tEOC:
|
||||||
last = consume();
|
last = consume();
|
||||||
finalOffset = last.getEndOffset();
|
finalOffset = last.getEndOffset();
|
||||||
break parameterDeclarationLoop;
|
break parameterDeclarationLoop;
|
||||||
|
|
|
@ -1425,13 +1425,15 @@ public class CPPSemantics {
|
||||||
else if( node instanceof IASTParameterDeclaration ){
|
else if( node instanceof IASTParameterDeclaration ){
|
||||||
IASTParameterDeclaration parameterDeclaration = (IASTParameterDeclaration) node;
|
IASTParameterDeclaration parameterDeclaration = (IASTParameterDeclaration) node;
|
||||||
IASTDeclarator dtor = parameterDeclaration.getDeclarator();
|
IASTDeclarator dtor = parameterDeclaration.getDeclarator();
|
||||||
while( dtor.getNestedDeclarator() != null )
|
if (dtor != null) { // could be null when content assist in the declSpec
|
||||||
dtor = dtor.getNestedDeclarator();
|
while( dtor.getNestedDeclarator() != null )
|
||||||
IASTName declName = dtor.getName();
|
dtor = dtor.getNestedDeclarator();
|
||||||
scope.addName( declName );
|
IASTName declName = dtor.getName();
|
||||||
if( !data.typesOnly && nameMatches( data, declName ) ) {
|
scope.addName( declName );
|
||||||
return declName;
|
if( !data.typesOnly && nameMatches( data, declName ) ) {
|
||||||
}
|
return declName;
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if( node instanceof ICPPASTTemplateParameter ){
|
} else if( node instanceof ICPPASTTemplateParameter ){
|
||||||
IASTName name = CPPTemplates.getTemplateParameterName( (ICPPASTTemplateParameter) node );
|
IASTName name = CPPTemplates.getTemplateParameterName( (ICPPASTTemplateParameter) node );
|
||||||
scope.addName( name );
|
scope.addName( name );
|
||||||
|
|
|
@ -3114,8 +3114,13 @@ public class GNUCPPSourceParser extends AbstractGNUSourceCodeParser {
|
||||||
throwBacktrack( e.currToken );
|
throwBacktrack( e.currToken );
|
||||||
}
|
}
|
||||||
IASTDeclarator declarator = null;
|
IASTDeclarator declarator = null;
|
||||||
if (LT(1) != IToken.tSEMI)
|
switch (LT(1)) {
|
||||||
|
case IToken.tSEMI:
|
||||||
|
case IToken.tEOC:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
declarator = initDeclarator(SimpleDeclarationStrategy.TRY_FUNCTION);
|
declarator = initDeclarator(SimpleDeclarationStrategy.TRY_FUNCTION);
|
||||||
|
}
|
||||||
|
|
||||||
if (current == LA(1)) {
|
if (current == LA(1)) {
|
||||||
throwBacktrack(current.getOffset(), figureEndOffset(declSpec,
|
throwBacktrack(current.getOffset(), figureEndOffset(declSpec,
|
||||||
|
|
Loading…
Add table
Reference in a new issue