forked from qt-creator/qt-creator
		
	CPlusPlus: Avoid reversing results for call lookup
Task-number: QTCREATORBUG-5876 Change-Id: Ia94f4aa67af2b79862acd7869a3952f6a44932cb Reviewed-by: hjk <qthjk@ovi.com>
This commit is contained in:
		@@ -49,6 +49,7 @@
 | 
			
		||||
#include <QList>
 | 
			
		||||
#include <QDebug>
 | 
			
		||||
#include <QSet>
 | 
			
		||||
#include <map>
 | 
			
		||||
 | 
			
		||||
using namespace CPlusPlus;
 | 
			
		||||
 | 
			
		||||
@@ -630,7 +631,8 @@ bool ResolveExpression::visit(CallAST *ast)
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (_reference) {
 | 
			
		||||
        _results.clear();
 | 
			
		||||
        typedef std::multimap<int, LookupItem> LookupMap;
 | 
			
		||||
        LookupMap sortedResults;
 | 
			
		||||
        foreach (const LookupItem &base, baseResults) {
 | 
			
		||||
            if (Function *funTy = base.type()->asFunctionType()) {
 | 
			
		||||
                if (! maybeValidPrototype(funTy, actualArgumentCount))
 | 
			
		||||
@@ -655,13 +657,13 @@ bool ResolveExpression::visit(CallAST *ast)
 | 
			
		||||
                        ++score;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if (score)
 | 
			
		||||
                    _results.prepend(base);
 | 
			
		||||
                else
 | 
			
		||||
                    _results.append(base);
 | 
			
		||||
                sortedResults.insert(LookupMap::value_type(-score, base));
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        _results.clear();
 | 
			
		||||
        for (LookupMap::const_iterator it = sortedResults.begin(); it != sortedResults.end(); ++it)
 | 
			
		||||
            _results.append(it->second);
 | 
			
		||||
        if (_results.isEmpty())
 | 
			
		||||
            _results = baseResults;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user