aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2015-04-07 21:25:28 +0200
committerMartin Odersky <odersky@gmail.com>2015-04-07 23:53:59 +0200
commit2d45d5b23983fa20b353fc83ba4e9b8585e5f662 (patch)
tree4afd64b342070cb621147eaa064225e6e383fc9a /test
parent3b53a8300f09c11a9fc889dbe59061a6941d21cc (diff)
downloaddotty-2d45d5b23983fa20b353fc83ba4e9b8585e5f662.tar.gz
dotty-2d45d5b23983fa20b353fc83ba4e9b8585e5f662.tar.bz2
dotty-2d45d5b23983fa20b353fc83ba4e9b8585e5f662.zip
Change of TERMREFsymbol/TYPEREFsymbol semantics
Used to be "with fixed sym". Now it is: With initial symbol as given in the serialized info. It turns out the only previous uses of (TERM|TYPE)REFsymbol were types that were made symbolic in self types. But exactly that caused that problems in unpickling which we tried to workaround by changing WithFixedSym#newLikeThis. And these fixes became less and less intuitive and still could not solve the problem for good. Last hurdle was pickle-testing all files in ast together. It's much simpler to reserve (TERM|TYPE)REFsymbol for NamedTypes that have an initial symbol. Like the previous "WithFixedSym" pickling, this avoids inifinite recursions in pickling/extmethods.scala. But it also avoids problens with unpickling ast/*.scala. The reason it is better is that it more accurately models that types that exist before pickling. This change also undoes previous changes to WithFixedSym#newlikeThis. Better to keep the more restrictive contract for these.
Diffstat (limited to 'test')
-rw-r--r--test/dotc/tests.scala5
1 files changed, 2 insertions, 3 deletions
diff --git a/test/dotc/tests.scala b/test/dotc/tests.scala
index 388f5ae23..d1b5538dc 100644
--- a/test/dotc/tests.scala
+++ b/test/dotc/tests.scala
@@ -39,9 +39,8 @@ class tests extends CompilerTest {
@Test def pickle_pickleOK = compileDir(picklingDir, testPickling)
@Test def pickle_pickling = compileDir(dotcDir + "tools/dotc/core/pickling/", testPickling)
- @Test def pickle_Trees = compileFile(dotcDir, "tools/dotc/ast/Trees", testPickling)
- @Test def pickle_untpd = compileFile(dotcDir, "tools/dotc/ast/untpd", testPickling)
-
+ @Test def pickle_ast = compileDir(dotcDir + "tools/dotc/ast/", testPickling)
+
//@Test def pickle_core = compileDir(dotcDir + "tools/dotc/core", testPickling, xerrors = 2) // two spurious comparison errors in Types and TypeOps
@Test def pos_t2168_pat = compileFile(posDir, "t2168", twice)