diff options
author | Philipp Haller <hallerp@gmail.com> | 2014-07-09 14:43:12 +0200 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2014-07-15 14:03:49 +0200 |
commit | 5762110d0dc2cb492e34d5595c473aa0f9ca786a (patch) | |
tree | 974c218830fcab44f386c11be28a82b0ec3acc71 /test/files/run/t7763.scala | |
parent | 87bba9418ca891c436f386207b3b9e70b4a64c71 (diff) | |
download | scala-5762110d0dc2cb492e34d5595c473aa0f9ca786a.tar.gz scala-5762110d0dc2cb492e34d5595c473aa0f9ca786a.tar.bz2 scala-5762110d0dc2cb492e34d5595c473aa0f9ca786a.zip |
SI-5919 TypeTags and Exprs should be serializable
- Make TypeCreator and TreeCreator extend Serializable.
- When replacing a SerializedTypeTag with a TypeTag or WeakTypeTag,
do not use scala.reflect.runtime.universe.rootMirror, since
it is unlikely to find user classes; instead, create a runtime
mirror using the context ClassLoader of the current thread.
Use the same logic for SerializedExpr.
- Remove writeObject/readObject methods from SerializedTypeTag
and SerializedExpr since they are unused.
- Add @throws annotation on writeReplace and readResolve methods.
- Handle SecurityException if the current thread cannot access the
context ClassLoader.
- To make type tags of primitive value classes serializable, make
PredefTypeCreator a top-level class. Otherwise, it would
retain a reference to the enclosing Universe,
rendering the TypeCreator non-serializable.
Binary compatibility:
- Keep nested PredefTypeCreator class to avoid backward binary
incompatible change.
- Keep `var` modifiers on the class parameters of
SerializedTypeTag for backward binary compatibility.
- Adds filter rules to forward binary compatibility whitelist:
- `TypeCreator`, `PredefTypeCreator`, and `TreeCreator` must now
extend from `Serializable`.
- Must have new class `scala.reflect.api.PredefTypeCreator`
to avoid problematic outer reference.
Diffstat (limited to 'test/files/run/t7763.scala')
0 files changed, 0 insertions, 0 deletions