-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Fix #9482: implement reflect.Manifest summoning #13129
Conversation
So far there is no restriction on summoning - I can think of several options:
|
I won't be available to review this in the near future but my first reaction here is that this is way too much code and complexity for a legacy and known-broken feature, I also don't understand why some of the logic and error messages reference |
The special casing for And I will try to simplify, there is no need to support type parameters as I will also remove the special casing for |
I suggest emitting a deprecation warning encouraging the use of ClassTag and http://dotty.epfl.ch/docs/reference/metaprogramming/toc.html whenever we materialize a Manifest. |
see #13142 |
This PR implements summoning for
reflect.Manifest
,reflect.OptManifest
andreflect.ClassManifest
following the algorithm present in Scala 2:https://github.com/scala/scala/blob/0c011547b1ccf961ca427c3d3459955e618e93d5/src/compiler/scala/tools/nsc/typechecker/Implicits.scala#L1519
A special case is added in Definitions for
reflect.ClassManifest
so that is not de-aliased at the time of Implicit search, added in c84f057, so careful review is required here.fixes #9482