forked from qt-creator/qt-creator
		
	C++: Record also unresolved paths for includes
Change-Id: Id107b6c1f34f594c5a01502c156963c964235ed7 Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
This commit is contained in:
		
				
					committed by
					
						
						Erik Verbruggen
					
				
			
			
				
	
			
			
			
						parent
						
							35a790fb63
						
					
				
				
					commit
					e3bc84c414
				
			@@ -100,7 +100,7 @@ protected:
 | 
			
		||||
            processed->insert(doc->globalNamespace());
 | 
			
		||||
 | 
			
		||||
            foreach (const Document::Include &i, doc->includes())
 | 
			
		||||
                process(_snapshot.document(i.fileName()), processed);
 | 
			
		||||
                process(_snapshot.document(i.resolvedFileName()), processed);
 | 
			
		||||
 | 
			
		||||
            _mainDocument = (doc == _doc); // ### improve
 | 
			
		||||
            accept(doc->globalNamespace());
 | 
			
		||||
 
 | 
			
		||||
@@ -439,7 +439,8 @@ void CppToolsPlugin::test_codegen_definition_first_member()
 | 
			
		||||
    QCOMPARE(src->globalSymbolCount(), 1U);
 | 
			
		||||
 | 
			
		||||
    Document::Ptr dst = Document::create(QDir::tempPath() + QLatin1String("/file.cpp"));
 | 
			
		||||
    dst->addIncludeFile(src->fileName(), 1);
 | 
			
		||||
    dst->addIncludeFile(Document::Include(QLatin1String("file.h"), src->fileName(), 1,
 | 
			
		||||
                                          Client::IncludeLocal));
 | 
			
		||||
    Utils::FileSaver dstSaver(dst->fileName());
 | 
			
		||||
    dstSaver.write(dstText);
 | 
			
		||||
    dstSaver.finalize();
 | 
			
		||||
@@ -508,7 +509,8 @@ void CppToolsPlugin::test_codegen_definition_last_member()
 | 
			
		||||
    QCOMPARE(src->globalSymbolCount(), 1U);
 | 
			
		||||
 | 
			
		||||
    Document::Ptr dst = Document::create(QDir::tempPath() + QLatin1String("/file.cpp"));
 | 
			
		||||
    dst->addIncludeFile(src->fileName(), 1);
 | 
			
		||||
    dst->addIncludeFile(Document::Include(QLatin1String("file.h"), src->fileName(), 1,
 | 
			
		||||
                                          Client::IncludeLocal));
 | 
			
		||||
    Utils::FileSaver dstSaver(dst->fileName());
 | 
			
		||||
    dstSaver.write(dstText);
 | 
			
		||||
    dstSaver.finalize();
 | 
			
		||||
@@ -583,7 +585,8 @@ void CppToolsPlugin::test_codegen_definition_middle_member()
 | 
			
		||||
    QCOMPARE(src->globalSymbolCount(), 1U);
 | 
			
		||||
 | 
			
		||||
    Document::Ptr dst = Document::create(QDir::tempPath() + QLatin1String("/file.cpp"));
 | 
			
		||||
    dst->addIncludeFile(src->fileName(), 1);
 | 
			
		||||
    dst->addIncludeFile(Document::Include(QLatin1String("file.h"), src->fileName(), 1,
 | 
			
		||||
                                          Client::IncludeLocal));
 | 
			
		||||
    Utils::FileSaver dstSaver(dst->fileName());
 | 
			
		||||
    dstSaver.write(dstText);
 | 
			
		||||
    dstSaver.finalize();
 | 
			
		||||
 
 | 
			
		||||
@@ -1692,7 +1692,7 @@ void CppCompletionAssistProcessor::addMacros_helper(const CPlusPlus::Snapshot &s
 | 
			
		||||
    processed->insert(doc->fileName());
 | 
			
		||||
 | 
			
		||||
    foreach (const Document::Include &i, doc->includes()) {
 | 
			
		||||
        addMacros_helper(snapshot, i.fileName(), processed, definedMacros);
 | 
			
		||||
        addMacros_helper(snapshot, i.resolvedFileName(), processed, definedMacros);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    foreach (const Macro ¯o, doc->definedMacros()) {
 | 
			
		||||
 
 | 
			
		||||
@@ -331,7 +331,7 @@ void CppPreprocessor::mergeEnvironment(Document::Ptr doc)
 | 
			
		||||
    m_processed.insert(fn);
 | 
			
		||||
 | 
			
		||||
    foreach (const Document::Include &incl, doc->includes()) {
 | 
			
		||||
        QString includedFile = incl.fileName();
 | 
			
		||||
        QString includedFile = incl.resolvedFileName();
 | 
			
		||||
 | 
			
		||||
        if (Document::Ptr includedDoc = m_snapshot.document(includedFile))
 | 
			
		||||
            mergeEnvironment(includedDoc);
 | 
			
		||||
@@ -364,7 +364,7 @@ void CppPreprocessor::sourceNeeded(unsigned line, const QString &fileName, Inclu
 | 
			
		||||
    QString absoluteFileName = resolveFile(fileName, type);
 | 
			
		||||
    absoluteFileName = QDir::cleanPath(absoluteFileName);
 | 
			
		||||
    if (m_currentDoc && !absoluteFileName.isEmpty())
 | 
			
		||||
        m_currentDoc->addIncludeFile(absoluteFileName, line);
 | 
			
		||||
        m_currentDoc->addIncludeFile(Document::Include(fileName, absoluteFileName, line, type));
 | 
			
		||||
    if (m_included.contains(absoluteFileName))
 | 
			
		||||
        return; // we've already seen this file.
 | 
			
		||||
    if (absoluteFileName != modelManager()->configurationFileName())
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user