# Interface IncrementInstruction

All Superinterfaces:
  `ClassFileElement`, `CodeElement`, `Instruction`

public sealed interface IncrementInstruction extends Instruction
Models a local variable increment instruction in the `code` array of a `Code` attribute. Corresponding opcodes have a kind of `Opcode.Kind.INCREMENT`. Delivered as a `CodeElement` when traversing the elements of a `CodeModel`.

A local variable increment instruction is composite:

    IncrementInstruction(
        int slot,
        int constant
    )

where

- `slot` must be within `[0, 65535]`.
- `constant` must be within `[-32768, 32767]`.

See Java Virtual Machine Specification:
  6.5.iinc iinc
Since:
  24
See Also:
  - `Opcode.Kind.INCREMENT`
  - `CodeBuilder::iinc`

## Method Summary

Modifier and Type
Method
Description
`int`
`constant()`
Returns the value to increment by.
`static IncrementInstruction`
`of(int slot, int constant)`
Returns an increment instruction.
`int`
`slot()`
Returns the local variable slot to increment.

### Methods declared in interface java.lang.classfile.Instruction

`opcode, sizeInBytes`

## Method Details

### slot

int slot()
Returns the local variable slot to increment.

Returns:
  the local variable slot to increment

### constant

int constant()
Returns the value to increment by.

Returns:
  the value to increment by

### of

static IncrementInstruction of(int slot, int constant)
Returns an increment instruction.

- `slot` must be within `[0, 65535]`.
- `constant` must be within `[-32768, 32767]`.

Parameters:
  `slot` - the local variable slot to increment
  `constant` - the value to increment by
Returns:
  an increment instruction
Throws:
  `IllegalArgumentException` - if `slot` or `constant` is out of range