private void PreAnalyzePropertyData(PropertyData propertyData, SemanticModel semanticModel) { var newType = propertyData.TypeData.IsNewType; if (!_configuration.PropertyConversion) { // Ignore getter and setter accessors and copy the property if needed propertyData.IgnoreAccessors(IgnoreReason.PropertyConversion); } if (newType) { propertyData.Copy(); // TODO: copy only if needed } else if (propertyData.TypeData.GetSelfAndAncestorsTypeData().Any(o => o.Conversion == TypeConversion.Partial || o.Conversion == TypeConversion.Ignore)) { propertyData.Conversion = PropertyConversion.Ignore; // For partial types we do not want to copy the property } if (!_configuration.PropertyConversion) { return; } var getter = propertyData.GetAccessorData; if (getter != null) { PreAnalyzeFunctionData(getter, semanticModel); } var setter = propertyData.SetAccessorData; if (setter != null) { PreAnalyzeFunctionData(setter, semanticModel); } }