From 661bc28d44c3abc16a4f12efe8007eb995b99c75 Mon Sep 17 00:00:00 2001 From: Nicolas Stucki Date: Wed, 8 Feb 2023 12:18:35 +0100 Subject: [PATCH] Simplify change --- .../src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala b/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala index e507e8aa1a3d..aef4ca409974 100644 --- a/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala +++ b/compiler/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala @@ -265,11 +265,7 @@ class TreeUnpickler(reader: TastyReader, case Some(sym) => sym case None => - val ownerInTree = ownerTree.findOwner(addr) - val ctx1 = - if ownerInTree.exists then ctx.withOwner(ownerInTree) - else ctx // this is a pickled expression and the owner is located outside the expression (i.e. pickled quote) - val sym = forkAt(addr).createSymbol()(using ctx1) + val sym = forkAt(addr).createSymbol()(using ctx.withOwner(ownerTree.findOwner(addr))) report.log(i"forward reference to $sym") sym } @@ -1624,7 +1620,8 @@ class TreeUnpickler(reader: TastyReader, try cs match { case ot :: cs1 => if (ot.addr.index == addr.index) { - current + // this is a pickled expression and the owner is located outside the expression (i.e. pickled quote) + ctx.owner } else if (ot.addr.index < addr.index && addr.index < ot.end.index) search(ot.children, reader.symbolAt(ot.addr))