@@ -386,10 +386,8 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
386
386
private def noRhs (end : Addr ): Boolean =
387
387
currentAddr == end || isModifierTag(nextByte)
388
388
389
- private def localContext (owner : Symbol )(implicit ctx : Context ) = {
390
- val lctx = ctx.fresh.setOwner(owner)
391
- if (owner.isClass) lctx.setScope(owner.unforcedDecls) else lctx.setNewScope
392
- }
389
+ private def localContext (owner : Symbol )(implicit ctx : Context ) =
390
+ ctx.fresh.setOwner(owner)
393
391
394
392
private def normalizeFlags (tag : Int , givenFlags : FlagSet , name : Name , isAbsType : Boolean , rhsIsEmpty : Boolean )(implicit ctx : Context ): FlagSet = {
395
393
val lacksDefinition =
@@ -646,19 +644,18 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
646
644
}
647
645
}
648
646
647
+ val localCtx = localContext(sym)
648
+
649
649
def readRhs (implicit ctx : Context ) =
650
650
if (noRhs(end)) EmptyTree
651
651
else readLater(end, rdr => ctx => rdr.readTerm()(ctx))
652
652
653
- def localCtx = localContext(sym)
654
-
655
653
def ValDef (tpt : Tree ) =
656
654
ta.assignType(untpd.ValDef (sym.name.asTermName, tpt, readRhs(localCtx)), sym)
657
655
658
656
def DefDef (tparams : List [TypeDef ], vparamss : List [List [ValDef ]], tpt : Tree ) =
659
657
ta.assignType(
660
- untpd.DefDef (
661
- sym.name.asTermName, tparams, vparamss, tpt, readRhs(localCtx)),
658
+ untpd.DefDef (sym.name.asTermName, tparams, vparamss, tpt, readRhs(localCtx)),
662
659
sym)
663
660
664
661
def TypeDef (rhs : Tree ) =
@@ -672,7 +669,7 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
672
669
case DEFDEF =>
673
670
val tparams = readParams[TypeDef ](TYPEPARAM )(localCtx)
674
671
val vparamss = readParamss(localCtx)
675
- val tpt = readTpt()
672
+ val tpt = readTpt()(localCtx)
676
673
val typeParams = tparams.map(_.symbol)
677
674
val valueParamss = ctx.normalizeIfConstructor(
678
675
vparamss.nestedMap(_.symbol), name == nme.CONSTRUCTOR )
@@ -685,7 +682,7 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
685
682
}
686
683
DefDef (tparams, vparamss, tpt)
687
684
case VALDEF =>
688
- val tpt = readTpt()
685
+ val tpt = readTpt()(localCtx)
689
686
sym.info = tpt.tpe
690
687
ValDef (tpt)
691
688
case TYPEDEF | TYPEPARAM =>
@@ -704,7 +701,7 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
704
701
}
705
702
TypeDef (readTemplate(localCtx))
706
703
} else {
707
- val rhs = readTpt()
704
+ val rhs = readTpt()(localCtx)
708
705
sym.info = NoCompleter
709
706
sym.info = rhs.tpe match {
710
707
case _ : TypeBounds | _ : ClassInfo => checkNonCyclic(sym, rhs.tpe, reportErrors = false )
@@ -713,7 +710,7 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
713
710
TypeDef (rhs)
714
711
}
715
712
case PARAM =>
716
- val tpt = readTpt()
713
+ val tpt = readTpt()(localCtx)
717
714
if (noRhs(end)) {
718
715
sym.info = tpt.tpe
719
716
ValDef (tpt)
@@ -934,9 +931,8 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
934
931
def readBlock (mkTree : (List [Tree ], Tree ) => Tree ): Tree = {
935
932
val exprReader = fork
936
933
skipTree()
937
- val localCtx = ctx.fresh.setNewScope
938
- val stats = readStats(ctx.owner, end)(localCtx)
939
- val expr = exprReader.readTerm()(localCtx)
934
+ val stats = readStats(ctx.owner, end)
935
+ val expr = exprReader.readTerm()
940
936
mkTree(stats, expr)
941
937
}
942
938
@@ -1034,13 +1030,8 @@ class TreeUnpickler(reader: TastyReader, nameAtRef: NameRef => TermName, posUnpi
1034
1030
case ANNOTATEDtpt =>
1035
1031
Annotated (readTpt(), readTerm())
1036
1032
case LAMBDAtpt =>
1037
- var localCtx = ctx.fresh.setNewScope
1038
- ctx.owner match {
1039
- case cls : ClassSymbol => localCtx = localCtx.setOwner(localDummies(cls))
1040
- case _ =>
1041
- }
1042
- val tparams = readParams[TypeDef ](TYPEPARAM )(localCtx)
1043
- val body = readTpt()(localCtx)
1033
+ val tparams = readParams[TypeDef ](TYPEPARAM )
1034
+ val body = readTpt()
1044
1035
LambdaTypeTree (tparams, body)
1045
1036
case TYPEBOUNDStpt =>
1046
1037
TypeBoundsTree (readTpt(), readTpt())
0 commit comments