diff options
author | Martin Odersky <odersky@gmail.com> | 2015-04-07 21:25:28 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-04-07 23:53:59 +0200 |
commit | 2d45d5b23983fa20b353fc83ba4e9b8585e5f662 (patch) | |
tree | 4afd64b342070cb621147eaa064225e6e383fc9a /test | |
parent | 3b53a8300f09c11a9fc889dbe59061a6941d21cc (diff) | |
download | dotty-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.scala | 5 |
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) |