forked from qt-creator/qt-creator
		
	Search for possible forward classes.
This commit is contained in:
		@@ -164,12 +164,20 @@ protected:
 | 
			
		||||
        if (! symbol)
 | 
			
		||||
            return false;
 | 
			
		||||
 | 
			
		||||
        else if (symbol == _declSymbol)
 | 
			
		||||
        else if (symbol == _declSymbol) {
 | 
			
		||||
            return true;
 | 
			
		||||
 | 
			
		||||
        else if (symbol->line() == _declSymbol->line() && symbol->column() == _declSymbol->column()) {
 | 
			
		||||
        } else if (symbol->line() == _declSymbol->line() && symbol->column() == _declSymbol->column()) {
 | 
			
		||||
            if (! qstrcmp(symbol->fileName(), _declSymbol->fileName()))
 | 
			
		||||
                return true;
 | 
			
		||||
 | 
			
		||||
        } else if (symbol->isForwardClassDeclaration() && (_declSymbol->isClass() ||
 | 
			
		||||
                                                           _declSymbol->isForwardClassDeclaration())) {
 | 
			
		||||
            return true;
 | 
			
		||||
 | 
			
		||||
        } else if (_declSymbol->isForwardClassDeclaration() && (symbol->isClass() ||
 | 
			
		||||
                                                                symbol->isForwardClassDeclaration())) {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return false;
 | 
			
		||||
@@ -467,7 +475,21 @@ static void find_helper(QFutureInterface<Utils::FileSearchResult> &future,
 | 
			
		||||
    const QString sourceFile = QString::fromUtf8(symbol->fileName(), symbol->fileNameLength());
 | 
			
		||||
 | 
			
		||||
    QStringList files(sourceFile);
 | 
			
		||||
    files += snapshot.dependsOn(sourceFile);
 | 
			
		||||
 | 
			
		||||
    if (symbol->isClass() || symbol->isForwardClassDeclaration()) {
 | 
			
		||||
        foreach (const Document::Ptr &doc, snapshot) {
 | 
			
		||||
            if (doc->fileName() == sourceFile)
 | 
			
		||||
                continue;
 | 
			
		||||
 | 
			
		||||
            Control *control = doc->control();
 | 
			
		||||
 | 
			
		||||
            if (control->findIdentifier(symbolId->chars(), symbolId->size()))
 | 
			
		||||
                files.append(doc->fileName());
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        files += snapshot.dependsOn(sourceFile);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    qDebug() << "done in:" << tm.elapsed() << "number of files to parse:" << files.size();
 | 
			
		||||
 | 
			
		||||
    future.setProgressRange(0, files.size());
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user