scala.tools.nsc.backend.icode.Members

# IMethod

#### class IMethod extends ICodes.IMember

Represents a method in ICode. Local variables contain both locals and parameters, similar to the way the JVM 'sees' them.

Locals and parameters are added in reverse order, as they are kept in cons-lists. The 'builder' is responsible for reversing them and putting them back, when the generation is finished (GenICode does that).

Linear Supertypes
ICodes.IMember, math.Ordered[ICodes.IMember], Comparable[ICodes.IMember], AnyRef, Any
Known Subclasses
NoIMethod
Type Hierarchy Learn more about scaladoc diagrams
Ordering

1. Alphabetic
2. By inheritance

Inherited

1. IMethod
2. IMember
3. Ordered
4. Comparable
5. AnyRef
6. Any

Implicitly

1. by orderingToOrdered
2. by any2stringadd
3. by StringFormat
4. by Ensuring
5. by ArrowAssoc

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Instance Constructors

1. #### new IMethod(symbol: Global.Symbol)

### Value Members

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

   Definition Classes
     AnyRef → Any

2. #### final def ##(): Int

   Definition Classes
     AnyRef → Any

3. #### def +(other: String): String

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to any2stringadd[ICodes.IMethod] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd

4. #### def ->[B](y: B): (ICodes.IMethod, B)

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to ArrowAssoc[ICodes.IMethod] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()

5. #### def <(that: ICodes.IMember): Boolean

   Definition Classes
     Ordered

6. #### def <=(that: ICodes.IMember): Boolean

   Definition Classes
     Ordered

7. #### final def ==(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

8. #### def >(that: ICodes.IMember): Boolean

   Definition Classes
     Ordered

9. #### def >=(that: ICodes.IMember): Boolean

   Definition Classes
     Ordered

10. #### def addHandler(e: ICodes.ExceptionHandler): Unit

11. #### def addLocal(l: ICodes.Local): ICodes.Local

12. #### def addLocals(ls: List[ICodes.Local]): Unit

13. #### def addParam(p: ICodes.Local): Unit

14. #### final def asInstanceOf[T0]: T0

    Definition Classes
      Any

15. #### def blocks: List[ICodes.BasicBlock]

16. #### var bytecodeHasEHs: Boolean

17. #### var bytecodeHasInvokeDynamic: Boolean

18. #### def clone(): AnyRef

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

19. #### var code: ICodes.Code

20. #### def compare(other: ICodes.IMember): Int

    Definition Classes
      IMember → Ordered

21. #### def compareTo(that: ICodes.IMember): Int

    Definition Classes
      Ordered → Comparable

22. #### def dump(): Unit

23. #### def ensuring(cond: (ICodes.IMethod) ⇒ Boolean, msg: ⇒ Any): ICodes.IMethod

    Implicit information
      This member is added by an implicit conversion from ICodes.IMethod to Ensuring[ICodes.IMethod] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

24. #### def ensuring(cond: (ICodes.IMethod) ⇒ Boolean): ICodes.IMethod

    Implicit information
      This member is added by an implicit conversion from ICodes.IMethod to Ensuring[ICodes.IMethod] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

25. #### def ensuring(cond: Boolean, msg: ⇒ Any): ICodes.IMethod

    Implicit information
      This member is added by an implicit conversion from ICodes.IMethod to Ensuring[ICodes.IMethod] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

26. #### def ensuring(cond: Boolean): ICodes.IMethod

    Implicit information
      This member is added by an implicit conversion from ICodes.IMethod to Ensuring[ICodes.IMethod] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

27. #### final def eq(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

28. #### def equals(other: Any): Boolean

    Definition Classes
      IMember → AnyRef → Any

29. #### var exh: List[ICodes.ExceptionHandler]

    The list of exception handlers, ordered from innermost to outermost.

30. #### def finalize(): Unit

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

31. #### def foreachBlock[U](f: (ICodes.BasicBlock) ⇒ U): Unit

32. #### def formatted(fmtstr: String): String

    Implicit information
      This member is added by an implicit conversion from ICodes.IMethod to StringFormat[ICodes.IMethod] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()

33. #### final def getClass(): Class[_]

    Definition Classes
      AnyRef → Any

34. #### def hasCode: Boolean

35. #### def hashCode(): Int

    Definition Classes
      IMember → AnyRef → Any

36. #### def isAbstractMethod: Boolean

    Is this method deferred ('abstract' in Java sense)?

37. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

38. #### def isStatic: Boolean

39. #### def lastBlock: ICodes.BasicBlock

40. #### def linearizedBlocks(lin: ICodes.Linearizer = self.linearizer): List[ICodes.BasicBlock]

41. #### var locals: List[ICodes.Local]

    local variables and method parameters

42. #### def lookupLocal(sym: Global.Symbol): Option[ICodes.Local]

43. #### def lookupLocal(n: Global.Name): Option[ICodes.Local]

44. #### var native: Boolean

45. #### final def ne(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

46. #### def newBlock(): ICodes.BasicBlock

47. #### def normalize(): Unit

    Merge together blocks that have a single successor which has a single predecessor.

    Merge together blocks that have a single successor which has a single predecessor. Exception handlers are taken into account (they might force to break a block of straight line code like that).

    This method should be most effective after heavy inlining.

48. #### final def notify(): Unit

    Definition Classes
      AnyRef

49. #### final def notifyAll(): Unit

    Definition Classes
      AnyRef

50. #### var params: List[ICodes.Local]

    method parameters

51. #### var recursive: Boolean

52. #### var returnType: ICodes.TypeKind

53. #### def setCode(code: ICodes.Code): ICodes.IMethod

54. #### var sourceFile: SourceFile

55. #### def startBlock: ICodes.BasicBlock

56. #### val symbol: Global.Symbol

    Definition Classes
      IMethod → IMember

57. #### final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
      AnyRef

58. #### def toString(): String

    Definition Classes
      IMethod → AnyRef → Any

59. #### final def updateRecursive(called: Global.Symbol): Unit

60. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

61. #### final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

62. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

63. #### def →[B](y: B): (ICodes.IMethod, B)

    Implicit information
      This member is added by an implicit conversion from ICodes.IMethod to ArrowAssoc[ICodes.IMethod] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc

### Shadowed Implicit Value Members

1. #### def <(that: ICodes.IMethod): Boolean

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to math.Ordered[ICodes.IMethod] performed by method orderingToOrdered in scala.math.Ordered. This conversion will take place only if an implicit value of type math.Ordering[ICodes.IMethod] is in scope.
   Shadowing
     This implicitly inherited member is shadowed by one or more members in this class.
     To access this member you can use a type ascription:

         (iMethod: math.Ordered[ICodes.IMethod]).<(that)

   Definition Classes
     Ordered

2. #### def <=(that: ICodes.IMethod): Boolean

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to math.Ordered[ICodes.IMethod] performed by method orderingToOrdered in scala.math.Ordered. This conversion will take place only if an implicit value of type math.Ordering[ICodes.IMethod] is in scope.
   Shadowing
     This implicitly inherited member is shadowed by one or more members in this class.
     To access this member you can use a type ascription:

         (iMethod: math.Ordered[ICodes.IMethod]).<=(that)

   Definition Classes
     Ordered

3. #### def >(that: ICodes.IMethod): Boolean

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to math.Ordered[ICodes.IMethod] performed by method orderingToOrdered in scala.math.Ordered. This conversion will take place only if an implicit value of type math.Ordering[ICodes.IMethod] is in scope.
   Shadowing
     This implicitly inherited member is shadowed by one or more members in this class.
     To access this member you can use a type ascription:

         (iMethod: math.Ordered[ICodes.IMethod]).>(that)

   Definition Classes
     Ordered

4. #### def >=(that: ICodes.IMethod): Boolean

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to math.Ordered[ICodes.IMethod] performed by method orderingToOrdered in scala.math.Ordered. This conversion will take place only if an implicit value of type math.Ordering[ICodes.IMethod] is in scope.
   Shadowing
     This implicitly inherited member is shadowed by one or more members in this class.
     To access this member you can use a type ascription:

         (iMethod: math.Ordered[ICodes.IMethod]).>=(that)

   Definition Classes
     Ordered

5. #### def compare(that: ICodes.IMethod): Int

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to math.Ordered[ICodes.IMethod] performed by method orderingToOrdered in scala.math.Ordered. This conversion will take place only if an implicit value of type math.Ordering[ICodes.IMethod] is in scope.
   Shadowing
     This implicitly inherited member is shadowed by one or more members in this class.
     To access this member you can use a type ascription:

         (iMethod: math.Ordered[ICodes.IMethod]).compare(that)

   Definition Classes
     Ordered

6. #### def compareTo(that: ICodes.IMethod): Int

   Implicit information
     This member is added by an implicit conversion from ICodes.IMethod to math.Ordered[ICodes.IMethod] performed by method orderingToOrdered in scala.math.Ordered. This conversion will take place only if an implicit value of type math.Ordering[ICodes.IMethod] is in scope.
   Shadowing
     This implicitly inherited member is shadowed by one or more members in this class.
     To access this member you can use a type ascription:

         (iMethod: math.Ordered[ICodes.IMethod]).compareTo(that)

   Definition Classes
     Ordered → Comparable

### Inherited from ICodes.IMember

### Inherited from math.Ordered[ICodes.IMember]

### Inherited from Comparable[ICodes.IMember]

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion orderingToOrdered from ICodes.IMethod to math.Ordered[ICodes.IMethod]

### Inherited by implicit conversion any2stringadd from ICodes.IMethod to any2stringadd[ICodes.IMethod]

### Inherited by implicit conversion StringFormat from ICodes.IMethod to StringFormat[ICodes.IMethod]

### Inherited by implicit conversion Ensuring from ICodes.IMethod to Ensuring[ICodes.IMethod]

### Inherited by implicit conversion ArrowAssoc from ICodes.IMethod to ArrowAssoc[ICodes.IMethod]

### Ungrouped