Clang: Inline DiagnosticContainer

Change-Id: I0d15b0b0d43f2a114d234f4b26f1eb8cf9d4a380
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Marco Bubke
2016-07-19 13:05:11 +02:00
committed by Tim Jenssen
parent 3ea1eb3631
commit 6a220a1575
2 changed files with 98 additions and 125 deletions

View File

@@ -25,118 +25,12 @@
#include "diagnosticcontainer.h"
#include <QDataStream>
#include <QDebug>
#include <ostream>
namespace ClangBackEnd {
DiagnosticContainer::DiagnosticContainer(const Utf8String &text,
const Utf8String &category,
const std::pair<Utf8String,Utf8String> &options,
DiagnosticSeverity severity,
const SourceLocationContainer &location,
const QVector<SourceRangeContainer> &ranges,
const QVector<FixItContainer> &fixIts,
const QVector<DiagnosticContainer> &children)
: location_(location),
ranges_(ranges),
text_(text),
category_(category),
enableOption_(options.first),
disableOption_(options.second),
children_(children),
fixIts_(fixIts),
severity_(severity)
{
}
const Utf8String &DiagnosticContainer::text() const
{
return text_;
}
const Utf8String &DiagnosticContainer::category() const
{
return category_;
}
const Utf8String &DiagnosticContainer::enableOption() const
{
return enableOption_;
}
const Utf8String &DiagnosticContainer::disableOption() const
{
return disableOption_;
}
const SourceLocationContainer &DiagnosticContainer::location() const
{
return location_;
}
const QVector<SourceRangeContainer> &DiagnosticContainer::ranges() const
{
return ranges_;
}
DiagnosticSeverity DiagnosticContainer::severity() const
{
return severity_;
}
const QVector<FixItContainer> &DiagnosticContainer::fixIts() const
{
return fixIts_;
}
const QVector<DiagnosticContainer> &DiagnosticContainer::children() const
{
return children_;
}
QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container)
{
out << container.text_;
out << container.category_;
out << container.enableOption_;
out << container.disableOption_;
out << container.location_;
out << static_cast<quint32>(container.severity_);
out << container.ranges_;
out << container.fixIts_;
out << container.children_;
return out;
}
QDataStream &operator>>(QDataStream &in, DiagnosticContainer &container)
{
quint32 severity;
in >> container.text_;
in >> container.category_;
in >> container.enableOption_;
in >> container.disableOption_;
in >> container.location_;
in >> severity;
in >> container.ranges_;
in >> container.fixIts_;
in >> container.children_;
container.severity_ = static_cast<DiagnosticSeverity>(severity);
return in;
}
bool operator==(const DiagnosticContainer &first, const DiagnosticContainer &second)
{
return first.text_ == second.text_
&& first.location_ == second.location_;
}
static const char *severityToText(DiagnosticSeverity severity)
{
switch (severity) {

View File

@@ -28,18 +28,15 @@
#include "sourcerangecontainer.h"
#include "fixitcontainer.h"
#include <QDataStream>
#include <QVector>
#include <utility>
namespace ClangBackEnd {
class CMBIPC_EXPORT DiagnosticContainer
class DiagnosticContainer
{
friend CMBIPC_EXPORT QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container);
friend CMBIPC_EXPORT QDataStream &operator>>(QDataStream &in, DiagnosticContainer &container);
friend CMBIPC_EXPORT bool operator==(const DiagnosticContainer &first, const DiagnosticContainer &second);
public:
DiagnosticContainer() = default;
DiagnosticContainer(const Utf8String &text,
@@ -49,17 +46,103 @@ public:
const SourceLocationContainer &location,
const QVector<SourceRangeContainer> &ranges,
const QVector<FixItContainer> &fixIts,
const QVector<DiagnosticContainer> &children);
const QVector<DiagnosticContainer> &children)
: location_(location),
ranges_(ranges),
text_(text),
category_(category),
enableOption_(options.first),
disableOption_(options.second),
children_(children),
fixIts_(fixIts),
severity_(severity)
{
}
const Utf8String &text() const;
const Utf8String &category() const;
const Utf8String &enableOption() const;
const Utf8String &disableOption() const;
const SourceLocationContainer &location() const;
const QVector<SourceRangeContainer> &ranges() const;
DiagnosticSeverity severity() const;
const QVector<FixItContainer> &fixIts() const;
const QVector<DiagnosticContainer> &children() const;
const Utf8String &text() const
{
return text_;
}
const Utf8String &category() const
{
return category_;
}
const Utf8String &enableOption() const
{
return enableOption_;
}
const Utf8String &disableOption() const
{
return disableOption_;
}
const SourceLocationContainer &location() const
{
return location_;
}
const QVector<SourceRangeContainer> &ranges() const
{
return ranges_;
}
DiagnosticSeverity severity() const
{
return severity_;
}
const QVector<FixItContainer> &fixIts() const
{
return fixIts_;
}
const QVector<DiagnosticContainer> &children() const
{
return children_;
}
friend QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container)
{
out << container.text_;
out << container.category_;
out << container.enableOption_;
out << container.disableOption_;
out << container.location_;
out << static_cast<quint32>(container.severity_);
out << container.ranges_;
out << container.fixIts_;
out << container.children_;
return out;
}
friend QDataStream &operator>>(QDataStream &in, DiagnosticContainer &container)
{
quint32 severity;
in >> container.text_;
in >> container.category_;
in >> container.enableOption_;
in >> container.disableOption_;
in >> container.location_;
in >> severity;
in >> container.ranges_;
in >> container.fixIts_;
in >> container.children_;
container.severity_ = static_cast<DiagnosticSeverity>(severity);
return in;
}
friend bool operator==(const DiagnosticContainer &first, const DiagnosticContainer &second)
{
return first.text_ == second.text_
&& first.location_ == second.location_;
}
private:
SourceLocationContainer location_;
@@ -73,10 +156,6 @@ private:
DiagnosticSeverity severity_;
};
CMBIPC_EXPORT QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container);
CMBIPC_EXPORT QDataStream &operator>>(QDataStream &in, DiagnosticContainer &container);
CMBIPC_EXPORT bool operator==(const DiagnosticContainer &first, const DiagnosticContainer &second);
CMBIPC_EXPORT QDebug operator<<(QDebug debug, const DiagnosticContainer &container);
void PrintTo(const DiagnosticContainer &container, ::std::ostream* os);