diff options
author | Andrew Niefer | 2004-05-25 18:42:30 +0000 |
---|---|---|
committer | Andrew Niefer | 2004-05-25 18:42:30 +0000 |
commit | c0ba9bebfcd622ebacbf771a90bafb3101d5d010 (patch) | |
tree | 31ca8b7720070c942b747f814e644e99125ab8a7 | |
parent | 4e4b2fc233cdc56c61cf5669df4b09b8cab35864 (diff) | |
download | org.eclipse.cdt-c0ba9bebfcd622ebacbf771a90bafb3101d5d010.tar.gz org.eclipse.cdt-c0ba9bebfcd622ebacbf771a90bafb3101d5d010.tar.xz org.eclipse.cdt-c0ba9bebfcd622ebacbf771a90bafb3101d5d010.zip |
fixing bug 62359 [Content Assist] failure on iostream in Linux
- fix problem during errorhandling
- fix operator function names
- fix NPE during template argument deduction
3 files changed, 8 insertions, 5 deletions
diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java index aeba542800b..27fc3075525 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java @@ -197,8 +197,8 @@ public abstract class Parser extends ExpressionParser implements IParser protected void errorHandling() throws EndOfFileException { failParse(); - consume(); - int depth = 0; + int depth = ( LT(1) == IToken.tLBRACE ) ? 1 : 0; + consume(); while (!((LT(1) == IToken.tSEMI && depth == 0) || (LT(1) == IToken.tRBRACE && depth == 1))) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java index de5141f68eb..6dbf9014e3e 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java @@ -2056,7 +2056,7 @@ public class CompleteParseASTFactory extends BaseASTFactory implements IASTFacto } } - IParameterizedSymbol symbol = pst.newParameterizedSymbol( name.getFirstToken().getImage(), TypeInfo.t_function ); + IParameterizedSymbol symbol = pst.newParameterizedSymbol( name.extractNameFromTemplateId(), TypeInfo.t_function ); setFunctionTypeInfoBits(isInline, isFriend, isStatic, symbol); symbol.setHasVariableArgs( hasVariableArguments ); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/TemplateEngine.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/TemplateEngine.java index 9f5148080ec..f15295b804f 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/TemplateEngine.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/TemplateEngine.java @@ -366,8 +366,11 @@ public final class TemplateEngine { return deferred.getArguments(); } ISymbol instantiated = symbol.getInstantiatedSymbol(); - ITemplateSymbol template = (ITemplateSymbol) instantiated.getContainingSymbol(); - return template.findArgumentsFor( (IContainerSymbol) symbol ); + if( instantiated != null ){ + ITemplateSymbol template = (ITemplateSymbol) instantiated.getContainingSymbol(); + return template.findArgumentsFor( (IContainerSymbol) symbol ); + } + return null; } /** |