Skip to content

Commit 9c4afd6

Browse files
committed
Avpid global side effects in unpickle tests
1 parent cd1a7b2 commit 9c4afd6

File tree

1 file changed

+6
-2
lines changed

1 file changed

+6
-2
lines changed

compiler/src/dotty/tools/dotc/transform/Pickler.scala

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,10 +173,14 @@ class Pickler extends Phase {
173173
cls -> (unit, unpickler)
174174
}
175175
pickling.println("************* entered toplevel ***********")
176+
val rootCtx = ctx
176177
for ((cls, (unit, unpickler)) <- unpicklers) do
177-
ctx.compilationUnit.needsCaptureChecking = unit.needsCaptureChecking
178178
val unpickled = unpickler.rootTrees
179-
testSame(i"$unpickled%\n%", beforePickling(cls), cls)
179+
val freshUnit = CompilationUnit(rootCtx.compilationUnit.source)
180+
freshUnit.needsCaptureChecking = unit.needsCaptureChecking
181+
freshUnit.knowsPureFuns = unit.knowsPureFuns
182+
inContext(rootCtx.fresh.setCompilationUnit(freshUnit)):
183+
testSame(i"$unpickled%\n%", beforePickling(cls), cls)
180184

181185
private def testSame(unpickled: String, previous: String, cls: ClassSymbol)(using Context) =
182186
import java.nio.charset.StandardCharsets.UTF_8

0 commit comments

Comments
 (0)