the UClass::HasProperty implements as:
if ( UClass* PropertiesClass = dynamic_cast(InProperty->GetOuter()) )
{
return PropertiesClass->FindNearestCommonBaseClass(this) != nullptr;
}
return false;
I think it should not use FindNearestCommonBaseClass.
when the PropertiesClass is the child of this UClass, then the property is only in PropertiesClass, so UClass::HasProperty should return false. but FindNearestCommonBaseClass still return true