object TastyFormat
- Alphabetic
- By Inheritance
- TastyFormat
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
- class NameTags extends AnyRef
Tags used to serialize names, should update TastyFormat$.nameTagToString if a new constant is added
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final val ABSTRACT: Int(9)
- final val ALTERNATIVE: Int(151)
- final val ANDtype: Int(165)
- final val ANNOTATEDtpt: Int(154)
- final val ANNOTATEDtype: Int(153)
- final val ANNOTATION: Int(173)
- final val APPLIEDtpt: Int(162)
- final val APPLIEDtype: Int(161)
- final val APPLY: Int(136)
- final val ARTIFACT: Int(24)
- final val ASSIGN: Int(139)
- final val ASTsSection: String("ASTs")
- final val BIND: Int(150)
- final val BLOCK: Int(140)
- final val BOUNDED: Int(102)
- final val BYNAMEtpt: Int(94)
- final val BYNAMEtype: Int(93)
- final val BYTEconst: Int(67)
- final val CASE: Int(12)
- final val CASEDEF: Int(155)
- final val CASEaccessor: Int(27)
- final val CHARconst: Int(69)
- final val CLASSconst: Int(92)
- final val CONTRAVARIANT: Int(29)
- final val COVARIANT: Int(28)
- final val CommentsSection: String("Comments")
- final val DEFDEF: Int(130)
- final val DOUBLEconst: Int(73)
- final val EMPTYCLAUSE: Int(45)
- final val ENUM: Int(21)
- final val ERASED: Int(34)
- final val EXPORT: Int(177)
- final val EXPORTED: Int(39)
- final val EXTENSION: Int(36)
- final val ExperimentalVersion: Int
Natural Number.
Natural Number. The
ExperimentalVersion
allows for experimentation with changes to TASTy without committing to any guarantees of compatibility.A zero value indicates that the TASTy version is from a stable, final release.
A strictly positive value indicates that the TASTy version is experimental. An experimental TASTy file can only be read by a tool with the same version. However, tooling with an experimental TASTy version is able to read final TASTy documents if the file's
MinorVersion
is strictly less than the current value. - final val FALSEconst: Int(3)
- final val FIELDaccessor: Int(26)
- final val FINAL: Int(10)
- final val FLOATconst: Int(72)
- final val GIVEN: Int(37)
- final val HASDEFAULT: Int(31)
- final val HOLE: Int(255)
- final val IDENT: Int(110)
- final val IDENTtpt: Int(111)
- final val IF: Int(141)
- final val IMPLICIT: Int(13)
- final val IMPLICITarg: Int(97)
- final val IMPORT: Int(132)
- final val IMPORTED: Int(75)
- final val INFIX: Int(43)
- final val INLINE: Int(17)
- final val INLINED: Int(147)
- final val INLINEPROXY: Int(16)
- final val INTconst: Int(70)
- final val INVISIBLE: Int(44)
- final val LAMBDA: Int(142)
- final val LAMBDAtpt: Int(171)
- final val LAZY: Int(14)
- final val LOCAL: Int(22)
- final val LONGconst: Int(71)
- final val MACRO: Int(33)
- final val MATCH: Int(143)
- final val MATCHCASEtype: Int(192)
- final val MATCHtpt: Int(191)
- final val MATCHtype: Int(190)
- final val METHODtype: Int(180)
- final val MUTABLE: Int(25)
- final val MajorVersion: Int
Natural number.
Natural number. Each increment of the
MajorVersion
begins a new series of backward compatible TASTy versions.A TASTy file in either the preceding or succeeding series is incompatible with the current value.
- final val MinorVersion: Int
Natural number.
Natural number. Each increment of the
MinorVersion
, within a series declared by theMajorVersion
, breaks forward compatibility, but remains backwards compatible, with all precedingMinorVersion
. - final val NAMEDARG: Int(119)
- final val NEW: Int(95)
- final val NULLconst: Int(5)
- final val OBJECT: Int(19)
- final val OPAQUE: Int(35)
- final val OPEN: Int(40)
- final val ORtype: Int(167)
- final val OVERRIDE: Int(15)
- final val PACKAGE: Int(128)
- final val PARAM: Int(134)
- final val PARAMalias: Int(41)
- final val PARAMsetter: Int(38)
- final val PARAMtype: Int(172)
- final val POLYtype: Int(169)
- final val PRIVATE: Int(6)
- final val PRIVATEqualified: Int(98)
- final val PROTECTED: Int(8)
- final val PROTECTEDqualified: Int(99)
- final val PositionsSection: String("Positions")
- final val QUALTHIS: Int(91)
- final val RECthis: Int(66)
- final val RECtype: Int(100)
- final val REFINEDtpt: Int(160)
- final val REFINEDtype: Int(159)
- final val RENAMED: Int(76)
- final val REPEATED: Int(149)
- final val RETURN: Int(144)
- final val SEALED: Int(11)
- final val SELECT: Int(112)
- final val SELECTin: Int(176)
- final val SELECTouter: Int(148)
- final val SELECTtpt: Int(113)
- final val SELFDEF: Int(118)
- final val SHAREDterm: Int(60)
- final val SHAREDtype: Int(61)
- final val SHORTconst: Int(68)
- final val SINGLETONtpt: Int(101)
- final val SOURCE: Int(4)
- final val SPLITCLAUSE: Int(46)
- final val STABLE: Int(32)
- final val STATIC: Int(18)
- final val STRINGconst: Int(74)
- final val SUPER: Int(157)
- final val SUPERtype: Int(158)
- final val SYNTHETIC: Int(23)
- final val TEMPLATE: Int(156)
- final val TERMREF: Int(115)
- final val TERMREFdirect: Int(62)
- final val TERMREFin: Int(174)
- final val TERMREFpkg: Int(64)
- final val TERMREFsymbol: Int(114)
- final val THIS: Int(90)
- final val THROW: Int(96)
- final val TRAIT: Int(20)
- final val TRANSPARENT: Int(42)
- final val TRUEconst: Int(4)
- final val TRY: Int(146)
- final val TYPEAPPLY: Int(137)
- final val TYPEBOUNDS: Int(163)
- final val TYPEBOUNDStpt: Int(164)
- final val TYPED: Int(138)
- final val TYPEDEF: Int(131)
- final val TYPELAMBDAtype: Int(170)
- final val TYPEPARAM: Int(133)
- final val TYPEREF: Int(117)
- final val TYPEREFdirect: Int(63)
- final val TYPEREFin: Int(175)
- final val TYPEREFpkg: Int(65)
- final val TYPEREFsymbol: Int(116)
- final val UNAPPLY: Int(152)
- final val UNITconst: Int(2)
- final val VALDEF: Int(129)
- final val WHILE: Int(145)
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def astTagToString(tag: Int): String
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final val firstASTTreeTag: Int(90)
- final val firstLengthTreeTag: Int(128)
- final val firstNatASTTreeTag: Int(110)
- final val firstNatTreeTag: Int(60)
- final val firstSimpleTreeTag: Int(2)
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final val header: Array[Int]
The first four bytes of a TASTy file, followed by four values: -
MajorVersion: Int
- see definition inTastyFormat
-MinorVersion: Int
- see definition inTastyFormat
-ExperimentalVersion: Int
- see definition inTastyFormat
-ToolingVersion: String
- arbitrary length string representing the tool that produced the TASTy. - final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isLegalTag(tag: Int): Boolean
Useful for debugging
- def isModifierTag(tag: Int): Boolean
- def isParamTag(tag: Int): Boolean
- def isTypeTreeTag(tag: Int): Boolean
- def isVersionCompatible(fileMajor: Int, fileMinor: Int, fileExperimental: Int, compilerMajor: Int, compilerMinor: Int, compilerExperimental: Int): Boolean
This method implements a binary relation (
<:<
) between two TASTy versions.This method implements a binary relation (
<:<
) between two TASTy versions.We label the lhs
file
and rhscompiler
. iffile <:< compiler
then the TASTy file is valid to be read.A TASTy version, e.g.
v := 28.0-3
is composed of three fields:- v.major == 28
- v.minor == 0
- v.experimental == 3
TASTy versions have a partial order, for example,
a <:< b
andb <:< a
are both false ifa
andb
have differentmajor
fields.a
andb
have the samemajor
&minor
fields, but differentexperimental
fields, both non-zero.
A TASTy version with a zero value for its
experimental
field is considered to be stable. Files with a stable TASTy version can be read by a compiler with an unstable TASTy version, (where the compiler's TASTy version has a higherminor
field).A compiler with a stable TASTy version can never read a file with an unstable TASTy version.
We follow the given algorithm:
if file.major != compiler.major then return incompatible if compiler.experimental == 0 then if file.experimental != 0 then return incompatible if file.minor > compiler.minor then return incompatible else return compatible else invariant[compiler.experimental != 0] if file.experimental == compiler.experimental then if file.minor == compiler.minor then return compatible (all fields equal) else return incompatible else if file.experimental == 0, if file.minor < compiler.minor then return compatible (an experimental version can read a previous released version) else return incompatible (an experimental version cannot read its own minor version or any later version) else invariant[file.experimental is non-0 and different than compiler.experimental] return incompatible
- def nameTagToString(tag: Int): String
Should be kept in sync with NameTags.
Should be kept in sync with NameTags. Converts constants to a String representing their identifier, or NotANameTag(tag) if unrecognised.
For debugging purposes when unpickling names in a TASTy file.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def numRefs(tag: Int): Int
- returns
If non-negative, the number of leading references (represented as nats) of a length/trees entry. If negative, minus the number of leading non-reference trees.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- object NameTags extends NameTags
The Scala compiler and reflection APIs.