diff options
author | Paul Phillips <paulp@improving.org> | 2009-09-14 14:10:11 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2009-09-14 14:10:11 +0000 |
commit | c45e93e798e6a97aeda628b6d10f0e549b085704 (patch) | |
tree | 7e29ade84b9f851183166de46f00d7eaf42c3873 /src | |
parent | 9a22b72231871f1704dc3296ee58b4ebaa1f1660 (diff) | |
download | scala-c45e93e798e6a97aeda628b6d10f0e549b085704.tar.gz scala-c45e93e798e6a97aeda628b6d10f0e549b085704.tar.bz2 scala-c45e93e798e6a97aeda628b6d10f0e549b085704.zip |
Proposed (ideally destined for improvement and/...
Proposed (ideally destined for improvement and/or generalization) fix
for #2323.
Diffstat (limited to 'src')
-rw-r--r-- | src/compiler/scala/tools/nsc/symtab/Types.scala | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/Types.scala b/src/compiler/scala/tools/nsc/symtab/Types.scala index 5705399428..10723f285a 100644 --- a/src/compiler/scala/tools/nsc/symtab/Types.scala +++ b/src/compiler/scala/tools/nsc/symtab/Types.scala @@ -2086,7 +2086,9 @@ A type's typeSymbol should never be inspected directly. if (phase.erasedTypes) if (parents.isEmpty) ObjectClass.tpe else parents.head else { - val clazz = recycle(owner.newRefinementClass(NoPosition)) + // having $anonfun as owner causes the pickler to break upon unpickling; see ticket #2323 + val nonAnonOwner = (owner.ownerChain dropWhile (_.isAnonymousFunction)).headOption getOrElse NoSymbol + val clazz = recycle(nonAnonOwner.newRefinementClass(NoPosition)) val result = refinementOfClass(clazz, parents, decls) clazz.setInfo(result) result |