@@ -144,18 +144,10 @@ class TreePickler(pickler: TastyPickler) {
144144 pickleConstant(value)
145145 case tpe : NamedType =>
146146 val sym = tpe.symbol
147- def pickleRef () =
148- if (tpe.prefix == NoPrefix ) {
149- writeByte(if (tpe.isType) TYPEREFdirect else TERMREFdirect )
150- pickleSymRef(sym)
151- }
152- else {
153- assert(tpe.symbol.isClass)
154- assert(tpe.symbol.is(Flags .Scala2x ), tpe.symbol.showLocated)
155- writeByte(TYPEREF ) // should be changed to a new entry that keeps track of prefix, symbol & owner
156- pickleName(tpe.name)
157- pickleType(tpe.prefix)
158- }
147+ def pickleDirectRef () = {
148+ writeByte(if (tpe.isType) TYPEREFdirect else TERMREFdirect )
149+ pickleSymRef(sym)
150+ }
159151 if (sym.is(Flags .Package )) {
160152 writeByte(if (tpe.isType) TYPEREFpkg else TERMREFpkg )
161153 pickleName(sym.fullName)
@@ -166,16 +158,23 @@ class TreePickler(pickler: TastyPickler) {
166158 withLength {
167159 pickleName(sym.name)
168160 pickleType(sym.info)
169- pickleRef ()
161+ pickleDirectRef ()
170162 }
171163 }
172- else if (tpe.hasFixedSym ) {
173- pickleRef ()
164+ else if (tpe.prefix == NoPrefix ) {
165+ pickleDirectRef ()
174166 }
175- else if (isLocallyDefined(sym) && tpe.signature.eq( Signature . NotAMethod ) ) {
167+ else if (isLocallyDefined(sym)) {
176168 writeByte(if (tpe.isType) TYPEREFsymbol else TERMREFsymbol )
177169 pickleSymRef(sym); pickleType(tpe.prefix)
178- } else {
170+ }
171+ else if (tpe.hasFixedSym) {
172+ assert(tpe.symbol.isClass && tpe.symbol.is(Flags .Scala2x ), tpe.symbol.showLocated)
173+ writeByte(TYPEREF ) // should be changed to a new entry that keeps track of prefix, symbol & owner
174+ pickleName(tpe.name)
175+ pickleType(tpe.prefix)
176+ }
177+ else {
179178 writeByte(if (tpe.isType) TYPEREF else TERMREF )
180179 pickleName(tpe.designatorName); pickleType(tpe.prefix)
181180 }
0 commit comments