# 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 `u2`.
- `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 Instruction

  `opcode, sizeInBytes`
  Modifier and Type
  Method
  Description
  `Opcode`
  `opcode()`
  Returns the operation of this instruction.
  `int`
  `sizeInBytes()`
  Returns the size in bytes of this instruction.

- ## 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 `u2`.
    - `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