Skip to content

KaTypeApproximation

Controls whether rendered types are approximated to denotable types (types which can be written in Kotlin source code), and in which direction.

Approximation matters for types that cannot be written down by a user, such as captured types, intersection types, or types with flexible bounds. Such a type usually has both a denotable subtype and a denotable supertype, and the correct choice depends on the position in which the type is used: an output position (e.g. a return type) requires a supertype, while an input position (e.g. a value parameter type) requires a subtype.

See also

Entries

NONE

Types are rendered as they are, even if the result cannot be written in Kotlin source code.

TO_DENOTABLE_SUBTYPE

Every type is approximated to its closest denotable subtype, which is correct for input positions, such as parameter types.

TO_DENOTABLE_SUPERTYPE

Every type is approximated to its closest denotable supertype, which is correct for output positions, such as return types. Locally declared types are approximated to local supertypes.

Companion properties

entries

Returns an immutable kotlin.enums.EnumEntries list containing the constants of this enum type, in the order they're declared.

Companion functions

valueOf

Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)

Throws

kotlin.IllegalArgumentException

if this enum type has no constant with the specified name

values

Returns an array containing the constants of this enum type, in the order they're declared.

This method may be used to iterate over the constants.

The function returns a new instance of the array on every call. The array could be mutated, so working with it may also require defensive copying. Consider using entries property as a more efficient alternative returning an immutable list of enum entries.

Properties

name

val name: String

ordinal

val ordinal: Int