Declaration

sealed interface Declaration : Node.Statement

Common interface for AST nodes that are main contents of a Kotlin file or a class body.

Inheritors

Types

Link copied to clipboard
data class ClassDeclaration(    val modifiers: List<Node.Modifier>,     val declarationKeyword: Node.Declaration.ClassDeclaration.ClassOrInterfaceKeyword,     val name: Node.Expression.NameExpression,     val lAngle: Node.Keyword.Less?,     val typeParameters: List<Node.TypeParameter>,     val rAngle: Node.Keyword.Greater?,     val primaryConstructor: Node.Declaration.ClassDeclaration.PrimaryConstructor?,     val parents: List<Node.Declaration.ClassOrObject.ClassParent>,     val typeConstraintSet: Node.PostModifier.TypeConstraintSet?,     val body: Node.Declaration.ClassOrObject.ClassBody?,     val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration.ClassOrObject, Node.WithTypeParameters

AST node that represents a class or interface declaration. The node corresponds to KtClass.

Link copied to clipboard
Link copied to clipboard
data class FunctionDeclaration(    val modifiers: List<Node.Modifier>,     val lAngle: Node.Keyword.Less?,     val typeParameters: List<Node.TypeParameter>,     val rAngle: Node.Keyword.Greater?,     val receiverType: Node.Type?,     val name: Node.Expression.NameExpression?,     val lPar: Node.Keyword.LPar,     val parameters: List<Node.FunctionParameter>,     val rPar: Node.Keyword.RPar,     val returnType: Node.Type?,     val postModifiers: List<Node.PostModifier>,     val body: Node.Expression?,     val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration, Node.WithModifiers, Node.WithTypeParameters, Node.WithFunctionParameters, Node.WithPostModifiers

AST node that represents a function declaration. The node corresponds to KtNamedFunction.

Link copied to clipboard
data class ObjectDeclaration(    val modifiers: List<Node.Modifier>,     val declarationKeyword: Node.Keyword.Object,     val name: Node.Expression.NameExpression?,     val parents: List<Node.Declaration.ClassOrObject.ClassParent>,     val body: Node.Declaration.ClassOrObject.ClassBody?,     val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration.ClassOrObject

AST node that represents an object declaration. The node corresponds to KtObjectDeclaration.

Link copied to clipboard
data class PropertyDeclaration(    val modifiers: List<Node.Modifier>,     val valOrVarKeyword: Node.Keyword.ValOrVarKeyword,     val lAngle: Node.Keyword.Less?,     val typeParameters: List<Node.TypeParameter>,     val rAngle: Node.Keyword.Greater?,     val receiverType: Node.Type?,     val lPar: Node.Keyword.LPar?,     val variables: List<Node.Variable>,     val rPar: Node.Keyword.RPar?,     val typeConstraintSet: Node.PostModifier.TypeConstraintSet?,     val initializerExpression: Node.Expression?,     val delegateExpression: Node.Expression?,     val accessors: List<Node.Declaration.PropertyDeclaration.Accessor>,     val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration, Node.WithModifiers, Node.WithTypeParameters

AST node that represents a property declaration. The node corresponds to KtProperty or KtDestructuringDeclaration.

Link copied to clipboard
data class ScriptBody(    val declarations: List<Node.Declaration>,     val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration, Node.WithDeclarations

AST node that represents a body of Kotlin script. The node corresponds to KtScript and its child KtBlockExpression.

Link copied to clipboard
data class ScriptInitializer(val body: Node.Statement, val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration

AST node that represents a script initializer, which wraps non-declaration statements in the script. The node corresponds to KtScriptInitializer.

Link copied to clipboard
data class TypeAliasDeclaration(    val modifiers: List<Node.Modifier>,     val name: Node.Expression.NameExpression,     val lAngle: Node.Keyword.Less?,     val typeParameters: List<Node.TypeParameter>,     val rAngle: Node.Keyword.Greater?,     val type: Node.Type,     val supplement: NodeSupplement = NodeSupplement()) : Node.Declaration, Node.WithModifiers, Node.WithTypeParameters

AST node that represents a type alias declaration. The node corresponds to KtTypeAlias.

Properties

Link copied to clipboard

Supplemental data for the node.