diff --git a/src/libs/clangbackendipc/clangbackendipc_global.h b/src/libs/clangbackendipc/clangbackendipc_global.h index 03b3493d70e..c19484e8106 100644 --- a/src/libs/clangbackendipc/clangbackendipc_global.h +++ b/src/libs/clangbackendipc/clangbackendipc_global.h @@ -43,7 +43,7 @@ namespace ClangBackEnd { -enum class DiagnosticSeverity // one to one mapping of the clang enum numbers +enum class DiagnosticSeverity : quint32 // one to one mapping of the clang enum numbers { Ignored = 0, Note = 1, @@ -75,7 +75,7 @@ enum class HighlightingType : quint8 Declaration }; -enum class CompletionCorrection +enum class CompletionCorrection : quint32 { NoCorrection, DotToArrowCorrection diff --git a/src/libs/clangbackendipc/cmbcodecompletedmessage.cpp b/src/libs/clangbackendipc/cmbcodecompletedmessage.cpp index ea857646f5e..3097585b388 100644 --- a/src/libs/clangbackendipc/cmbcodecompletedmessage.cpp +++ b/src/libs/clangbackendipc/cmbcodecompletedmessage.cpp @@ -56,15 +56,10 @@ quint64 CodeCompletedMessage::ticketNumber() const return ticketNumber_; } -quint32 &CodeCompletedMessage::neededCorrectionAsInt() -{ - return reinterpret_cast(neededCorrection_); -} - QDataStream &operator<<(QDataStream &out, const CodeCompletedMessage &message) { out << message.codeCompletions_; - out << quint32(message.neededCorrection_); + out << static_cast(message.neededCorrection_); out << message.ticketNumber_; return out; @@ -72,10 +67,14 @@ QDataStream &operator<<(QDataStream &out, const CodeCompletedMessage &message) QDataStream &operator>>(QDataStream &in, CodeCompletedMessage &message) { + quint32 neededCorrection; + in >> message.codeCompletions_; - in >> message.neededCorrectionAsInt(); + in >> neededCorrection; in >> message.ticketNumber_; + message.neededCorrection_ = static_cast(neededCorrection); + return in; } diff --git a/src/libs/clangbackendipc/cmbcodecompletedmessage.h b/src/libs/clangbackendipc/cmbcodecompletedmessage.h index 8fe9c5dbea8..d3cc6baf265 100644 --- a/src/libs/clangbackendipc/cmbcodecompletedmessage.h +++ b/src/libs/clangbackendipc/cmbcodecompletedmessage.h @@ -49,9 +49,6 @@ public: quint64 ticketNumber() const; -private: - quint32 &neededCorrectionAsInt(); - private: CodeCompletions codeCompletions_; quint64 ticketNumber_ = 0; diff --git a/src/libs/clangbackendipc/codecompletion.cpp b/src/libs/clangbackendipc/codecompletion.cpp index 8ad39d080e4..b043007bb97 100644 --- a/src/libs/clangbackendipc/codecompletion.cpp +++ b/src/libs/clangbackendipc/codecompletion.cpp @@ -115,24 +115,14 @@ const Utf8String &CodeCompletion::briefComment() const return briefComment_; } -quint32 &CodeCompletion::completionKindAsInt() -{ - return reinterpret_cast(completionKind_); -} - -quint32 &CodeCompletion::availabilityAsInt() -{ - return reinterpret_cast(availability_); -} - QDataStream &operator<<(QDataStream &out, const CodeCompletion &message) { out << message.text_; out << message.briefComment_; out << message.chunks_; out << message.priority_; - out << message.completionKind_; - out << message.availability_; + out << static_cast(message.completionKind_); + out << static_cast(message.availability_); out << message.hasParameters_; return out; @@ -140,14 +130,20 @@ QDataStream &operator<<(QDataStream &out, const CodeCompletion &message) QDataStream &operator>>(QDataStream &in, CodeCompletion &message) { + quint32 completionKind; + quint32 availability; + in >> message.text_; in >> message.briefComment_; in >> message.chunks_; in >> message.priority_; - in >> message.completionKindAsInt(); - in >> message.availabilityAsInt(); + in >> completionKind; + in >> availability; in >> message.hasParameters_; + message.completionKind_ = static_cast(completionKind); + message.availability_ = static_cast(availability); + return in; } diff --git a/src/libs/clangbackendipc/codecompletion.h b/src/libs/clangbackendipc/codecompletion.h index ec8984a89ac..114d7c54890 100644 --- a/src/libs/clangbackendipc/codecompletion.h +++ b/src/libs/clangbackendipc/codecompletion.h @@ -103,10 +103,6 @@ public: void setBriefComment(const Utf8String &briefComment); const Utf8String &briefComment() const; -private: - quint32 &completionKindAsInt(); - quint32 &availabilityAsInt(); - private: Utf8String text_; Utf8String briefComment_; diff --git a/src/libs/clangbackendipc/codecompletionchunk.cpp b/src/libs/clangbackendipc/codecompletionchunk.cpp index 7e1cb790133..1211b2cf1bb 100644 --- a/src/libs/clangbackendipc/codecompletionchunk.cpp +++ b/src/libs/clangbackendipc/codecompletionchunk.cpp @@ -56,14 +56,9 @@ bool CodeCompletionChunk::isOptional() const return isOptional_; } -quint8 &CodeCompletionChunk::kindAsInt() -{ - return reinterpret_cast(kind_); -} - QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk) { - out << quint8(chunk.kind_); + out << static_cast(chunk.kind_); out << chunk.text_; out << chunk.isOptional_; @@ -72,10 +67,14 @@ QDataStream &operator<<(QDataStream &out, const CodeCompletionChunk &chunk) QDataStream &operator>>(QDataStream &in, CodeCompletionChunk &chunk) { - in >> chunk.kindAsInt(); + quint8 kind; + + in >> kind; in >> chunk.text_; in >> chunk.isOptional_; + chunk.kind_ = static_cast(kind); + return in; } diff --git a/src/libs/clangbackendipc/codecompletionchunk.h b/src/libs/clangbackendipc/codecompletionchunk.h index 897e9f222a9..d004181cf9d 100644 --- a/src/libs/clangbackendipc/codecompletionchunk.h +++ b/src/libs/clangbackendipc/codecompletionchunk.h @@ -77,9 +77,6 @@ public: const Utf8String &text() const; bool isOptional() const; -private: - quint8 &kindAsInt(); - private: Utf8String text_; Kind kind_ = Invalid; diff --git a/src/libs/clangbackendipc/diagnosticcontainer.cpp b/src/libs/clangbackendipc/diagnosticcontainer.cpp index 1161a773265..b7bf9d9d09e 100644 --- a/src/libs/clangbackendipc/diagnosticcontainer.cpp +++ b/src/libs/clangbackendipc/diagnosticcontainer.cpp @@ -97,11 +97,6 @@ const QVector &DiagnosticContainer::children() const return children_; } -quint32 &DiagnosticContainer::severityAsInt() -{ - return reinterpret_cast(severity_); -} - QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container) { out << container.text_; @@ -109,7 +104,7 @@ QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container) out << container.enableOption_; out << container.disableOption_; out << container.location_; - out << quint32(container.severity_); + out << static_cast(container.severity_); out << container.ranges_; out << container.fixIts_; out << container.children_; @@ -119,16 +114,20 @@ QDataStream &operator<<(QDataStream &out, const DiagnosticContainer &container) QDataStream &operator>>(QDataStream &in, DiagnosticContainer &container) { + quint32 severity; + in >> container.text_; in >> container.category_; in >> container.enableOption_; in >> container.disableOption_; in >> container.location_; - in >> container.severityAsInt(); + in >> severity; in >> container.ranges_; in >> container.fixIts_; in >> container.children_; + container.severity_ = static_cast(severity); + return in; } diff --git a/src/libs/clangbackendipc/diagnosticcontainer.h b/src/libs/clangbackendipc/diagnosticcontainer.h index b1192f393bd..a44efbabcbb 100644 --- a/src/libs/clangbackendipc/diagnosticcontainer.h +++ b/src/libs/clangbackendipc/diagnosticcontainer.h @@ -61,9 +61,6 @@ public: const QVector &fixIts() const; const QVector &children() const; -private: - quint32 &severityAsInt(); - private: SourceLocationContainer location_; QVector ranges_; diff --git a/src/libs/clangbackendipc/highlightingmarkcontainer.cpp b/src/libs/clangbackendipc/highlightingmarkcontainer.cpp index 441bc5203de..2678bc4d43c 100644 --- a/src/libs/clangbackendipc/highlightingmarkcontainer.cpp +++ b/src/libs/clangbackendipc/highlightingmarkcontainer.cpp @@ -74,14 +74,21 @@ HighlightingTypes HighlightingMarkContainer::types() const return types_; } +QDataStream &operator<<(QDataStream &out, HighlightingType highlightingType) +{ + out << static_cast(highlightingType); + + return out; +} + QDataStream &operator<<(QDataStream &out, HighlightingTypes highlightingTypes) { - out << reinterpret_cast(highlightingTypes.mainHighlightingType); + out << highlightingTypes.mainHighlightingType; out << highlightingTypes.mixinHighlightingTypes.size(); for (HighlightingType type : highlightingTypes.mixinHighlightingTypes) - out << reinterpret_cast(type); + out << type; return out; } @@ -96,16 +103,27 @@ QDataStream &operator<<(QDataStream &out, const HighlightingMarkContainer &conta return out; } +QDataStream &operator>>(QDataStream &in, HighlightingType &highlightingType) +{ + quint8 highlightingTypeInt; + + in >> highlightingTypeInt; + + highlightingType = static_cast(highlightingTypeInt); + + return in; +} + QDataStream &operator>>(QDataStream &in, HighlightingTypes &highlightingTypes) { - in >> reinterpret_cast(highlightingTypes.mainHighlightingType); + in >> highlightingTypes.mainHighlightingType ; quint8 size; in >> size; for (int counter = 0; counter < size; ++counter) { HighlightingType type; - in >> reinterpret_cast(type); + in >> type; highlightingTypes.mixinHighlightingTypes.push_back(type); } diff --git a/src/libs/clangbackendipc/messageenvelop.h b/src/libs/clangbackendipc/messageenvelop.h index 008a4c00372..0f4d18d5228 100644 --- a/src/libs/clangbackendipc/messageenvelop.h +++ b/src/libs/clangbackendipc/messageenvelop.h @@ -79,7 +79,7 @@ public: friend QDataStream &operator<<(QDataStream &out, const MessageEnvelop &messageEnvelop) { - out << reinterpret_cast(messageEnvelop.messageType_); + out << static_cast(messageEnvelop.messageType_); out << messageEnvelop.data; return out; @@ -88,9 +88,13 @@ public: friend QDataStream &operator>>(QDataStream &in, MessageEnvelop &messageEnvelop) { - in >> reinterpret_cast(messageEnvelop.messageType_); + quint8 messageType; + + in >> messageType; in >> messageEnvelop.data; + messageEnvelop.messageType_ = static_cast(messageType); + return in; }