Skip to content

Commit 9ee21cf

Browse files
committed
Merge pull request scala#638 from dotty-staging/change/simplify-tasty
Change/simplify tasty
2 parents 0a50465 + 815209e commit 9ee21cf

File tree

5 files changed

+36
-40
lines changed

5 files changed

+36
-40
lines changed

src/dotty/tools/dotc/core/tasty/TastyFormat.scala

Lines changed: 26 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ Standard-Section: "ASTs" TopLevelStat*
104104
TERMREF possiblySigned_NameRef qual_Type
105105
THIS clsRef_Type
106106
REFINEDthis refinedType_ASTRef
107-
SKOLEMtype Type_ASTRef
108107
SHARED path_ASTRef
109108
110109
Constant = UNITconst
@@ -158,7 +157,6 @@ Standard-Section: "ASTs" TopLevelStat*
158157
LAZY
159158
OVERRIDE
160159
INLINE // macro
161-
ABSOVERRIDE // abstract override
162160
STATIC // mapped to static Java member
163161
OBJECT // an object or its class
164162
TRAIT // a trait
@@ -239,39 +237,37 @@ object TastyFormat {
239237
final val LAZY = 14
240238
final val OVERRIDE = 15
241239
final val INLINE = 16
242-
final val ABSOVERRIDE = 17
243-
final val STATIC = 18
244-
final val OBJECT = 19
245-
final val TRAIT = 20
246-
final val LOCAL = 21
247-
final val SYNTHETIC = 22
248-
final val ARTIFACT = 23
249-
final val MUTABLE = 24
250-
final val LABEL = 25
251-
final val FIELDaccessor = 26
252-
final val CASEaccessor = 27
253-
final val COVARIANT = 28
254-
final val CONTRAVARIANT = 29
255-
final val SCALA2X = 30
256-
final val DEFAULTparameterized = 31
257-
final val INSUPERCALL = 32
240+
final val STATIC = 17
241+
final val OBJECT = 18
242+
final val TRAIT = 19
243+
final val LOCAL = 20
244+
final val SYNTHETIC = 21
245+
final val ARTIFACT = 22
246+
final val MUTABLE = 23
247+
final val LABEL = 24
248+
final val FIELDaccessor = 25
249+
final val CASEaccessor = 26
250+
final val COVARIANT = 27
251+
final val CONTRAVARIANT = 28
252+
final val SCALA2X = 29
253+
final val DEFAULTparameterized = 30
254+
final val INSUPERCALL = 31
258255

259256
final val SHARED = 64
260257
final val TERMREFdirect = 65
261258
final val TYPEREFdirect = 66
262259
final val TERMREFpkg = 67
263260
final val TYPEREFpkg = 68
264-
final val SKOLEMtype = 69
265-
final val REFINEDthis = 70
266-
final val BYTEconst = 71
267-
final val SHORTconst = 72
268-
final val CHARconst = 73
269-
final val INTconst = 74
270-
final val LONGconst = 75
271-
final val FLOATconst = 76
272-
final val DOUBLEconst = 77
273-
final val STRINGconst = 78
274-
final val IMPORTED = 79
261+
final val REFINEDthis = 69
262+
final val BYTEconst = 70
263+
final val SHORTconst = 71
264+
final val CHARconst = 72
265+
final val INTconst = 73
266+
final val LONGconst = 74
267+
final val FLOATconst = 75
268+
final val DOUBLEconst = 76
269+
final val STRINGconst = 77
270+
final val IMPORTED = 78
275271

276272
final val THIS = 96
277273
final val CLASSconst = 97
@@ -351,7 +347,6 @@ object TastyFormat {
351347
| LAZY
352348
| OVERRIDE
353349
| INLINE
354-
| ABSOVERRIDE
355350
| STATIC
356351
| OBJECT
357352
| TRAIT
@@ -399,7 +394,6 @@ object TastyFormat {
399394
case LAZY => "LAZY"
400395
case OVERRIDE => "OVERRIDE"
401396
case INLINE => "INLINE"
402-
case ABSOVERRIDE => "ABSOVERRIDE"
403397
case STATIC => "STATIC"
404398
case OBJECT => "OBJECT"
405399
case TRAIT => "TRAIT"
@@ -421,7 +415,7 @@ object TastyFormat {
421415
case TYPEREFdirect => "TYPEREFdirect"
422416
case TERMREFpkg => "TERMREFpkg"
423417
case TYPEREFpkg => "TYPEREFpkg"
424-
case SKOLEMtype => "SKOLEMtype"
418+
case REFINEDthis => "REFINEDthis"
425419
case BYTEconst => "BYTEconst"
426420
case SHORTconst => "SHORTconst"
427421
case CHARconst => "CHARconst"

src/dotty/tools/dotc/core/tasty/TreePickler.scala

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,6 @@ class TreePickler(pickler: TastyPickler) {
202202
writeByte(REFINEDthis)
203203
writeRef(pickledTypes.get(tpe.binder).asInstanceOf[Addr])
204204
case tpe: SkolemType =>
205-
writeByte(SKOLEMtype)
206205
pickleType(tpe.info)
207206
case tpe: RefinedType =>
208207
val args = tpe.argInfos(interpolate = false)
@@ -523,7 +522,7 @@ class TreePickler(pickler: TastyPickler) {
523522
if (sym.isTerm) {
524523
if (flags is Implicit) writeByte(IMPLICIT)
525524
if ((flags is Lazy) && !(sym is Module)) writeByte(LAZY)
526-
if (flags is AbsOverride) writeByte(ABSOVERRIDE)
525+
if (flags is AbsOverride) { writeByte(ABSTRACT); writeByte(OVERRIDE) }
527526
if (flags is Mutable) writeByte(MUTABLE)
528527
if (flags is Accessor) writeByte(FIELDaccessor)
529528
if (flags is CaseAccessor) writeByte(CASEaccessor)

src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -256,8 +256,6 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) {
256256
ThisType.raw(readType().asInstanceOf[TypeRef])
257257
case REFINEDthis =>
258258
RefinedThis(readTypeRef().asInstanceOf[RefinedType])
259-
case SKOLEMtype =>
260-
SkolemType(readTypeRef())
261259
case SHARED =>
262260
val ref = readAddr()
263261
typeAtAddr.getOrElseUpdate(ref, forkAt(ref).readType())
@@ -433,15 +431,19 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) {
433431
case PRIVATE => addFlag(Private)
434432
case INTERNAL => ??? // addFlag(Internal)
435433
case PROTECTED => addFlag(Protected)
436-
case ABSTRACT => addFlag(Abstract)
434+
case ABSTRACT =>
435+
readByte()
436+
nextByte match {
437+
case OVERRIDE => addFlag(AbsOverride)
438+
case _ => flags |= Abstract
439+
}
437440
case FINAL => addFlag(Final)
438441
case SEALED => addFlag(Sealed)
439442
case CASE => addFlag(Case)
440443
case IMPLICIT => addFlag(Implicit)
441444
case LAZY => addFlag(Lazy)
442445
case OVERRIDE => addFlag(Override)
443446
case INLINE => addFlag(Inline)
444-
case ABSOVERRIDE => addFlag(AbsOverride)
445447
case STATIC => addFlag(JavaStatic)
446448
case OBJECT => addFlag(Module)
447449
case TRAIT => addFlag(Trait)

src/dotty/tools/dotc/printing/PlainPrinter.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,8 @@ class PlainPrinter(_ctx: Context) extends Printer {
231231
case tp: RefinedThis =>
232232
s"${nameString(tp.binder.typeSymbol)}{...}.this"
233233
case tp: SkolemType =>
234-
"<unknown instance of type " ~ toTextGlobal(tp.info) ~ ">"
234+
if (homogenizedView) toText(tp.info)
235+
else "<unknown instance of type " ~ toTextGlobal(tp.info) ~ ">"
235236
}
236237
}
237238

src/dotty/tools/dotc/printing/RefinedPrinter.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) {
179179
*
180180
* The body is simplified as follows
181181
* - if it is a TypeAlias, follow it
182-
* - replace all references to of the form <skolem>.HK$i by references
182+
* - replace all references to of the form <refined-this>.HK$i by references
183183
* without a prefix, because the latter print nicer.
184184
*
185185
*/

0 commit comments

Comments
 (0)