diff --git a/pkg/analyzer/lib/dart/element/element.dart b/pkg/analyzer/lib/dart/element/element.dart
index 444e18a..7b0db63 100644
--- a/pkg/analyzer/lib/dart/element/element.dart
+++ b/pkg/analyzer/lib/dart/element/element.dart
@@ -1061,6 +1061,12 @@
 
   R? visitPropertyAccessorElement(PropertyAccessorElement element);
 
+  R? visitRecordElement(RecordElement element);
+
+  R? visitRecordNamedFieldElement(RecordNamedFieldElement element);
+
+  R? visitRecordPositionalFieldElement(RecordPositionalFieldElement element);
+
   R? visitSuperFormalParameterElement(SuperFormalParameterElement element);
 
   R? visitTopLevelVariableElement(TopLevelVariableElement element);
diff --git a/pkg/analyzer/lib/dart/element/visitor.dart b/pkg/analyzer/lib/dart/element/visitor.dart
index c5de555..3d93e15 100644
--- a/pkg/analyzer/lib/dart/element/visitor.dart
+++ b/pkg/analyzer/lib/dart/element/visitor.dart
@@ -196,6 +196,17 @@
       visitVariableElement(element);
 
   @override
+  R? visitRecordElement(RecordElement element) => visitElement(element);
+
+  @override
+  R? visitRecordNamedFieldElement(RecordNamedFieldElement element) =>
+      visitElement(element);
+
+  @override
+  R? visitRecordPositionalFieldElement(RecordPositionalFieldElement element) =>
+      visitElement(element);
+
+  @override
   R? visitSuperFormalParameterElement(SuperFormalParameterElement element) =>
       visitParameterElement(element);
 
@@ -381,6 +392,24 @@
   }
 
   @override
+  R? visitRecordElement(RecordElement element) {
+    element.visitChildren(this);
+    return null;
+  }
+
+  @override
+  R? visitRecordNamedFieldElement(RecordNamedFieldElement element) {
+    element.visitChildren(this);
+    return null;
+  }
+
+  @override
+  R? visitRecordPositionalFieldElement(RecordPositionalFieldElement element) {
+    element.visitChildren(this);
+    return null;
+  }
+
+  @override
   R? visitSuperFormalParameterElement(SuperFormalParameterElement element) {
     element.visitChildren(this);
     return null;
@@ -496,6 +525,16 @@
   R? visitPropertyAccessorElement(PropertyAccessorElement element) => null;
 
   @override
+  R? visitRecordElement(RecordElement element) => null;
+
+  @override
+  R? visitRecordNamedFieldElement(RecordNamedFieldElement element) => null;
+
+  @override
+  R? visitRecordPositionalFieldElement(RecordPositionalFieldElement element) =>
+      null;
+
+  @override
   R? visitSuperFormalParameterElement(SuperFormalParameterElement element) =>
       null;
 
@@ -605,6 +644,17 @@
       _throw(element);
 
   @override
+  R? visitRecordElement(RecordElement element) => _throw(element);
+
+  @override
+  R? visitRecordNamedFieldElement(RecordNamedFieldElement element) =>
+      _throw(element);
+
+  @override
+  R? visitRecordPositionalFieldElement(RecordPositionalFieldElement element) =>
+      _throw(element);
+
+  @override
   R? visitSuperFormalParameterElement(SuperFormalParameterElement element) =>
       _throw(element);
 
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index cbceaa5..b8d7855 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -6206,8 +6206,7 @@
 
   @override
   T? accept<T>(ElementVisitor<T> visitor) {
-    // TODO: implement accept
-    throw UnimplementedError();
+    return visitor.visitRecordElement(this);
   }
 
   @override
@@ -6224,6 +6223,13 @@
     );
   }
 
+  @override
+  void visitChildren(ElementVisitor visitor) {
+    super.visitChildren(visitor);
+    safelyVisitChildren(positionalFields, visitor);
+    safelyVisitChildren(namedFields, visitor);
+  }
+
   /// Returns [fields], if already sorted, or the sorted copy.
   static List<RecordNamedFieldElementImpl> _sortNamedFields(
     List<RecordNamedFieldElementImpl> fields,
@@ -6247,7 +6253,7 @@
   }
 }
 
-class RecordFieldElementImpl extends _ExistingElementImpl
+abstract class RecordFieldElementImpl extends _ExistingElementImpl
     implements RecordFieldElement {
   @override
   DartType type;
@@ -6264,12 +6270,6 @@
 
   @override
   ElementKind get kind => ElementKind.RECORD;
-
-  @override
-  T? accept<T>(ElementVisitor<T> visitor) {
-    // TODO: implement accept
-    throw UnimplementedError();
-  }
 }
 
 class RecordNamedFieldElementImpl extends RecordFieldElementImpl
@@ -6282,6 +6282,11 @@
 
   @override
   String get name => super.name!;
+
+  @override
+  T? accept<T>(ElementVisitor<T> visitor) {
+    return visitor.visitRecordNamedFieldElement(this);
+  }
 }
 
 class RecordPositionalFieldElementImpl extends RecordFieldElementImpl
@@ -6291,6 +6296,11 @@
     required super.nameOffset,
     required super.type,
   });
+
+  @override
+  T? accept<T>(ElementVisitor<T> visitor) {
+    return visitor.visitRecordPositionalFieldElement(this);
+  }
 }
 
 /// A concrete implementation of a [ShowElementCombinator].
