-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Description
In my case, I discovered a static function, name collision trying to bind MetasoundEngine.
In Engine\Plugins\Runtime\Metasound\Source\MetasoundEngine\Public\MetasoundSettings.h, there are two classes with UFUNCTION's of the same name.
UCLASS(Hidden)
class METASOUNDENGINE_API UMetaSoundQualityHelper : public UObject
{
GENERATED_BODY()
public:
/**
* Returns a list of quality settings to present to a combobox
* */
UFUNCTION(meta = (DeprecatedFunction, DeprecationMessage = "Use UMetaSoundSettings::GetQualityNames instead"))
static TArray<FName> GetQualityNames() { return { }; };
};UCLASS(config = MetaSound, defaultconfig, meta = (DisplayName = "MetaSounds"))
class METASOUNDENGINE_API UMetaSoundSettings : public UDeveloperSettings
{
...
/* Returns an array of quality setting names. Can be used to present to a combobox. Ex:
* UPROPERTY(... meta=(GetOptions="MetasoundEngine.MetaSoundSettings.GetQualityNames"))
* FName QualitySetting;
*/
UFUNCTION()
static TArray<FName> GetQualityNames();
...
}In this case one of the functions is deprecated, and there was another place where I got a collision but I didn't record where that happened. It'll probably happen quite a few times in the engine.
In the Nim generated bindings static functions aren't qualified. We need a way to deal with them automatically, e.g. log or display a message if there's a collision, modify the name of static functions to include the class name if they're in the same module, or resort to manual bindings so they can be renamed.
samaursa
Metadata
Metadata
Assignees
Labels
No labels