Invalid character replacement: nullable vs array
IdkGoodName opened this issue · comments
Based on commit aa4bc16, it seems like ?
will be replaced with invalid character replacement that can be set in config.
Here comes the problem
Let's say we have 2 classes:
class X<T> { ... }
class X { ... }
And we have 2 methods:
A B(X x, Y? y)
A B(X<Y> x)
Wouldn't both be generated as
..._B(X_Y_)
..._B(X_Y_)
?
One could use NameAndMd5Mix
, but it could still be an overlooked issue regardless which user may not notice.
The ?
was actually already part of the invalid chars, this changed was made to allow you to give actual path to create a folder hierarchy for your pages. Before this change GetInvalidFileNameChars
was used which contains ?
so it should behave as before.
Also the two methods you give wouldn't have the same name, I think nullable struct would appear as Nullable<Y>
. And if it is c#8 nullable annotation, those should not be part of the actual method declaration.
Damn I guess ?
is not an invalid char for linux, and the nullable annotations leak into the file name >_> I will see what I can do.
,
(among other char [
, ]
, .
) is no longer considered invalid (what was I even thinking >_>), this should remove a lot of corner cases with risk of collision, and I removed the ?
annotation from the parameters (it will still be visible in the code definition) since it is not part of the member id.