Don't insert `(' when completing ambiguous symbols.

This commit is contained in:
Roberto Raggi
2009-03-17 14:46:35 +01:00
parent 937340cc5f
commit 437bbd00e5
4 changed files with 12 additions and 1 deletions

View File

@@ -157,6 +157,7 @@ bool CheckDeclarator::visit(NestedDeclaratorAST *ast)
bool CheckDeclarator::visit(FunctionDeclaratorAST *ast)
{
Function *fun = control()->newFunction(ast->firstToken());
fun->setAmbiguous(ast->as_cpp_initializer != 0);
ast->symbol = fun;
fun->setReturnType(_fullySpecifiedType);

View File

@@ -255,6 +255,12 @@ bool Function::isPureVirtual() const
void Function::setPureVirtual(bool isPureVirtual)
{ _isPureVirtual = isPureVirtual; }
bool Function::isAmbiguous() const
{ return _isAmbiguous; }
void Function::setAmbiguous(bool isAmbiguous)
{ _isAmbiguous = isAmbiguous; }
void Function::visitSymbol0(SymbolVisitor *visitor)
{
if (visitor->visit(this)) {

View File

@@ -322,6 +322,9 @@ public:
virtual Function *asFunctionType()
{ return this; }
bool isAmbiguous() const; // internal
void setAmbiguous(bool isAmbiguous); // internal
protected:
virtual void visitSymbol0(SymbolVisitor *visitor);
virtual void accept0(TypeVisitor *visitor);
@@ -337,6 +340,7 @@ private:
unsigned _isPureVirtual: 1;
unsigned _isConst: 1;
unsigned _isVolatile: 1;
unsigned _isAmbiguous: 1;
unsigned _methodKey: 3;
};
};