IrType

@Serializable
sealed interface IrType

The IR representation of an input or output field

Allowed

  • T

  • Nullable<T>

  • Option<T>

  • Option<Nullable<T>>

  • Result<T>

  • Result<Nullable<T>>

  • All List variations of the above

Disallowed

  • Nullable<Option<T>>

  • Nullable<Result<T>>

  • Nullable<Nullable<T>>

  • Option<Option<T>>

  • Option<Result<T>>

  • Result<Option<T>>

  • Result<Result<T>>

  • etc...

We need both Option and Nullable to distinguish ? vs Option in Kotlin (see this Arrow article). In java Option and Nullable might be represented using the same Optional depending on the settings.

Inheritors

Properties

Link copied to clipboard
abstract val catchTo: IrCatchTo

reading this type must catch exceptions during parsing

Link copied to clipboard
abstract val maybeError: Boolean

Whether this type is nullable in the schema, regardless of semantic nullability. This is used for @catchByDefault

Link copied to clipboard
abstract val nullable: Boolean

This type is nullable in Kotlin

Link copied to clipboard
abstract val optional: Boolean

This type is optional in Kotlin

Functions

Link copied to clipboard
abstract fun copyWith(maybeError: Boolean = this.maybeError, nullable: Boolean = this.nullable, optional: Boolean = this.optional, catchTo: IrCatchTo = this.catchTo): IrType
Link copied to clipboard
fun IrType.nullable(nullable: Boolean): IrType
Link copied to clipboard
fun IrType.optional(optional: Boolean): IrType
Link copied to clipboard
abstract fun rawType(): IrNamedType