If entry at i
is undefined, define it by performing
operation op
with readIndex at start of i'th
entry. Restore
readIndex
afterwards.
If entry at i
is undefined, define it by performing
operation op
with readIndex at start of i'th
entry. Restore
readIndex
afterwards.
Pickle = majorVersion_Nat minorVersion_Nat nbEntries_Nat {Entry} Entry = type_Nat length_Nat [actual entries]
Pickle = majorVersion_Nat minorVersion_Nat nbEntries_Nat {Entry} Entry = type_Nat length_Nat [actual entries]
Assumes that the ..Version_Nat are already consumed.
an array mapping entry numbers to locations in the byte array where the entries start.
Does the entry represent children of a symbol?
Does the entry represent children of a symbol?
Does entry represent a name?
Does entry represent a name?
Does entry represent a refinement symbol? pre: Entry is a class symbol
Does entry represent a refinement symbol? pre: Entry is a class symbol
Does entry represent a symbol annotation?
Does entry represent a symbol annotation?
Does entry represent an (internal) symbol
Does entry represent an (internal) symbol
Does entry represent an (internal or external) symbol
Does entry represent an (internal or external) symbol
Write a natural number x
at position pos
.
Write a natural number x
at position pos
.
If number is more than one byte, shift rest of array to make space.
...
...
Peek at the current byte without moving the read index
Peek at the current byte without moving the read index
Read an annotation argument, which is pickled either as a Constant or a Tree.
Read an annotation argument, which is pickled either as a Constant or a Tree.
Read an annotation and return it.
Read an annotation and return it. Used when unpickling an ANNOTATED(WSELF)tpe or a NestedAnnotArg
Read an AnnotationInfo.
Read an AnnotationInfo. Not to be called directly, use readAnnotation or readSymbolAnnotation
Read a byte
Read a byte
Read children and store them into the corresponding symbol.
Read children and store them into the corresponding symbol.
Read a constant
Read a constant
Read a long number in signed big endian format, base 256.
Read a long number in signed big endian format, base 256.
Read a name
Read a name
Read a natural number in big endian format, base 128.
Read a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.
Read a symbol
Read a symbol
Read an annotation and as a side effect store it into the symbol it requests.
Read an annotation and as a side effect store it into the symbol it requests. Called at top-level, for all (symbol, annotInfo) entries.
Read a type
Read a type
is used to ease the transition to NullaryMethodTypes (commentmarker: NMT_TRANSITION) the flag say that a type of kind * is expected, so that PolyType(tps, restpe) can be disambiguated to PolyType(tps, NullaryMethodType(restpe)) (if restpe is not a ClassInfoType, a MethodType or a NullaryMethodType, which leaves TypeRef/SingletonType -- the latter would make the polytype a type constructor)
The decls
scope associated with given symbol
The decls
scope associated with given symbol
Perform operation op
the number of
times specified.
Perform operation op
the number of
times specified. Concatenate the results into a list.
Returns the buffer as a sequence of (Int, Array[Byte]) representing (tag, data) of the individual entries.
Returns the buffer as a sequence of (Int, Array[Byte]) representing (tag, data) of the individual entries. Saves and restores buffer state.
Convert to a type error, that is printed gracefully instead of crashing.
Convert to a type error, that is printed gracefully instead of crashing.
Similar in intent to what SymbolLoader does (but here we don't have access to error reporting, so we rely on the typechecker to report the error).
Perform operation op
until the condition
readIndex == end
is satisfied.
Perform operation op
until the condition
readIndex == end
is satisfied.
Concatenate results into a list.
...
...
...
Write a byte of data
Write a byte of data
Write a long number x
in signed big endian format, base 256.
Write a long number x
in signed big endian format, base 256.
The long number to be written.
Like writeNat, but for longs.
Like writeNat, but for longs. This is not the same as writeLong, which writes in base 256. Note that the binary representation of LongNat is identical to Nat if the long value is in the range Int.MIN_VALUE to Int.MAX_VALUE.
Write a natural number in big endian format, base 128.
Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.