Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
lobrien opened this issue May 22, 2019 · 3 comments
Assignees
Labels

Comments

@lobrien
Copy link
Contributor

lobrien commented May 22, 2019

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.

@lobrien lobrien added the bug label May 22, 2019
lobrien added a commit to xamarin/apple-api-docs that referenced this issue May 22, 2019
@joelmartinez joelmartinez self-assigned this May 23, 2019
@joelmartinez
Copy link
Member

internal issue logged

@joelmartinez
Copy link
Member

@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:

  • Sort types as we iterate over them, to ensure any two given types like cicmykhalftone would always come in the same order.
  • If a second case-only-diff typename comes around, append something to the filename
  • Modify the code that matches the type name to the filename to watch out for this suffix (what should the suffix be? some separator that isn't a valid character in a typename, but is a valid path char?)

@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
Copy link
Member

@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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants