Object

scala.tools.nsc.backend.icode.BasicBlocks

NoBasicBlock

Related Doc: package BasicBlocks

Permalink

object NoBasicBlock extends ICodes.BasicBlock

Source
BasicBlocks.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. NoBasicBlock
  2. BasicBlock
  3. ProgramPoint
  4. AnyRef
  5. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink

    Test two objects for inequality.

    Test two objects for inequality.

    returns

    true if !(this == that), false otherwise.

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink

    Equivalent to x.hashCode except for boxed numeric types and null.

    Equivalent to x.hashCode except for boxed numeric types and null. For numerics, it returns a hash value which is consistent with value equality: if two value type instances compare as true, then ## will produce the same hash value for each of them. For null returns a hashcode where null.hashCode throws a NullPointerException.

    returns

    a hash value consistent with ==

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink

    The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that).

    The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that).

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    Definition Classes
    AnyRef → Any
  4. def apply(n: Int): ICodes.Instruction

    Permalink

    Return the n-th instruction.

    Return the n-th instruction.

    Definition Classes
    BasicBlock
  5. final def asInstanceOf[T0]: T0

    Permalink

    Cast the receiver object to be of type T0.

    Cast the receiver object to be of type T0.

    Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression 1.asInstanceOf[String] will throw a ClassCastException at runtime, while the expression List(1).asInstanceOf[List[String]] will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested type.

    returns

    the receiver object.

    Definition Classes
    Any
    Exceptions thrown

    ClassCastException if the receiver object is not an instance of the erasure of type T0.

  6. def blockContents: String

    Permalink
    Definition Classes
    BasicBlock
  7. def clear(): Unit

    Permalink
    Definition Classes
    BasicBlock
  8. def clone(): AnyRef

    Permalink

    Create a copy of the receiver object.

    Create a copy of the receiver object.

    The default implementation of the clone method is platform dependent.

    returns

    a copy of the receiver object.

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
    Note

    not specified by SLS as a member of AnyRef

  9. def close(): Unit

    Permalink

    Close the block

    Close the block

    Definition Classes
    BasicBlock
  10. def closeWith(instr: ICodes.Instruction, pos: Global.Position): Unit

    Permalink
    Definition Classes
    BasicBlock
  11. def closeWith(instr: ICodes.Instruction): Unit

    Permalink

    do nothing if block is already closed

    do nothing if block is already closed

    Definition Classes
    BasicBlock
  12. def closed: Boolean

    Permalink

    Is this block closed?

    Is this block closed?

    Definition Classes
    BasicBlock
  13. def closed_=(b: Boolean): Unit

    Permalink
    Definition Classes
    BasicBlock
  14. def code: ICodes.Code

    Permalink
    Definition Classes
    BasicBlock
  15. def directSuccessors: List[ICodes.BasicBlock]

    Permalink
    Definition Classes
    BasicBlock
  16. def emit(is: Seq[ICodes.Instruction]): Unit

    Permalink
    Definition Classes
    BasicBlock
  17. def emit(instr: ICodes.Instruction, pos: Global.Position): Unit

    Permalink

    Emitting does not set touched to true.

    Emitting does not set touched to true. During code generation this is a hotspot and setting the flag for each emit is a waste. Caching should happen only after a block is closed, which sets the DIRTYSUCCS flag.

    Definition Classes
    BasicBlock
  18. def emit(instr: ICodes.Instruction): Unit

    Permalink

    Add a new instruction at the end of the block, using the same source position as the last emitted instruction

    Add a new instruction at the end of the block, using the same source position as the last emitted instruction

    Definition Classes
    BasicBlock
  19. def emitOnly(is: ICodes.Instruction*): Unit

    Permalink

    The semantics of this are a little odd but it's designed to work seamlessly with the existing code.

    The semantics of this are a little odd but it's designed to work seamlessly with the existing code. It emits each supplied instruction, then closes the block. The odd part is that if the instruction has pos == NoPosition, it calls the 1-arg emit, but otherwise it calls the 2-arg emit. This way I could retain existing behavior exactly by calling setPos on any instruction using the two arg version which I wanted to include in a call to emitOnly.

    Definition Classes
    BasicBlock
  20. def enterIgnoreMode(): Unit

    Permalink

    Enter ignore mode: new 'emit'ted instructions will not be added to this basic block.

    Enter ignore mode: new 'emit'ted instructions will not be added to this basic block. It makes the generation of THROW and RETURNs easier.

    Definition Classes
    BasicBlock
  21. final def eq(arg0: AnyRef): Boolean

    Permalink

    Tests whether the argument (that) is a reference to the receiver object (this).

    Tests whether the argument (that) is a reference to the receiver object (this).

    The eq method implements an equivalence relation on non-null instances of AnyRef, and has three additional properties:

    • It is consistent: for any non-null instances x and y of type AnyRef, multiple invocations of x.eq(y) consistently returns true or consistently returns false.
    • For any non-null instance x of type AnyRef, x.eq(null) and null.eq(x) returns false.
    • null.eq(null) returns true.

    When overriding the equals or hashCode methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (o1 eq o2), they should be equal to each other (o1 == o2) and they should hash to the same value (o1.hashCode == o2.hashCode).

    returns

    true if the argument is a reference to the receiver object; false otherwise.

    Definition Classes
    AnyRef
  22. def equals(other: Any): Boolean

    Permalink

    The equality method for reference types.

    The equality method for reference types. Default implementation delegates to eq.

    See also equals in scala.Any.

    returns

    true if the receiver object is equivalent to the argument; false otherwise.

    Definition Classes
    BasicBlock → AnyRef → Any
  23. def exceptionHandlerStart: Boolean

    Permalink

    Is this block the start block of an exception handler?

    Is this block the start block of an exception handler?

    Definition Classes
    BasicBlockProgramPoint
  24. def exceptionHandlerStart_=(b: Boolean): Unit

    Permalink
    Definition Classes
    BasicBlock
  25. def exceptionSuccessors: List[ICodes.BasicBlock]

    Permalink
    Definition Classes
    BasicBlock
  26. def exceptionSuccessorsForBlock(block: ICodes.BasicBlock): List[ICodes.BasicBlock]

    Permalink
    Definition Classes
    BasicBlock
  27. def finalize(): Unit

    Permalink

    Called by the garbage collector on the receiver object when there are no more references to the object.

    Called by the garbage collector on the receiver object when there are no more references to the object.

    The details of when and if the finalize method is invoked, as well as the interaction between finalize and non-local returns and exceptions, are all platform dependent.

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
    Note

    not specified by SLS as a member of AnyRef

  28. def flagsString: String

    Permalink
    Definition Classes
    BasicBlock
  29. final def foreach[U](f: (ICodes.Instruction) ⇒ U): Unit

    Permalink

    Apply a function to all the instructions of the block.

    Apply a function to all the instructions of the block.

    Definition Classes
    BasicBlock
  30. def fromList(is: List[ICodes.Instruction]): Unit

    Permalink
    Definition Classes
    BasicBlock
  31. def fullString: String

    Permalink
    Definition Classes
    BasicBlock
  32. def getArray: Array[ICodes.Instruction]

    Permalink

    return the underlying array of instructions

    return the underlying array of instructions

    Definition Classes
    BasicBlock
  33. final def getClass(): Class[_]

    Permalink

    A representation that corresponds to the dynamic class of the receiver object.

    A representation that corresponds to the dynamic class of the receiver object.

    The nature of the representation is platform dependent.

    returns

    a representation that corresponds to the dynamic class of the receiver object.

    Definition Classes
    AnyRef → Any
    Note

    not specified by SLS as a member of AnyRef

  34. def hasFlag(flag: Int): Boolean

    Permalink

    Does this block have the given flag?

    Does this block have the given flag?

    Definition Classes
    BasicBlock
  35. def hashCode(): Int

    Permalink

    The hashCode method for reference types.

    The hashCode method for reference types. See hashCode in scala.Any.

    returns

    the hash code value for this object.

    Definition Classes
    BasicBlock → AnyRef → Any
  36. def ignore: Boolean

    Permalink

    When set, the emit methods will be ignored.

    When set, the emit methods will be ignored.

    Definition Classes
    BasicBlock
  37. def ignore_=(b: Boolean): Unit

    Permalink
    Definition Classes
    BasicBlock
  38. def indexOf(inst: ICodes.Instruction): Int

    Permalink

    Return the index of inst.

    Return the index of inst. Uses reference equality. Returns -1 if not found.

    Definition Classes
    BasicBlock
  39. final def isEmpty: Boolean

    Permalink
    Definition Classes
    BasicBlock
  40. final def isInstanceOf[T0]: Boolean

    Permalink

    Test whether the dynamic type of the receiver object is T0.

    Test whether the dynamic type of the receiver object is T0.

    Note that the result of the test is modulo Scala's erasure semantics. Therefore the expression 1.isInstanceOf[String] will return false, while the expression List(1).isInstanceOf[List[String]] will return true. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the specified type.

    returns

    true if the receiver object is an instance of erasure of type T0; false otherwise.

    Definition Classes
    Any
  41. def iterator: Iterator[ICodes.Instruction]

    Permalink

    Return an iterator over the instructions in this basic block.

    Return an iterator over the instructions in this basic block.

    Definition Classes
    BasicBlock
  42. def killIf(cond: Boolean): Unit

    Permalink

    if cond is true, closes this block, entersIgnoreMode, and removes the block from its list of blocks.

    if cond is true, closes this block, entersIgnoreMode, and removes the block from its list of blocks. Used to allow a block to be started and then cancelled when it is discovered to be unreachable.

    Definition Classes
    BasicBlock
  43. def killUnless(cond: Boolean): Unit

    Permalink

    Same as killIf but with the logic of the condition reversed

    Same as killIf but with the logic of the condition reversed

    Definition Classes
    BasicBlock
  44. val label: Int

    Permalink
    Definition Classes
    BasicBlock
  45. def lastInstruction: ICodes.Instruction

    Permalink

    Return the last instruction of this basic block.

    Return the last instruction of this basic block.

    Definition Classes
    BasicBlock
  46. def length: Int

    Permalink

    The number of instructions in this basic block so far.

    The number of instructions in this basic block so far.

    Definition Classes
    BasicBlock
  47. def loopHeader: Boolean

    Permalink

    Is this block the head of a while?

    Is this block the head of a while?

    Definition Classes
    BasicBlock
  48. def loopHeader_=(b: Boolean): Unit

    Permalink
    Definition Classes
    BasicBlock
  49. val method: ICodes.IMethod

    Permalink
    Definition Classes
    BasicBlock
  50. final def ne(arg0: AnyRef): Boolean

    Permalink

    Equivalent to !(this eq that).

    Equivalent to !(this eq that).

    returns

    true if the argument is not a reference to the receiver object; false otherwise.

    Definition Classes
    AnyRef
  51. final def nonEmpty: Boolean

    Permalink
    Definition Classes
    BasicBlock
  52. final def notify(): Unit

    Permalink

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Definition Classes
    AnyRef
    Note

    not specified by SLS as a member of AnyRef

  53. final def notifyAll(): Unit

    Permalink

    Wakes up all threads that are waiting on the receiver object's monitor.

    Wakes up all threads that are waiting on the receiver object's monitor.

    Definition Classes
    AnyRef
    Note

    not specified by SLS as a member of AnyRef

  54. def open(): Unit

    Permalink
    Definition Classes
    BasicBlock
  55. def predContents: String

    Permalink
    Definition Classes
    BasicBlock
  56. def predecessors: List[ICodes.BasicBlock]

    Permalink

    Returns the predecessors of this block.

    Returns the predecessors of this block.

    Definition Classes
    BasicBlockProgramPoint
  57. var preds: List[ICodes.BasicBlock]

    Permalink

    Cached predecessors.

    Cached predecessors.

    Definition Classes
    BasicBlock
  58. def removeInstructionsAt(positions: Int*): Unit

    Permalink

    Removes instructions found at the given positions.

    Removes instructions found at the given positions.

    Definition Classes
    BasicBlock
  59. def removeLastInstruction(): Unit

    Permalink

    Remove the last instruction of this basic block.

    Remove the last instruction of this basic block. It is fast for an open block, but slower when the block is closed.

    Definition Classes
    BasicBlock
  60. def replaceInstruction(oldInstr: ICodes.Instruction, is: List[ICodes.Instruction]): Boolean

    Permalink

    Replaces oldInstr with is.

    Replaces oldInstr with is. It does not update the position field in the newly inserted instructions, so it behaves differently than the one-instruction versions of this function.

    Definition Classes
    BasicBlock
  61. def replaceInstruction(oldInstr: ICodes.Instruction, newInstr: ICodes.Instruction): Boolean

    Permalink

    Replace the given instruction with the new one.

    Replace the given instruction with the new one. Returns true if it actually changed something. The replacing instruction is given the nsc.util.Position of the instruction it replaces.

    Definition Classes
    BasicBlock
  62. def replaceInstruction(pos: Int, instr: ICodes.Instruction): Boolean

    Permalink

    Replace the instruction at the given position.

    Replace the instruction at the given position. Used by labels when they are anchored. The replacing instruction is given the nsc.util.Position of the instruction it replaces.

    Definition Classes
    BasicBlock
  63. def size: Int

    Permalink
    Definition Classes
    BasicBlock
  64. def subst(map: Map[ICodes.Instruction, ICodes.Instruction]): Unit

    Permalink

    Replaces all instructions found in the map.

    Replaces all instructions found in the map.

    Definition Classes
    BasicBlock
  65. def succContents: String

    Permalink
    Definition Classes
    BasicBlock
  66. def successors: List[ICodes.BasicBlock]

    Permalink
    Definition Classes
    BasicBlockProgramPoint
  67. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  68. def take(n: Int): Seq[ICodes.Instruction]

    Permalink
    Definition Classes
    BasicBlock
  69. def toList: List[ICodes.Instruction]

    Permalink
    Definition Classes
    BasicBlock
  70. def toString(): String

    Permalink

    Creates a String representation of this object.

    Creates a String representation of this object. The default representation is platform dependent. On the java platform it is the concatenation of the class name, "@", and the object's hashcode in hexadecimal.

    returns

    a String representation of the object.

    Definition Classes
    BasicBlock → AnyRef → Any
  71. def touched: Boolean

    Permalink

    Has this basic block been modified since the last call to 'successors'?

    Has this basic block been modified since the last call to 'successors'?

    Definition Classes
    BasicBlock
  72. def touched_=(b: Boolean): Unit

    Permalink
    Definition Classes
    BasicBlock
  73. val varsInScope: Set[ICodes.Local]

    Permalink

    Local variables that are in scope at entry of this basic block.

    Local variables that are in scope at entry of this basic block. Used for debugging information.

    Definition Classes
    BasicBlock
  74. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  75. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  76. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from ICodes.BasicBlock

Inherited from AnyRef

Inherited from Any

Ungrouped