Reproduced 3/3 times, issue also occurs in //UE5/Release-5.0 - CL 20979098 Binary. Confirmed NOT a Regression.
EnumBugBP uses two enum cases and three argument cases for 6 total permutations:
In all cases where the argument name matches an enum value (cases 3, 5, and 6) the executed output pin is always pin 0.
#pragma once
#include "CoreMinimal.h"
#include "Kismet/BlueprintFunctionLibrary.h"
#include "EnumBugBP.generated.h"
UENUM(BlueprintType)
enum class EPinSlot : uint8 {
First,
Second,
Third,
Fourth,
Fifth
};
UENUM(BlueprintType)
enum class EPinSlotSameName : uint8 {
First,
PinSlotSameName,
Third,
Fourth,
Fifth
};
UCLASS()
class UEnumBugBP : public UBlueprintFunctionLibrary {
GENERATED_BODY()
public:
UFUNCTION(BlueprintCallable, Category = "EnumBug", meta = (ExpandEnumAsExecs = "outPath"))
static void TakeEnumPath(EPinSlot desiredPath, EPinSlot& outPath);
UFUNCTION(BlueprintCallable, Category = "EnumBug", meta = (ExpandEnumAsExecs = "pinSlot"))
static void TakeEnumPathSameArgName(EPinSlot desiredPath, EPinSlot& pinSlot);
UFUNCTION(BlueprintCallable, Category = "EnumBug", meta = (ExpandEnumAsExecs = "third"))
static void TakeEnumPathArgIsEnumVal(EPinSlot desiredPath, EPinSlot& third);
UFUNCTION(BlueprintCallable, Category = "EnumBug", meta = (ExpandEnumAsExecs = "outPath"))
static void TakeEnumPathSameName(EPinSlotSameName desiredPath, EPinSlotSameName& outPath);
UFUNCTION(BlueprintCallable, Category = "EnumBug", meta = (ExpandEnumAsExecs = "pinSlotSameName"))
static void TakeEnumPathSameNameSameArgName(EPinSlotSameName desiredPath, EPinSlotSameName& pinSlotSameName);
UFUNCTION(BlueprintCallable, Category = "EnumBug", meta = (ExpandEnumAsExecs = "fourth"))
static void TakeEnumPathSameNameSameArgIsEnumVal(EPinSlotSameName desiredPath, EPinSlotSameName& fourth);
};
#include "EnumBugBP.h"
#include "Engine.h"
void UEnumBugBP::TakeEnumPath(EPinSlot desiredPath, EPinSlot& outPath) {
outPath = desiredPath;
}
void UEnumBugBP::TakeEnumPathSameArgName(EPinSlot desiredPath, EPinSlot& pinSlot) {
pinSlot = desiredPath;
}
void UEnumBugBP::TakeEnumPathArgIsEnumVal(EPinSlot desiredPath, EPinSlot& third) {
third = desiredPath;
}
void UEnumBugBP::TakeEnumPathSameName(EPinSlotSameName desiredPath, EPinSlotSameName& outPath) {
outPath = desiredPath;
}
void UEnumBugBP::TakeEnumPathSameNameSameArgName(EPinSlotSameName desiredPath, EPinSlotSameName& pinSlotSameName) {
pinSlotSameName = desiredPath;
}
void UEnumBugBP::TakeEnumPathSameNameSameArgIsEnumVal(EPinSlotSameName desiredPath, EPinSlotSameName& fourth) {
fourth = desiredPath;
}
Actual Result: "first" is printed, despite First not being the chosen Enum
Expected Result: "second" is printed, because it was the chosen Enum
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-174107 in the post.
| 0 |
| Component | UE - Gameplay - Blueprint |
|---|---|
| Affects Versions | 5.1 |
| Target Fix | 5.3 |
| Created | Jan 13, 2023 |
|---|---|
| Resolved | Feb 3, 2023 |
| Updated | May 10, 2023 |