UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Diagnostics.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2// uLang Parser Public API
3
4#pragma once
5
9
10namespace uLang
11{
20
21// In the future, for other types of events (e.g. memory calculation) this can be expanded to accommodate other types of statistics
22// that aren't just a simple "number of events".
24{
25 union
26 {
28 };
30};
31
41
42// Accumulated issues for full set of compilation passes
44{
45public:
46
47 // Just warnings (no info or errors)
48 ULANG_FORCEINLINE bool HasWarnings() const { return _Glitches.ContainsByPredicate([](const SGlitch* Glitch) -> bool { return Glitch->_Result.IsWarning(); }); }
50
51 // Just errors (no info or warnings)
52 ULANG_FORCEINLINE bool HasErrors() const { return _Glitches.ContainsByPredicate([](const SGlitch* Glitch) -> bool { return Glitch->_Result.IsError(); }); }
54
55 // Any type of glitch including info, warnings and errors
56 ULANG_FORCEINLINE bool HasGlitches() const { return _Glitches.IsFilled(); }
59 ULANG_FORCEINLINE bool IsGlitchWithId(uintptr_t VstIdentifier) const { return _Glitches.ContainsByPredicate([VstIdentifier](const SGlitch* Glitch) -> bool { return Glitch->_Locus._VstIdentifier == VstIdentifier; }); }
60
63 {
64 return _Statistics;
65 }
66
68 {
69 _Glitches.Empty();
70 }
71
77
79 {
80 AppendGlitch(Glitch.AsRef());
81 }
82
84 {
85 AppendGlitch(TSRef<SGlitch>::New(Move(Result), Move(Locus)));
86 }
87
92
94 {
95 for (const TSRef<SGlitch>& NewGlitch : Glitches)
96 {
97 _OnGlitchEvent.Broadcast(NewGlitch);
98 }
99 _Glitches.Append(Glitches);
100 }
101
103 {
104 for (const TSRef<SGlitch>& NewGlitch : Other._Glitches)
105 {
106 _OnGlitchEvent.Broadcast(NewGlitch);
107 }
108 _Glitches.Append(Move(Other._Glitches));
109
110 for (uint32_t I = Other._Statistics.NumPersistentWeakMaps; I != 0; --I)
111 {
113 }
114 _Statistics.NumPersistentWeakMaps += Other._Statistics.NumPersistentWeakMaps;
115 _Statistics.NumClasses += Other._Statistics.NumClasses;
116 _Statistics.NumFunctions += Other._Statistics.NumFunctions;
117 _Statistics.NumTopLevelDefinitions += Other._Statistics.NumTopLevelDefinitions;
118 _Statistics.NumUsesOfExperimentalDefinitions += Other._Statistics.NumUsesOfExperimentalDefinitions;
119
120 for (uint32_t I = Other._Statistics.NumUsesOfExperimentalDefinitions; I != 0; --I)
121 {
123 }
124 }
125
131
137
143
149
155
158
162
163protected:
164 // All the issues encountered across all the phases (Parser and SemanticAnalyzer)
166
169 .NumPersistentWeakMaps = 0,
170 .NumFunctions = 0,
171 .NumClasses = 0,
172 .NumTopLevelDefinitions = 0
173 };
174
177};
178}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ULANG_FORCEINLINE
Definition Common.h:188
Definition Diagnostics.h:44
COnGlitchEvent _OnGlitchEvent
Definition Diagnostics.h:175
ULANG_FORCEINLINE const SBuildStatistics & GetStatistics() const
Definition Diagnostics.h:62
TSRefArray< SGlitch > _Glitches
Definition Diagnostics.h:165
VERSECOMPILER_API int32_t GetErrorNum() const
Definition Diagnostics.cpp:19
ULANG_FORCEINLINE void AppendUseOfExperimentalDefinition()
Definition Diagnostics.h:150
ULANG_FORCEINLINE void AppendClassDefinition(const uint32_t Count)
Definition Diagnostics.h:138
ULANG_FORCEINLINE void AppendFunctionDefinition(const uint32_t Count)
Definition Diagnostics.h:132
ULANG_FORCEINLINE int32_t GetGlitchNum() const
Definition Diagnostics.h:57
COnGlitchEvent::Registrar & OnGlitchEvent()
Definition Diagnostics.h:157
ULANG_FORCEINLINE void Append(CDiagnostics &&Other)
Definition Diagnostics.h:102
ULANG_FORCEINLINE bool HasUseOfExperimentalDefinition() const
Definition Diagnostics.h:61
ULANG_FORCEINLINE bool HasGlitches() const
Definition Diagnostics.h:56
ULANG_FORCEINLINE void AppendTopLevelDefinition(const uint32_t Count)
Definition Diagnostics.h:144
void AppendGlitch(const TSPtr< SGlitch > &Glitch)
Definition Diagnostics.h:78
void AppendGlitch(const TSRef< SGlitch > &Glitch)
Definition Diagnostics.h:72
ULANG_FORCEINLINE const TSRefArray< SGlitch > & GetGlitches() const
Definition Diagnostics.h:58
ULANG_FORCEINLINE void AppendGlitch(SGlitchResult &&Result, SGlitchLocus &&Locus)
Definition Diagnostics.h:83
SBuildStatistics _Statistics
Definition Diagnostics.h:167
ULANG_FORCEINLINE void Reset()
Definition Diagnostics.h:67
ULANG_FORCEINLINE void AppendGlitch(SGlitchResult &&Result)
Definition Diagnostics.h:88
ULANG_FORCEINLINE bool IsGlitchWithId(uintptr_t VstIdentifier) const
Definition Diagnostics.h:59
COnBuildStatisticEvent::Registrar & OnBuildStatisticEvent()
Definition Diagnostics.h:161
ULANG_FORCEINLINE bool HasErrors() const
Definition Diagnostics.h:52
COnBuildStatisticEvent _OnBuildStatisticEvent
Definition Diagnostics.h:176
VERSECOMPILER_API int32_t GetWarningNum() const
Definition Diagnostics.cpp:7
ULANG_FORCEINLINE void AppendGlitches(TSRefArray< SGlitch > &Glitches)
Definition Diagnostics.h:93
ULANG_FORCEINLINE void AppendPersistentWeakMap()
Definition Diagnostics.h:126
ULANG_FORCEINLINE bool HasWarnings() const
Definition Diagnostics.h:48
Definition SharedPointer.h:28
void Broadcast(ParamTypes... Params)
Definition Event.h:113
Definition SharedPointerArray.h:21
Definition SharedPointer.h:77
Definition VVMEngineEnvironment.h:23
EBuildEvent
Definition Diagnostics.h:13
ULANG_FORCEINLINE TRemoveReference< T >::Type && Move(T &&Obj)
Definition References.h:86
Definition Diagnostics.h:24
uint32_t Count
Definition Diagnostics.h:27
EBuildEvent Type
Definition Diagnostics.h:29
Various statistics for a given build that can be used in analytics.
Definition Diagnostics.h:34
uint32_t NumUsesOfExperimentalDefinitions
Definition Diagnostics.h:35
uint32_t NumClasses
Definition Diagnostics.h:38
uint32_t NumPersistentWeakMaps
Definition Diagnostics.h:36
uint32_t NumFunctions
Definition Diagnostics.h:37
uint32_t NumTopLevelDefinitions
Definition Diagnostics.h:39
Definition Glitch.h:354
Definition Glitch.h:333
Definition Glitch.h:393