-
Notifications
You must be signed in to change notification settings - Fork 473
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
Traverse<T>() and TraverseDepthFirst<T>() show as extension methods on everything #889
Comments
QuantumToasted
changed the title
Traverse<T>() and TraverseDepth<T>() show as extension methods on everything
Traverse<T>() and TraverseDepthFirst<T>() show as extension methods on everything
Sep 1, 2021
As far as I can see, these methods have been added to optimize |
Yes, agreed. It's mainly for internal use. |
mrbean-bremen
added a commit
to mrbean-bremen/SVG
that referenced
this issue
Sep 1, 2021
- avoids polluting the external API - fixes svg-net#889
mrbean-bremen
added a commit
to mrbean-bremen/SVG
that referenced
this issue
Sep 2, 2021
- avoids polluting the external API - fixes svg-net#889
mrbean-bremen
added a commit
that referenced
this issue
Sep 2, 2021
- avoids polluting the external API - fixes #889
github-actions bot
pushed a commit
that referenced
this issue
Sep 2, 2021
…uting the external API - fixes #889
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I use the library as a small part of a project I work on, for processing SVG images downloaded from the internet, and it has been bothering me for awhile that these two methods show up as extensions methods for everything, including things that have absolutely nothing to do with this library.
Would it be possible to add a constraint on these methods or otherwise make them internal? Having a no-constraint generic extension method on a public API for a project dedicated to a specific line of work feels like a potential problem and at the very least, an eyesore for consumers.
This would be a breaking change to do either, and I have no clue how many people use these extensions outside of their internal use by the library, but it would be greatly appreciated.
I know this is totally splitting hairs for some, but for others like me it's a genuine annoyance when trying to work with other objects and seeing these extension methods on everything.
If absolutely desired, one could simply slap
[EditorBrowsable(EditorBrowsableState.Never)]
on them to not introduce a breaking change, but some IDEs like Rider still ignore this for some reason.The text was updated successfully, but these errors were encountered: