diff options
author | Martin Odersky <odersky@gmail.com> | 2015-03-04 13:52:44 +0100 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-03-18 11:14:14 +0100 |
commit | 96fbd7bfe252026f59d1f5e8aa33f2d8fae65769 (patch) | |
tree | c4a53211dbf23913eb8174f74e248c16f1c26bab /tests/pos/pickleOK/unapply.scala | |
parent | e926f3167f8d9a1407f131abcb33a02b07477597 (diff) | |
download | dotty-96fbd7bfe252026f59d1f5e8aa33f2d8fae65769.tar.gz dotty-96fbd7bfe252026f59d1f5e8aa33f2d8fae65769.tar.bz2 dotty-96fbd7bfe252026f59d1f5e8aa33f2d8fae65769.zip |
Allow several units to be pickle-tested at once.
Also: Make Pickler a plain phase; it is neither a macro transformer nor
a miniphase.
Add tests to pickleOK that are known to be stable under pickling/unpicking
by comparing tree representations via show.
Diffstat (limited to 'tests/pos/pickleOK/unapply.scala')
-rw-r--r-- | tests/pos/pickleOK/unapply.scala | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/pos/pickleOK/unapply.scala b/tests/pos/pickleOK/unapply.scala new file mode 100644 index 000000000..ba885be73 --- /dev/null +++ b/tests/pos/pickleOK/unapply.scala @@ -0,0 +1,11 @@ +object test { + class Foo[T](val arg : T) + + object Foo { + def unapply [a](m : Foo[a]) = Some (m.arg) + } + def matchAndGetArgFromFoo[b]( e:Foo[b]):b = {e match { case Foo(x) => x }} +// Unapply node here will have type argument [a] instantiated to scala.Nothing: +// UnApply(TypeApply(Select(Ident(Foo),unapply),List(TypeTree[TypeVar(PolyParam(a) -> TypeRef(ThisType(TypeRef(NoPrefix,scala)),Nothing))])),List(),List(Bind(x,Ident(_)))) +// but the type of the UnApply node itself is correct: RefinedType(TypeRef(ThisType(TypeRef(ThisType(TypeRef(NoPrefix,<empty>)),test$)),Foo), test$$Foo$$a, TypeAlias(TypeRef(NoPrefix,a))) +} |