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
build manager: Usage sites not recompiled when method is made specialized #2652
Comments
Imported From: https://issues.scala-lang.org/browse/SI-2652?orig=1 |
@adriaanm said: |
@harrah said: def x[@specialized("Int") T](t: T) = t Modifying it to be: def x[@specialized("Long") T](t: T) = t causes B to correctly be recompiled because B used a specialized method that is now gone. However, changing it back to "Int" will not recompile B because it uses the unspecialized method now and annotation arguments are not compared. B should be recompiled because x is now specialized to Int. Replying to "Any others that should be checked?" in r20624, Java annotations are not supposed to modify the annotated source code, but Scala annotations can. Obviously serialized is an example of one. I've not used the continuations plugin, but it looks like changes to 'cps' need to be propagated. I don't know about remote, serializable, throws, and cloneable. I don't think the added signatures are visible to Scala code, so they might be fine. I don't know what how the refined build manager is supposed to interact with Java sources, though, in which case it might matter. Java annotations can cause messages to be displayed during compilation, however. A standard example is deprecated. This might warrant a blacklist instead of a whitelist for annotations, since you can't know all annotations and their behaviors. |
@harrah said: Also, (By whitelist, I mean how the build manager currently checks a list containing names of annotations that should be considered for changes.) |
@hubertp said: |
Using: Scala version 2.8.0.r19673-b20091116132603 (OpenJDK 64-Bit Server VM, Java 1.6.0_0)
Given A.scala, B.scala
The text was updated successfully, but these errors were encountered: