Files
UnrealEngineUWP/Engine/Source/Programs/UnrealHeaderTool/Private/HeaderProvider.h
Tim Smith 11119486ae Fix issue where if in a single include file, we define UMyInterface, implement IMyInterface, and implement the interface in a UObject, UHT would generate a circular dependency error.
The fix is to ignore identifier references that resolve to the same source file.

#rb none

[CL 15873286 by Tim Smith in ue5-main branch]
2021-03-31 07:49:15 -04:00

36 lines
693 B
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Containers/UnrealString.h"
class FUnrealSourceFile;
enum class EHeaderProviderSourceType
{
ClassName,
FileName,
Resolved
};
class FHeaderProvider
{
friend bool operator==(const FHeaderProvider& A, const FHeaderProvider& B);
public:
FHeaderProvider(EHeaderProviderSourceType Type, FString&& Id);
FUnrealSourceFile* Resolve(const FUnrealSourceFile& ParentSourceFile);
FString ToString() const;
const FString& GetId() const;
private:
EHeaderProviderSourceType Type;
FString Id;
FUnrealSourceFile* Cache;
};
bool operator==(const FHeaderProvider& A, const FHeaderProvider& B);