compiler-plugin / arrow.meta.quotes / TypedQuote

TypedQuote

interface TypedQuote<P : KtElement, K : KtElement, D : DeclarationDescriptor, S> : QuoteProcessor<TypedQuoteTemplate<K, D>, K, S>

Typed Quote Templates DSL

Arrow Meta offers a high level DSL for compiler tree transformations with deep type information. This DSL brings what Quote already does but rewind its phase with Kotlin compiler descriptors.

val Meta.helloWorld: CliPlugin get() =
  "Hello World" {
    meta(
      namedFunction(this, { element.name == "helloWorld" }) { (c, descriptor) ->  // <-- namedFunction(...) {...}
        ...
      }
    )
  }

Types

Factory interface Factory<P : KtElement, K : KtElement, D : DeclarationDescriptor, S>

Properties

containingDeclaration abstract val containingDeclaration: P

Do you like Arrow?

Arrow Org
<