Scala2Unpickler

class Scala2Unpickler(bytes: Array[Byte], classRoot: ClassDenotation, moduleClassRoot: ClassDenotation)(ictx: Context) extends PickleBuffer with Embedded

Unpickle symbol table information descending from a class and/or module root from an array of bytes.

Value Params
bytes

bytearray from which we unpickle

classroot

the top-level class which is unpickled, or NoSymbol if inapplicable

filename

filename associated with bytearray, only used for error messages

moduleroot

the top-level module class which is unpickled, or NoSymbol if inapplicable

Companion
object
trait Embedded
class Object
trait Matchable
class Any

Type members

Classlikes

class LocalUnpickler extends LazyType

Value members

Concrete methods

def elimExistentials(boundSyms: List[Symbol], tp: Type)(using Context): Type

Convert tp { type name = sym } forSome { sym >: L <: H } to tp { name >: L <: H } and tp { name: sym } forSome { sym <: T with Singleton } to tp { name: T }

Convert tp { type name = sym } forSome { sym >: L <: H } to tp { name >: L <: H } and tp { name: sym } forSome { sym <: T with Singleton } to tp { name: T }

def noSuchConstantTag(tag: Int, len: Int)(using Context): Constant
def noSuchTreeTag(tag: Int, end: Int)(using Context): Nothing
def noSuchTypeTag(tag: Int, end: Int)(using Context): Type
def readModifiers(isType: Boolean)(using Context): Modifiers
def rootClassUnpickler(start: Coord, cls: Symbol, module: Symbol, infoRef: Int): ClassUnpickler
def run(using Context): Unit
def unimplementedTree(what: String)(using Context): Nothing

Inherited methods

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.

Returns

an array mapping entry numbers to locations in the byte array where the entries start.

Inherited from
PickleBuffer
def ensureCapacity(capacity: Int): Unit
Inherited from
PickleBuffer
def patchNat(pos: Int, x: Int): Unit

Write a natural number x at position pos. If number is more than one byte, shift rest of array to make space.

Write a natural number x at position pos. If number is more than one byte, shift rest of array to make space.

Value Params
pos

...

x

...

Inherited from
PickleBuffer
def peekByte(): Int

Peek at the current byte without moving the read index

Peek at the current byte without moving the read index

Inherited from
PickleBuffer
def readByte(): Int

Read a byte

Read a byte

Inherited from
PickleBuffer
def readLong(len: Int): Long

Read a long number in signed big endian format, base 256.

Read a long number in signed big endian format, base 256.

Inherited from
PickleBuffer
Inherited from
PickleBuffer
def readNat(): Int

Read a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Read a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Inherited from
PickleBuffer
def times[T](n: Int, op: () => T): List[T]

Perform operation op the number of times specified. Concatenate the results into a list.

Perform operation op the number of times specified. Concatenate the results into a list.

Inherited from
PickleBuffer

Returns the buffer as a sequence of (Int, Array[Byte]) representing (tag, data) of the individual entries. Saves and restores buffer state.

Returns the buffer as a sequence of (Int, Array[Byte]) representing (tag, data) of the individual entries. Saves and restores buffer state.

Inherited from
PickleBuffer
def until[T](end: Int, op: () => T): List[T]

Perform operation op until the condition readIndex == end is satisfied. Concatenate results into a list.

Perform operation op until the condition readIndex == end is satisfied. Concatenate results into a list.

Value Params
end

...

op

...

Returns

...

Inherited from
PickleBuffer
def writeByte(b: Int): Unit

Write a byte of data

Write a byte of data

Inherited from
PickleBuffer
def writeLong(x: Long): Unit

Write a long number x in signed big endian format, base 256.

Write a long number x in signed big endian format, base 256.

Value Params
x

The long number to be written.

Inherited from
PickleBuffer

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.

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.

Inherited from
PickleBuffer
def writeNat(x: Int): Unit

Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Write a natural number in big endian format, base 128. All but the last digits have bit 0x80 set.

Inherited from
PickleBuffer

Concrete fields

Inherited fields

Inherited from
PickleBuffer
Inherited from
PickleBuffer