@@ -144,18 +144,10 @@ class TreePickler(pickler: TastyPickler) {
144
144
pickleConstant(value)
145
145
case tpe : NamedType =>
146
146
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
+ }
159
151
if (sym.is(Flags .Package )) {
160
152
writeByte(if (tpe.isType) TYPEREFpkg else TERMREFpkg )
161
153
pickleName(sym.fullName)
@@ -166,16 +158,23 @@ class TreePickler(pickler: TastyPickler) {
166
158
withLength {
167
159
pickleName(sym.name)
168
160
pickleType(sym.info)
169
- pickleRef ()
161
+ pickleDirectRef ()
170
162
}
171
163
}
172
- else if (tpe.hasFixedSym ) {
173
- pickleRef ()
164
+ else if (tpe.prefix == NoPrefix ) {
165
+ pickleDirectRef ()
174
166
}
175
- else if (isLocallyDefined(sym) && tpe.signature.eq( Signature . NotAMethod ) ) {
167
+ else if (isLocallyDefined(sym)) {
176
168
writeByte(if (tpe.isType) TYPEREFsymbol else TERMREFsymbol )
177
169
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 {
179
178
writeByte(if (tpe.isType) TYPEREF else TERMREF )
180
179
pickleName(tpe.designatorName); pickleType(tpe.prefix)
181
180
}
0 commit comments