CPlusPlus: Add toLink method to the Symbol

Basically move it from CppTools to CPlusPlus
to be able to use it there.

Change-Id: I0af80f93bdc029824397ceafdf940cb86c4382b0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-02-02 12:52:07 +01:00
parent 31f1713c75
commit c020f2448b
9 changed files with 30 additions and 31 deletions

View File

@@ -32,6 +32,7 @@
#include "cppassert.h"
#include <utils/link.h>
using namespace CPlusPlus;
@@ -435,3 +436,19 @@ void Symbol::copy(Symbol *other)
_isGenerated = other->_isGenerated;
_isDeprecated = other->_isDeprecated;
}
Utils::Link Symbol::toLink() const
{
const QString filename = QString::fromUtf8(fileName(), static_cast<int>(fileNameLength()));
int line = static_cast<int>(this->line());
int column = static_cast<int>(this->column());
if (column)
--column;
if (isGenerated())
column = 0;
return Utils::Link(filename, line, column);
}

View File

@@ -22,6 +22,7 @@
#include "CPlusPlusForwardDeclarations.h"
namespace Utils { struct Link; }
namespace CPlusPlus {
@@ -197,6 +198,8 @@ public:
/// Returns true if this Symbol is an Objective-C @property declaration.
bool isObjCPropertyDeclaration() const;
Utils::Link toLink() const;
virtual const Scope *asScope() const { return 0; }
virtual const Enum *asEnum() const { return 0; }
virtual const Function *asFunction() const { return 0; }