Using TSubclassOf with Abstract?

Say I have something like:

UCLASS(Abstract, Blueprintable)
class GUNSGALORE_API ABaseWeapon : public AActor

I want to derive from this class in Blueprints and use those children as my actual weapons. Now, to give a weapon to my dude, I might want to have a function like so:

UFUNCTION(BlueprintCallable, Category = "Game", DisplayName = "Equip Weapon Of Type")
		void EquipWeaponOfType(TSubclassOf<class ABaseWeapon> WeaponClass);

However the drop-down in Blueprints doesn’t match what I’m expecting:

Here, BaseWeapon/Beam/Hitscan/Projectile should ideally not be shown since they are Abstract and should not be initialized.

Is there a better way to enforce this?

I also wish to have this feature, maybe something like a function meta data similar to AllowAbstract for FStringClassReference property to remove abstract classes from the dropdown menu. But unfortunately, afaik, up to 4.12 there’s no way to do this.