diff --git a/src/dotty/tools/dotc/core/tasty/TastyFormat.scala b/src/dotty/tools/dotc/core/tasty/TastyFormat.scala index 1022fc4da825..94ed9405276c 100644 --- a/src/dotty/tools/dotc/core/tasty/TastyFormat.scala +++ b/src/dotty/tools/dotc/core/tasty/TastyFormat.scala @@ -104,7 +104,6 @@ Standard-Section: "ASTs" TopLevelStat* TERMREF possiblySigned_NameRef qual_Type THIS clsRef_Type REFINEDthis refinedType_ASTRef - SKOLEMtype Type_ASTRef SHARED path_ASTRef Constant = UNITconst @@ -158,7 +157,6 @@ Standard-Section: "ASTs" TopLevelStat* LAZY OVERRIDE INLINE // macro - ABSOVERRIDE // abstract override STATIC // mapped to static Java member OBJECT // an object or its class TRAIT // a trait @@ -239,39 +237,37 @@ object TastyFormat { final val LAZY = 14 final val OVERRIDE = 15 final val INLINE = 16 - final val ABSOVERRIDE = 17 - final val STATIC = 18 - final val OBJECT = 19 - final val TRAIT = 20 - final val LOCAL = 21 - final val SYNTHETIC = 22 - final val ARTIFACT = 23 - final val MUTABLE = 24 - final val LABEL = 25 - final val FIELDaccessor = 26 - final val CASEaccessor = 27 - final val COVARIANT = 28 - final val CONTRAVARIANT = 29 - final val SCALA2X = 30 - final val DEFAULTparameterized = 31 - final val INSUPERCALL = 32 + final val STATIC = 17 + final val OBJECT = 18 + final val TRAIT = 19 + final val LOCAL = 20 + final val SYNTHETIC = 21 + final val ARTIFACT = 22 + final val MUTABLE = 23 + final val LABEL = 24 + final val FIELDaccessor = 25 + final val CASEaccessor = 26 + final val COVARIANT = 27 + final val CONTRAVARIANT = 28 + final val SCALA2X = 29 + final val DEFAULTparameterized = 30 + final val INSUPERCALL = 31 final val SHARED = 64 final val TERMREFdirect = 65 final val TYPEREFdirect = 66 final val TERMREFpkg = 67 final val TYPEREFpkg = 68 - final val SKOLEMtype = 69 - final val REFINEDthis = 70 - final val BYTEconst = 71 - final val SHORTconst = 72 - final val CHARconst = 73 - final val INTconst = 74 - final val LONGconst = 75 - final val FLOATconst = 76 - final val DOUBLEconst = 77 - final val STRINGconst = 78 - final val IMPORTED = 79 + final val REFINEDthis = 69 + final val BYTEconst = 70 + final val SHORTconst = 71 + final val CHARconst = 72 + final val INTconst = 73 + final val LONGconst = 74 + final val FLOATconst = 75 + final val DOUBLEconst = 76 + final val STRINGconst = 77 + final val IMPORTED = 78 final val THIS = 96 final val CLASSconst = 97 @@ -351,7 +347,6 @@ object TastyFormat { | LAZY | OVERRIDE | INLINE - | ABSOVERRIDE | STATIC | OBJECT | TRAIT @@ -399,7 +394,6 @@ object TastyFormat { case LAZY => "LAZY" case OVERRIDE => "OVERRIDE" case INLINE => "INLINE" - case ABSOVERRIDE => "ABSOVERRIDE" case STATIC => "STATIC" case OBJECT => "OBJECT" case TRAIT => "TRAIT" @@ -421,7 +415,7 @@ object TastyFormat { case TYPEREFdirect => "TYPEREFdirect" case TERMREFpkg => "TERMREFpkg" case TYPEREFpkg => "TYPEREFpkg" - case SKOLEMtype => "SKOLEMtype" + case REFINEDthis => "REFINEDthis" case BYTEconst => "BYTEconst" case SHORTconst => "SHORTconst" case CHARconst => "CHARconst" diff --git a/src/dotty/tools/dotc/core/tasty/TreePickler.scala b/src/dotty/tools/dotc/core/tasty/TreePickler.scala index cd49f7c5a989..8847d2de3c40 100644 --- a/src/dotty/tools/dotc/core/tasty/TreePickler.scala +++ b/src/dotty/tools/dotc/core/tasty/TreePickler.scala @@ -202,7 +202,6 @@ class TreePickler(pickler: TastyPickler) { writeByte(REFINEDthis) writeRef(pickledTypes.get(tpe.binder).asInstanceOf[Addr]) case tpe: SkolemType => - writeByte(SKOLEMtype) pickleType(tpe.info) case tpe: RefinedType => val args = tpe.argInfos(interpolate = false) @@ -523,7 +522,7 @@ class TreePickler(pickler: TastyPickler) { if (sym.isTerm) { if (flags is Implicit) writeByte(IMPLICIT) if ((flags is Lazy) && !(sym is Module)) writeByte(LAZY) - if (flags is AbsOverride) writeByte(ABSOVERRIDE) + if (flags is AbsOverride) { writeByte(ABSTRACT); writeByte(OVERRIDE) } if (flags is Mutable) writeByte(MUTABLE) if (flags is Accessor) writeByte(FIELDaccessor) if (flags is CaseAccessor) writeByte(CASEaccessor) diff --git a/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala b/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala index d4260e679a00..11f6d12c57ad 100644 --- a/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala +++ b/src/dotty/tools/dotc/core/tasty/TreeUnpickler.scala @@ -256,8 +256,6 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) { ThisType.raw(readType().asInstanceOf[TypeRef]) case REFINEDthis => RefinedThis(readTypeRef().asInstanceOf[RefinedType]) - case SKOLEMtype => - SkolemType(readTypeRef()) case SHARED => val ref = readAddr() typeAtAddr.getOrElseUpdate(ref, forkAt(ref).readType()) @@ -429,7 +427,12 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) { case PRIVATE => addFlag(Private) case INTERNAL => ??? // addFlag(Internal) case PROTECTED => addFlag(Protected) - case ABSTRACT => addFlag(Abstract) + case ABSTRACT => + readByte() + nextByte match { + case OVERRIDE => addFlag(AbsOverride) + case _ => flags |= Abstract + } case FINAL => addFlag(Final) case SEALED => addFlag(Sealed) case CASE => addFlag(Case) @@ -437,7 +440,6 @@ class TreeUnpickler(reader: TastyReader, tastyName: TastyName.Table) { case LAZY => addFlag(Lazy) case OVERRIDE => addFlag(Override) case INLINE => addFlag(Inline) - case ABSOVERRIDE => addFlag(AbsOverride) case STATIC => addFlag(JavaStatic) case OBJECT => addFlag(Module) case TRAIT => addFlag(Trait) diff --git a/src/dotty/tools/dotc/printing/PlainPrinter.scala b/src/dotty/tools/dotc/printing/PlainPrinter.scala index a7b338be88c5..86dd3878c80a 100644 --- a/src/dotty/tools/dotc/printing/PlainPrinter.scala +++ b/src/dotty/tools/dotc/printing/PlainPrinter.scala @@ -231,7 +231,8 @@ class PlainPrinter(_ctx: Context) extends Printer { case tp: RefinedThis => s"${nameString(tp.binder.typeSymbol)}{...}.this" case tp: SkolemType => - "" + if (homogenizedView) toText(tp.info) + else "" } } diff --git a/src/dotty/tools/dotc/printing/RefinedPrinter.scala b/src/dotty/tools/dotc/printing/RefinedPrinter.scala index cf80969bf749..2288fe9c0c73 100644 --- a/src/dotty/tools/dotc/printing/RefinedPrinter.scala +++ b/src/dotty/tools/dotc/printing/RefinedPrinter.scala @@ -179,7 +179,7 @@ class RefinedPrinter(_ctx: Context) extends PlainPrinter(_ctx) { * * The body is simplified as follows * - if it is a TypeAlias, follow it - * - replace all references to of the form .HK$i by references + * - replace all references to of the form .HK$i by references * without a prefix, because the latter print nicer. * */