Skip to content
This repository has been archived by the owner on Oct 19, 2020. It is now read-only.

Ambiguous function warning #32

Open
pixeltris opened this issue Oct 11, 2018 · 0 comments
Open

Ambiguous function warning #32

pixeltris opened this issue Oct 11, 2018 · 0 comments

Comments

@pixeltris
Copy link
Owner

pixeltris commented Oct 11, 2018

If there is a C# defined class which has a name ending in "Actor" and inherits from AActor there will be warnings on overridden functions (e.g. ReceiveBeginPlay) when opening a Blueprint editor.

This also happens in C++ if you were to create a class UMyActor : UObject and add an exposed function called ReceiveBeginPlay. There would be a warning that there is an ambiguous function conflicting with AActor even though UMyActor has nothing to do with AActor or its ReceiveBeginPlay function.

  • It doesn't seem like there is any obvious way to deal with this. Is there some way to set up our C# classes so that they are somehow skipped in this check? Blueprints seem to be skipped possibly due to their internal classes having _C suffixed onto their names.
  • If there isn't any work around for our C# class setup then possibly submit an issue to UE4?

Example:
LogUObjectHash: Warning: Ambiguous search, could be Function /Script/Engine.Actor:ReceiveBeginPlay or Function /Script/USharp.TestActor:ReceiveBeginPlay

To reproduce this warning manually:
FindObject<UFunction>(ANY_Package, TEXT("Actor:ReceiveBeginPlay"), true);

Callstack:

UE4Editor-CoreUObject.dll!StaticFindObjectFastInternalThreadSafe(FUObjectHashTables & ThreadHash, UClass * ObjectClass, UObject * ObjectPackage, FName ObjectName, bool bExactClass, bool bAnyPackage, EObjectFlags ExcludeFlags, EInternalObjectFlags ExclusiveInternalFlags) Line 517	C++
UE4Editor-CoreUObject.dll!StaticFindObjectFastInternal(UClass * ObjectClass, UObject * ObjectPackage, FName ObjectName, bool bExactClass, bool bAnyPackage, EObjectFlags ExcludeFlags, EInternalObjectFlags ExclusiveInternalFlags) Line 542	C++
UE4Editor-CoreUObject.dll!StaticFindObjectFast(UClass * ObjectClass, UObject * ObjectPackage, FName ObjectName, bool ExactClass, bool AnyPackage, EObjectFlags ExclusiveFlags, EInternalObjectFlags ExclusiveInternalFlags) Line 288	C++
UE4Editor-CoreUObject.dll!StaticFindObject(UClass * ObjectClass, UObject * InObjectPackage, const wchar_t * OrigInName, bool ExactClass) Line 365	C++
UE4Editor-Kismet.dll!FBlueprintSpawnNodeCommands::RegisterCommands() Line 328	C++
UE4Editor-Kismet.dll!TCommands<FBlueprintSpawnNodeCommands>::Register() Line 57	C++
UE4Editor-Kismet.dll!FBlueprintEditor::CreateDefaultCommands() Line 2375	C++
UE4Editor-Kismet.dll!FBlueprintEditor::CommonInitialization(const TArray<UBlueprint *,FDefaultAllocator> & InitBlueprints) Line 1650	C++
UE4Editor-Kismet.dll!FBlueprintEditor::InitBlueprintEditor(const EToolkitMode::Type Mode, const TSharedPtr<IToolkitHost,0> & InitToolkitHost, const TArray<UBlueprint *,FDefaultAllocator> & InBlueprints, bool bShouldOpenInDefaultsMode) Line 1768	C++
UE4Editor-Kismet.dll!FBlueprintEditorModule::CreateBlueprintEditor(const EToolkitMode::Type Mode, const TSharedPtr<IToolkitHost,0> & InitToolkitHost, UBlueprint * Blueprint, bool bShouldOpenInDefaultsMode) Line 257	C++
UE4Editor-AssetTools.dll!FAssetTypeActions_Blueprint::OpenAssetEditor(const TArray<UObject *,FDefaultAllocator> & InObjects, TSharedPtr<IToolkitHost,0> EditWithinLevelEditor) Line 87	C++
UE4Editor-UnrealEd.dll!FAssetEditorManager::OpenEditorForAsset(UObject * Asset, const EToolkitMode::Type ToolkitMode, TSharedPtr<IToolkitHost,0> OpenedFromLevelEditor, const bool bShowProgressWindow) Line 378	C++
UE4Editor-AssetTools.dll!FAssetTypeActions_Base::AssetsActivated(const TArray<UObject *,FDefaultAllocator> & InObjects, EAssetTypeActivationMethod::Type ActivationType) Line 57	C++
UE4Editor-ContentBrowser.dll!SContentBrowser::OnAssetsActivated(const TArray<FAssetData,FDefaultAllocator> & ActivatedAssets, EAssetTypeActivationMethod::Type ActivationMethod) Line 2085	C++
UE4Editor-ContentBrowser.dll!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,void __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::ExecuteIfSafe(const TArray<FAssetData,FDefaultAllocator> & <Params_0>, EAssetTypeActivationMethod::Type <Params_1>) Line 345	C++
UE4Editor-ContentBrowser.dll!SAssetView::OnListMouseButtonDoubleClick(TSharedPtr<FAssetViewItem,0> AssetItem) Line 4046	C++
UE4Editor-ContentBrowser.dll!TBaseSPMethodDelegateInstance<0,SAssetView,0,void __cdecl(TSharedPtr<FAssetViewItem,0>)>::ExecuteIfSafe(TSharedPtr<FAssetViewItem,0> <Params_0>) Line 345	C++
UE4Editor-ContentBrowser.dll!TBaseDelegate<void,TSharedPtr<FAssetViewItem,0> >::ExecuteIfBound(TSharedPtr<FAssetViewItem,0> <Params_0>) Line 624	C++
UE4Editor-ContentBrowser.dll!SListView<TSharedPtr<FAssetViewItem,0> >::Private_OnItemDoubleClicked(TSharedPtr<FAssetViewItem,0> TheItem) Line 815	C++
UE4Editor-ContentBrowser.dll!STableRow<TSharedPtr<FAssetViewItem,0> >::OnMouseButtonDoubleClick(const FGeometry & InMyGeometry, const FPointerEvent & InMouseEvent) Line 310	C++
UE4Editor-Slate.dll!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_eeb33fd1b480e3cad58a1531d90d2e14> >(FSlateApplication * ThisApplication, FEventRouter::FBubblePolicy RoutingPolicy, FPointerEvent EventCopy, const FSlateApplication::RoutePointerDoubleClickEvent::__l2::<lambda_eeb33fd1b480e3cad58a1531d90d2e14> & Lambda) Line 268	C++
UE4Editor-Slate.dll!FSlateApplication::RoutePointerDoubleClickEvent(FWidgetPath & WidgetsUnderPointer, FPointerEvent & PointerEvent) Line 5922	C++
UE4Editor-Slate.dll!FSlateApplication::ProcessMouseButtonDoubleClickEvent(const TSharedPtr<FGenericWindow,0> & PlatformWindow, FPointerEvent & InMouseEvent) Line 5909	C++
UE4Editor-Slate.dll!FSlateApplication::OnMouseDoubleClick(const TSharedPtr<FGenericWindow,0> & PlatformWindow, const EMouseButtons::Type Button, const FVector2D CursorPos) Line 5885	C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessDeferredMessage(const FDeferredWindowsMessage & DeferredMessage) Line 1740	C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::DeferMessage(TSharedPtr<FWindowsWindow,0> & NativeWindow, HWND__ * InHWnd, unsigned int InMessage, unsigned __int64 InWParam, __int64 InLParam, int MouseX, int MouseY, unsigned int RawInputFlags) Line 2182	C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::ProcessMessage(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 895	C++
UE4Editor-ApplicationCore.dll!FWindowsApplication::AppWndProc(HWND__ * hwnd, unsigned int msg, unsigned __int64 wParam, __int64 lParam) Line 732	C++
user32.dll!0000000077249bbd()	Unknown
user32.dll!00000000772498c2()	Unknown
UE4Editor-ApplicationCore.dll!FWindowsPlatformApplicationMisc::PumpMessages(bool bFromMainLoop) Line 129	C++
UE4Editor.exe!FEngineLoop::Tick() Line 3417	C++
UE4Editor.exe!GuardedMain(const wchar_t * CmdLine, HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, int nCmdShow) Line 166	C++
UE4Editor.exe!WinMain(HINSTANCE__ * hInInstance, HINSTANCE__ * hPrevInstance, char * __formal, int nCmdShow) Line 209	C++
UE4Editor.exe!__scrt_common_main_seh() Line 283	C++
kernel32.dll!00000000771259cd()	Unknown
ntdll.dll!000000007738385d()	Unknown
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant