Find references

This commit is contained in:
Roberto Raggi
2009-08-07 13:02:36 +02:00
parent f6104255d7
commit 8848be4caa
13 changed files with 483 additions and 3 deletions

View File

@@ -203,7 +203,9 @@ ResolveExpression::ResolveExpression(const LookupContext &context)
: ASTVisitor(context.expressionDocument()->control()),
_context(context),
sem(_context.control())
{ }
{
_wantReferences = false;
}
ResolveExpression::~ResolveExpression()
{ }
@@ -235,6 +237,7 @@ void ResolveExpression::addResult(const FullySpecifiedType &ty, Symbol *symbol)
void ResolveExpression::addResult(const Result &r)
{
Result p = r;
if (! p.second)
p.second = _context.symbol();

View File

@@ -47,6 +47,21 @@ public:
ResolveExpression(const LookupContext &context);
virtual ~ResolveExpression();
bool wantReferences() const
{ return _wantReferences; }
void setWantReferences(bool onoff)
{ _wantReferences = onoff; }
void setDeclSymbol(Symbol *symbol)
{
references.clear();
_wantReferences = true;
_declSymbol = symbol;
}
QList<unsigned> references;
QList<Result> operator()(ExpressionAST *ast);
QList<Result> resolveMemberExpression(const QList<Result> &baseResults,
@@ -123,6 +138,8 @@ private:
LookupContext _context;
Semantic sem;
QList<Result> _results;
bool _wantReferences;
Symbol *_declSymbol;
};
class CPLUSPLUS_EXPORT ResolveClass