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