Package-level declarations

Types

Link copied to clipboard
interface AstCache<K : KAst, KInternedObject, V : Any>

A cache specialized to use KAst as a key.

Link copied to clipboard

Interner for KAst. Ensures that if any two objects are equals according to KInternedObject.internEquals, they are equal by reference (actually the same object).

Link copied to clipboard
interface CacheRemoveHandler<K, V>

The onRemove event handler in AstCache.

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
interface KInternedObject

An object which can be interned and requires a special implementation of equals and hashCode methods for the interning purposes.

Link copied to clipboard

Functions

Link copied to clipboard
fun hash(): Int
fun <A0> hash(a0: A0): Int
fun <A0, A1> hash(a0: A0, a1: A1): Int
fun <A0, A1, A2> hash(a0: A0, a1: A1, a2: A2): Int
fun <A0, A1, A2, A3> hash(a0: A0, a1: A1, a2: A2, a3: A3): Int
fun <A0, A1, A2, A3, A4> hash(a0: A0, a1: A1, a2: A2, a3: A3, a4: A4): Int
Link copied to clipboard

Select the proper AstCache implementation according to required operationMode and astManagementMode.

Link copied to clipboard

Select the proper AstInterner implementation according to required operationMode and astManagementMode.

Link copied to clipboard
fun <K, V> mkCache(operationMode: KContext.OperationMode): MutableMap<K, V>
Link copied to clipboard
inline fun <T> T.structurallyEqual(other: Any): Boolean
inline fun <T, A0> T.structurallyEqual(other: Any, a0: T.() -> A0): Boolean
inline fun <T, A0, A1> T.structurallyEqual(other: Any, a0: T.() -> A0, a1: T.() -> A1): Boolean
inline fun <T, A0, A1, A2> T.structurallyEqual(other: Any, a0: T.() -> A0, a1: T.() -> A1, a2: T.() -> A2): Boolean
inline fun <T, A0, A1, A2, A3> T.structurallyEqual(other: Any, a0: T.() -> A0, a1: T.() -> A1, a2: T.() -> A2, a3: T.() -> A3): Boolean
inline fun <T, A0, A1, A2, A3, A4> T.structurallyEqual(other: Any, a0: T.() -> A0, a1: T.() -> A1, a2: T.() -> A2, a3: T.() -> A3, a4: T.() -> A4): Boolean