From ec9b00e1955fb24038542c5ba67ba8483efb5b50 Mon Sep 17 00:00:00 2001 From: Adriaan Moors Date: Wed, 26 Jan 2011 07:33:07 +0000 Subject: closes #2741, #4079: pickling now ensures that ... closes #2741, #4079: pickling now ensures that a local type param with a non-local owner, which will thus get a localized owner, will only get a class as its localized owner if its old owner was a class (otherwise, NoSymbol) this ensures that asSeenFrom does not treat typerefs to this symbol differently after pickling. todo: should we pro-actively set the owner of these type params to something else than the type alias that they originate from? see notes in typeFunAnon review by odersky --- test/files/pos/t2741/2741_1.scala | 9 +++++++++ test/files/pos/t2741/2741_2.scala | 5 +++++ 2 files changed, 14 insertions(+) create mode 100644 test/files/pos/t2741/2741_1.scala create mode 100644 test/files/pos/t2741/2741_2.scala (limited to 'test/files/pos/t2741') diff --git a/test/files/pos/t2741/2741_1.scala b/test/files/pos/t2741/2741_1.scala new file mode 100644 index 0000000000..d47ed3b6cb --- /dev/null +++ b/test/files/pos/t2741/2741_1.scala @@ -0,0 +1,9 @@ +trait Partial { + type Apply[XYZ] = List[XYZ] +} +trait MA[M[_]] +trait MAs { + val a: MA[Partial#Apply] = null // after compilation, the type is pickled as `MA[ [B] List[B] ]` +} + +object Scalaz extends MAs \ No newline at end of file diff --git a/test/files/pos/t2741/2741_2.scala b/test/files/pos/t2741/2741_2.scala new file mode 100644 index 0000000000..41f6a64260 --- /dev/null +++ b/test/files/pos/t2741/2741_2.scala @@ -0,0 +1,5 @@ +// object Test compiles jointly, but not separately. +object Test { + import Scalaz._ + Scalaz.a +} \ No newline at end of file -- cgit v1.2.3