@@ -163,7 +163,7 @@ Standard-Section: "ASTs" TopLevelStat*
163
163
BYNAMEtype underlying_Type
164
164
PARAMtype Length binder_ASTref paramNum_Nat
165
165
POLYtype Length result_Type NamesTypes
166
- METHODtype Length result_Type NamesTypes // needed for refinements
166
+ methodType(_, _) Length result_Type NamesTypes // needed for refinements
167
167
TYPELAMBDAtype Length result_Type NamesTypes // variance encoded in front of name: +/-/(nothing)
168
168
SHAREDtype type_ASTRef
169
169
NamesTypes = NameType*
@@ -226,7 +226,7 @@ Standard Section: "Positions" Assoc*
226
226
object TastyFormat {
227
227
228
228
final val header = Array (0x5C , 0xA1 , 0xAB , 0x1F )
229
- val MajorVersion = 4
229
+ val MajorVersion = 5
230
230
val MinorVersion = 0
231
231
232
232
/** Tags used to serialize names */
@@ -392,14 +392,28 @@ object TastyFormat {
392
392
final val ANDtpt = 165
393
393
final val ORtype = 166
394
394
final val ORtpt = 167
395
- final val METHODtype = 168
396
- final val POLYtype = 169
397
- final val TYPELAMBDAtype = 170
398
- final val LAMBDAtpt = 171
399
- final val PARAMtype = 172
400
- final val ANNOTATION = 173
401
- final val TERMREFin = 174
402
- final val TYPEREFin = 175
395
+ final val POLYtype = 168
396
+ final val TYPELAMBDAtype = 169
397
+ final val LAMBDAtpt = 170
398
+ final val PARAMtype = 171
399
+ final val ANNOTATION = 172
400
+ final val TERMREFin = 173
401
+ final val TYPEREFin = 174
402
+
403
+ // In binary: 101100EI
404
+ // I = implicit method type
405
+ // E = erased method type
406
+ final val METHODtype = 176
407
+ final val IMPLICITMETHODtype = 177
408
+ final val ERASEDMETHODtype = 178
409
+ final val ERASEDIMPLICITMETHODtype = 179
410
+
411
+ def methodType (isImplicit : Boolean = false , isErased : Boolean = false ) = {
412
+ val implicitOffset = if (isImplicit) 1 else 0
413
+ val erasedOffset = if (isErased) 2 else 0
414
+ METHODtype + implicitOffset + erasedOffset
415
+ }
416
+
403
417
final val HOLE = 255
404
418
405
419
final val firstSimpleTreeTag = UNITconst
@@ -588,6 +602,9 @@ object TastyFormat {
588
602
case BYNAMEtpt => " BYNAMEtpt"
589
603
case POLYtype => " POLYtype"
590
604
case METHODtype => " METHODtype"
605
+ case IMPLICITMETHODtype => " IMPLICITMETHODtype"
606
+ case ERASEDMETHODtype => " ERASEDMETHODtype"
607
+ case ERASEDIMPLICITMETHODtype => " ERASEDIMPLICITMETHODtype"
591
608
case TYPELAMBDAtype => " TYPELAMBDAtype"
592
609
case LAMBDAtpt => " LAMBDAtpt"
593
610
case PARAMtype => " PARAMtype"
0 commit comments