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
Use case methods hide information about the actual method #5287
Comments
Imported From: https://issues.scala-lang.org/browse/SI-5287?orig=1 |
@VladUreche said: |
@dcsobral said: trunk: Definition Classes GenTraversableLike 2.9.1: Definition Classes TraversableLike → GenTraversableLike → FilterMonadic |
@VladUreche said: What method are you referring to? |
@VladUreche said: Okay, this is starting to annoy me... Both this problem and the abstract annotation are related to how Symbol is initialized: at the time the use cases are generated, the member's Symbol has flag DEFERRED and is not (completely) initialized. Now I need to find out what exactly needs to be done to force initialization, as cloning it at the time it's DEFERRED yields all these incorrect results. It's funny that the problem was there all along, but nobody noticed the use case problems until I removed the full signatures. :)) Thanks for pointing it out, I'll look into it. Hopefully I'll fix it for good this time. |
@paulp said:
In general, you call .initialize. |
@paulp said: |
@VladUreche said: |
@paulp said: |
@VladUreche said: The Usecase symbol is added when typers encounters a DocDef (Typers.scala:4017) by calling typedUseCase on Typers.scala:1643 and setting useCase.defined in Typers.scala:1669. So the fix should be pretty simple: we need not rely on the symbol set by typers but on the symbol provided by scaladoc. On the other hand, I really want to understand why isn't the UseCase.defined symbol updated properly. |
@VladUreche said: |
Now that use cases hide the actual method, deficiencies in their implementation have become critical. Basically, their whole body is based on the use case definition, so they show up as abstract (whether they are or not), attributes are lost (such as "final"), and the definition classes become useless.
To put it simply, the documentation for all methods with use cases is now BROKEN, in a way that goes way beyond simply displaying a false signature. And, of course, we presently have no way of actually looking up the real signature -- since definition classes is broken, we can't even track the source code for it.
Personally, I consider this issue Critical. The nightly docs are used by a lot of people, but they mostly know how to get around. If, however, a release is made in the current condition, there will be hell to be paid because of these issues.
The text was updated successfully, but these errors were encountered: