Unknown specifier 'HandoverData' found while parsing Variable specifier [UnrealHeaderTool Error]

I've added my custom property specifier to the UE5. Everything compiles and the new specifier is recognized/

But R++ complains that it cannot parse it.

Could you point me out what is wrong and what should I do in order to fix that?

Below are the files I modified:

VariableSpecifiers.def: VARIABLE_SPECIFIER(HandoverData)

HeaderParser.cpp:

if (VariableCategory == EVariableCategory::Member)
{

switch (SpecID)

{

....

case EVariableSpecifier::HandoverData:
{
 Flags |= CPF_HandoverData;
 }break;

.....

ObjectMacros.h:
namespace UP
{
// valid keywords for the UPROPERTY macro
enum 
{
...
HandoverData
};
}
1
4 comments

Hello,

It looks like some weird bug because `[UnrealHeaderTool Error]` errors come from the UnrealHeaderTool itself, which ReSharper runs in the background.

May I ask you:

  1. What version of ReSharper and Unreal Engine are you using?
  2. In what solution configuration did you build UnrealHeaderTool?
0

1. JetBrains ReSharper 2023.1.4 Build 231.0.20230713.104041 built on 2023-07-13 ReSharper C++ 2023.1.20230713.111344

  1.1 UE 5.1

2. I built UnrealHeaderTool in Shipping and Development

May you advise what ReSharper uses as an output of UnrealHeaderTool? Does it read a log file? Or use a special UnrealHeaderTool API that I can investigate?

0

Thanks!

May you advise what ReSharper uses as an output of UnrealHeaderTool? Does it read a log file? Or use a special UnrealHeaderTool API that I can investigate?

UnrealHeaderTool has been migrated from C++ program to C# UnrealBuildTool mode in Unreal Engine 5.1. And ReSharper (2023.1 and newer) supports it and launches it like that: "dotnet.exe UnrealBuildTool.dll -Mode=UnrealHeaderTool ProjectFile.uproject ManifestName.uhtmanifest". After that, it simply reads and parses stdout.

I built UnrealHeaderTool in Shipping and Development

I would suggest checking if "\\UnrealEngine\Engine\Binaries\DotNET\UnrealBuildTool\EpicGames.UHT.dll" has been updated (copied over) after building UnrealHeaderTool.

0

Thanks a lot!

That information helped.

The property must have been added to \UnrealEngine\Engine\Source\Programs\Shared\EpicGames.Core\UnrealEngineTypes.cs

2

Please sign in to leave a comment.