# Interface ReturnInstruction

All Superinterfaces:
  `ClassFileElement, CodeElement, Instruction`

public sealed interface ReturnInstruction extends Instruction
Models a return-from-method instruction in the `code` array of a `Code` attribute. Corresponding opcodes have a kind of `Opcode.Kind.RETURN`. Delivered as a `CodeElement` when traversing the elements of a `CodeModel`.

A return-from-method instruction is composite:

    ReturnInstruction(TypeKind typeKind)

where `typeKind` is computational or `void`.

Since:
  24
See Also:
  - `Opcode.Kind.RETURN`
  - `CodeBuilder::return_`

## Method Summary

Modifier and Type
Method
Description
`static ReturnInstruction`
`of(Opcode op)`
Returns a return instruction.
`static ReturnInstruction`
`of(TypeKind typeKind)`
Returns a return instruction.
`TypeKind`
`typeKind()`
Returns the computational type, including `void`, of the return instruction.

### 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

### typeKind

TypeKind typeKind()
Returns the computational type, including `void`, of the return instruction.

Returns:
  the computational type, including `void`, of the return instruction

### of

static ReturnInstruction of(TypeKind typeKind)
Returns a return instruction. `typeKind` is converted to its computational type.

Parameters:
  `typeKind` - the type of the return instruction
Returns:
  a return instruction

### of

static ReturnInstruction of(Opcode op)
Returns a return instruction.

Parameters:
  `op` - the opcode for the specific type of return instruction, which must be of kind `Opcode.Kind.RETURN`
Returns:
  a return instruction
Throws:
  `IllegalArgumentException` - if the opcode kind is not `Opcode.Kind.RETURN`.