Bug in parser in HeaderTool

I have a strange bug with the HeaderTool.

I’ve go a simple widget style class.

struct KSGM_API FKLobbyWidgetStyle : public FSlateWidgetStyle

When I try to compile I received the following message from HeaderParser.cpp

/KLobbyWidgetStyle.h(26) : struct: ‘KLobbyWidgetStyle’ conflicts with class name

I’ve checked in the HeaderParser.cpp

	// Verify uniqueness (if declared within UClass).
		auto* Existing = Scope->FindTypeByName(*EffectiveStructName);
		if (Existing)
			FError::Throwf(TEXT("struct: '%s' already defined here"), *EffectiveStructName);

		if (FindObject<UStruct>(ANY_PACKAGE, *EffectiveStructName) != NULL)
			FError::Throwf(TEXT("struct: '%s' conflicts with class name"), *EffectiveStructName);

This new struct exists only in this file.

If I change the struct name FKLobbyWidgetStyle to FKLobbyStyle
no more error.

I don’t know how the parser can find a similar UStruct in ANY_PACKAGE.


Hey -

The issue is that the name of the struct matches the name of your class. This is why changing the name of the struct removes the error.


Hello ,

Yes but I have no class with the name FKLobbyWidgetStyle.
But may be I don’t understand. What class are you talking about ?


The F is seen as an identifier at the beginning of the name rather than part of the name. For example, I created a class named MyActor (AMyActor in VS), attempting to add a UStruct called UMyActor gave the same error that you posted above. If you have a class named KLobbyWidgetStyle (either actor, object, character, etc) then this is the likely cause of the error.


In fact I understood the problem.

The style class is named :

UCLASS(hidecategories = Object, MinimalAPI)
class UKLobbyWidgetStyle : public USlateWidgetStyleContainerBase

Then effectively, it gives that error.

Many thanks for your help,
Have a nice day,