mono / api-doc-tools

.NET Reference API Toolchain
MIT License
68 stars 47 forks source link

[mdoc] Class names must be case-sensitive, lest recursive inheritance expressed in XML #434

Open lobrien opened 5 years ago

lobrien commented 5 years ago

Xamarin.Mac has two classes: CICmykHalftone : CIFilter and CICMYKHalftone : CICmykHalftone. (Note "CMYK" vs "Cmyk"). This is legal C#. An mdoc update generates:

<Type Name="CICmykHalftone" FullName="CoreImage.CICmykHalftone">
  <TypeSignature Language="C#" Value="public class CICmykHalftone : CoreImage.CIFilter" />
 <!-- snip -->
  <Base>
    <BaseTypeName>CoreImage.CIFilter</BaseTypeName>
    <BaseTypeName FrameworkAlternate="xamarin-macos-sdk-14">CoreImage.CICmykHalftone</BaseTypeName>
  </Base>
<!-- snip --> 

This defines a recursive inheritance, which breaks Ecma2Yaml with an OutOfMemoryException.

joelmartinez commented 5 years ago

internal issue logged

joelmartinez commented 5 years ago

@lobrien Trying to think about how we can work around this, given that we can't have a file that is changed only by case ... I'm thinking about the following plan:

@TianqiZhang, would there be any ecma2yaml changes needed if I implement this change at some point? Otherwise, what are your thoughts on the above proposal?

joelmartinez commented 5 years ago

@lobrien @TianqiZhang another thought ... ops is ultimately not case sensitive. So even if we add support for this type, it will not be able to be properly addressed on docs.microsoft.com