# Interface: com.pnfsoftware.jeb.core.units.code.android.ir.IDCallInfo

`dexdec` IR invocation information used by [invoke](DOpcodeType#IR_INVOKE) [instructions](IDInstruction) to represent calls to methods. 

 Example: 

```

 result = ob.foo(1, "blah");
          ^^^^^^^^^^^^^^^^^
 
```
 

 Also refer to the specialized sub\-interface [IDNewInfo](IDNewInfo), to represent high\-level "new\-object" *construction* \(= object *allocation*, followed by object *initialization*\).

## Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDCallInfo`


## Method: getArgument
- parameter: `index`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression`

Description: Retrieve a method's argument.
parameter: index: argument index
return: the argument expression

## Method: getCountOfArguments
- return type: `int`

Description: Get the number of arguments. For non\-static methods, `this` is counted.
return: the argument count

## Method: getInvokeType
- return type: `com.pnfsoftware.jeb.core.units.code.android.ir.DInvokeType`

Description: Get the invocation type. Note that this differs slightly from the JLS or Dalvik `invoke-xxx` semantics. Refer to the enumration for details.
return: the invocation type

## Method: getMethodName
- return type: `java.lang.String`

Description: Convenience method to retrieve the target method simplename.
return: the simple name, e.g. `bar` for a method `Lcom/abc/Foo;->bar(I)V`

## Method: getMethodSignature
- return type: `java.lang.String`

Description: Get the target method internal signature.
return: an internal sinature, e.g. `Lcom/abc/Foo;->bar(I)V`

## Method: hasThis
- return type: `boolean`

Description: Determine whether the first argument of this method should be the object's `this`. That is, this method is a convenient way to determine whether the invocation type is either [DInvokeType#DIRECT](DInvokeType#DIRECT), [DInvokeType#SUPER](DInvokeType#SUPER), [DInvokeType#VIRTUAL](DInvokeType#VIRTUAL), or [DInvokeType#INTERFACE](DInvokeType#INTERFACE).
return: true if the first argument is the receiver object

## Method: setArgument
- parameter: `i`, type: `int`
- parameter: `arg`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDExpression`

Description: Update a method argument.
parameter: i: argument index
parameter: arg: new argument expression

## Method: upgradeMistypedArguments
- parameter: `ti`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.DTypeInfo`
- parameter: `gctx`, type: `com.pnfsoftware.jeb.core.units.code.android.ir.IDGlobalContext`

Description: Apply types on the method parameters. 

 Important note: at the IR level, casts should be explicit. Implicit promotions, not requiring a cast, are reserved for AST generation.
parameter: ti: optional type information object, used to record type updates and conflicts
parameter: gctx: global IR context \(mandatory\)

