Description

FPropertyBase constructor does not handle a TMap/TSet property.

Following workaround can avoid this error.

	explicit FPropertyBase(FProperty* Property)
	: PropertyExportFlags(PROPEXPORT_Public)
	, DelegateName       (NAME_None)
	, DelegateSignatureOwnerClass(nullptr)
	, RepNotifyName      (NAME_None)
	, IntType            (EIntType::None)
	{
		checkSlow(Property);

		EArrayType::Type ArrType         = EArrayType::None;
		EPropertyFlags   PropagateFlags  = CPF_None;
		FFieldClass*     ClassOfProperty = Property->GetClass();

		if( ClassOfProperty==FArrayProperty::StaticClass() )
		{
			ArrType = EArrayType::Dynamic;

			// if we're an array, save up Parm flags so we can propagate them.
			// below the array will be assigned the inner property flags. This allows propagation of Parm flags (out, optional..)
			PropagateFlags = Property->PropertyFlags & CPF_ParmFlags;
			Property = CastFieldChecked<FArrayProperty>(Property)->Inner;
			ClassOfProperty = Property->GetClass();
		}
#if 1 // workaround to this issue
		else if (ClassOfProperty == FMapProperty::StaticClass())
		{
			PropagateFlags = Property->PropertyFlags & CPF_ParmFlags;
			MapKeyProp = MakeShared<FPropertyBase>( CastFieldChecked<FMapProperty>(Property)->KeyProp );
			Property = CastFieldChecked<FMapProperty>(Property)->ValueProp;
			ClassOfProperty = Property->GetClass();

		}
		else if (ClassOfProperty == FSetProperty::StaticClass())
		{
			ArrType = EArrayType::Set;

			PropagateFlags = Property->PropertyFlags & CPF_ParmFlags;
			Property = CastFieldChecked<FSetProperty>(Property)->ElementProp;
			ClassOfProperty = Property->GetClass();
		}
#endif // end of workaround

		if( ClassOfProperty==FByteProperty::StaticClass() )
		{

Steps to Reproduce
  1. Compile and open the attached project on 4.25 NativizationTest.zip[Image Removed]
  2. Click File > Package Project > Windows(64bit) in the menu

Result
Build failed with following error

Fatal error: [File:E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\ParserHelper.h] [Line: 447]
Unknown property type 'MapProperty /Script/NativizedAssets.NewBlueprint_C__pf1010915279:bpf__InterfaceFuncTest__pf:bpp__NewParam__pf'
Callstack

[Callstack] 0x00007ff7dfdf3a56 UnrealHeaderTool.exe!FPropertyBase::FPropertyBase() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\ParserHelper.h:447]
[Callstack] 0x00007ff7dfe68191 UnrealHeaderTool.exe!FHeaderParser::PostPopNestClass() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp:10255]
[Callstack] 0x00007ff7dfe0ebe1 UnrealHeaderTool.exe!FHeaderParser::CompileDeclaration() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp:5771]
[Callstack] 0x00007ff7dfe633ec UnrealHeaderTool.exe!FHeaderParser::ParseHeader() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp:8378]
[Callstack] 0x00007ff7dfe639d3 UnrealHeaderTool.exe!FHeaderParser::ParseHeaders() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp:8571]
[Callstack] 0x00007ff7dfe65700 UnrealHeaderTool.exe!FHeaderParser::ParseRestOfModulesSourceFiles() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp:8508]
[Callstack] 0x00007ff7dfe5ee19 UnrealHeaderTool.exe!FHeaderParser::ParseAllHeadersInside() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\HeaderParser.cpp:8868]
[Callstack] 0x00007ff7dfe877d1 UnrealHeaderTool.exe!UnrealHeaderTool_Main() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\CodeGenerator.cpp:6723]
[Callstack] 0x00007ff7dfe8b66b UnrealHeaderTool.exe!wmain() [E:\dev\UnrealEngine-4.25.3\Engine\Source\Programs\UnrealHeaderTool\Private\UnrealHeaderToolMain.cpp:111]
[Callstack] 0x00007ff7dfe8ecd0 UnrealHeaderTool.exe!__scrt_common_main_seh() [d:\A01\_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
[Callstack] 0x00007ffeb8b97bd4 KERNEL32.DLL!UnknownFunction []
[Callstack] 0x00007ffeba10ce51 ntdll.dll!UnknownFunction []

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-99276 in the post.

0
Login to Vote

Fixed
ComponentGameplay - Blueprint Compiler
Affects Versions4.25
Target Fix4.26
Fix Commit14310569
Release Commit14310569
CreatedSep 9, 2020
ResolvedSep 14, 2020
UpdatedSep 14, 2020