# RecordDeclaration class abstract

Represents a reflected Dart record type.

A Dart record consists of zero or more positional fields and optionally named fields. This interface provides access to both positional and named components of the record in a structured and introspectable form.

## Example

    (int, String, {bool active}) record = (1, "hello", active: true);

    ReflectedRecord reflected = ...;
    reflected.getPositionalFields(); // returns field for int and String
    reflected.getNamedFields();      // returns map with 'active': bool

This type also implements TypeDeclaration, so it can be treated like any other reflected type (e.g., for kind, name, annotations, etc.).

Inheritance
  - Object
  - Declaration
  - EntityDeclaration
  - TypeDeclaration
  - RecordDeclaration
Implemented types
  - SourceDeclaration
Available extensions
  - TypeDeclarationExtension

## Constructors

RecordDeclaration.new()
  Represents a reflected Dart record type.
  const

## Properties

hashCode → int
  The hash code for this object.
  no setter inherited
runtimeType → Type
  A representation of the runtime type of the object.
  no setter inherited

## Methods

asClass() → ClassDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to ClassDeclaration if possible.
asEnum() → EnumDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to EnumDeclaration if possible.
asMixin() → MixinDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to MixinDeclaration if possible.
asRecord() → RecordDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to RecordDeclaration if possible.
asTypedef() → TypedefDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to TypedefDeclaration if possible.
asTypeVariable() → TypeVariableDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Safely casts to TypeVariableDeclaration if possible.
getAnnotations() → List<AnnotationDeclaration>
  Returns all annotations applied to this declaration.
  inherited
getDartType() → DartType?
  The analyzer DartType of the entity for enhanced type operations.
  inherited
getDebugIdentifier() → String
  The debug identifier for the entity.
  inherited
getDeclaration() → SourceDeclaration?

  Available on TypeDeclaration, provided by the TypeDeclarationExtension extension

  Resolves the most specific declaration type.
getElement() → Element?
  The analyzer element associated with this declaration.
  inherited
getField(String name) → RecordFieldDeclaration?
  Returns the named field with the given `name`, or `null` if not found.
getInterfaces() → List<LinkDeclaration>
  Returns the list of interfaces this type implements.
  inherited
getIsNullable() → bool
  Returns `true` if the type is nullable, such as `'String?'` or `'int?'`.
  inherited
getIsPublic() → bool
  Checks if this declaration is a public declaration.
  inherited
getIsSynthetic() → bool
  Checks if a declaration is a synthetic declaration.
  inherited
getKind() → TypeKind
  Returns the TypeKind of this type, indicating whether it is a class, enum, mixin, etc.
  inherited
getMixins() → List<LinkDeclaration>
  Returns the list of mixin identities that are applied to this type.
  inherited
getName() → String
  Gets the name of the declared element.
  inherited
getNamedFields() → Map<String, RecordFieldDeclaration>
  Returns a map of named fields in the record, keyed by their name.
getPackageUri() → String
  Returns the package URI where this type is declared.
  inherited
getParentLibrary() → LibraryDeclaration
  Returns the LibraryDeclaration in which this declaration is defined.
  inherited
getPositionalField(int index) → RecordFieldDeclaration?
  Returns the positional field at the given `index`, or `null` if out of bounds.
getPositionalFields() → List<RecordFieldDeclaration>
  Returns the list of positional fields in the record, in order of position.
getQualifiedName() → String
  Returns the fully qualified name of this type.
  inherited
getSimpleName() → String
  Returns the simple name of the type without the package or library URI.
  inherited
getSourceLocation() → Uri?
  Returns the source code location (e.g., file path or URI) where this declaration is defined, or `null` if not available in the current reflection context.
  inherited
getSuperClass() → LinkDeclaration?
  Returns the direct superclass of this type.
  inherited
getType() → Type
  Gets the runtime type of the declared element.
  inherited
getTypeArguments() → List<LinkDeclaration>
  Returns the list of type arguments for generic types.
  inherited
hasAnalyzerSupport() → bool
  Returns true if this declaration has analyzer information available.
  inherited
isAssignableFrom(TypeDeclaration other) → bool
  Type Assignability Table:
  inherited
isAssignableTo(TypeDeclaration target) → bool
  Type Assignability Table:
  inherited
isGeneric() → bool
  Check if this is a generic type.
  inherited
noSuchMethod(Invocation invocation) → dynamic
  Invoked when a nonexistent method or property is accessed.
  inherited
toJson() → Map<String, Object>
  Returns a JSON representation of this entity.
  inherited
toString() → String
  A string representation of this object.
  inherited

## Operators

operator ==(Object other) → bool
  The equality operator.
  inherited