From b64f282a08e2bcaf405ce267c8243ebab09ee152 Mon Sep 17 00:00:00 2001 From: noti0na1 Date: Wed, 16 Feb 2022 19:47:37 -0500 Subject: [PATCH 1/2] Disable type simplify in unpickler --- .../tools/dotc/core/tasty/TreeUnpickler.scala | 2 -- tests/pos/pickleSkelom.scala | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 tests/pos/pickleSkelom.scala diff --git a/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala b/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala index af186e825591..ac315f4cef89 100644 --- a/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala +++ b/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala @@ -1297,8 +1297,6 @@ class TreeUnpickler(reader: TastyReader, } val tree = if (tag < firstLengthTreeTag) readSimpleTerm() else readLengthTerm() - if (!tree.isInstanceOf[TypTree]) // FIXME: Necessary to avoid self-type cyclic reference in tasty_tools - tree.overwriteType(tree.tpe.simplified) setSpan(start, tree) } diff --git a/tests/pos/pickleSkelom.scala b/tests/pos/pickleSkelom.scala new file mode 100644 index 000000000000..e598c8ebcbeb --- /dev/null +++ b/tests/pos/pickleSkelom.scala @@ -0,0 +1,15 @@ +class A + +type B = A + +def f[T](x: T): x.type & T = ??? + +def g = { + var a: B = ??? + f[A](a) +} + +def testNN = { + var s: String = ??? + s.nn +} \ No newline at end of file From 8f507850a7cc582fac3944a54ce09e3d1c3f4e16 Mon Sep 17 00:00:00 2001 From: noti0na1 Date: Thu, 17 Feb 2022 09:19:36 -0500 Subject: [PATCH 2/2] Rename test file --- tests/pos/{pickleSkelom.scala => pickleSkolem.scala} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename tests/pos/{pickleSkelom.scala => pickleSkolem.scala} (98%) diff --git a/tests/pos/pickleSkelom.scala b/tests/pos/pickleSkolem.scala similarity index 98% rename from tests/pos/pickleSkelom.scala rename to tests/pos/pickleSkolem.scala index e598c8ebcbeb..852b1cee65ba 100644 --- a/tests/pos/pickleSkelom.scala +++ b/tests/pos/pickleSkolem.scala @@ -12,4 +12,4 @@ def g = { def testNN = { var s: String = ??? s.nn -} \ No newline at end of file +}