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 |