Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndrew Niefer2004-05-25 18:42:30 +0000
committerAndrew Niefer2004-05-25 18:42:30 +0000
commitc0ba9bebfcd622ebacbf771a90bafb3101d5d010 (patch)
tree31ca8b7720070c942b747f814e644e99125ab8a7
parent4e4b2fc233cdc56c61cf5669df4b09b8cab35864 (diff)
downloadorg.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
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/Parser.java4
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/ast/complete/CompleteParseASTFactory.java2
-rw-r--r--core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/parser/pst/TemplateEngine.java7
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;
}
/**

Back to the top