Remove redundant firstTokenOffset nulls across fragments

`firstTokenOffset` was required but always passed as `null` and later
filled by `InformativeDataApplier`, making the API noisy and misleading.

Made optional in:
- FragmentImpl
- ExecutableFragmentImpl
- FieldFormalParameterFragmentImpl
- FormalParameterFragmentImpl
- FunctionFragmentImpl
- GenericFunctionTypeFragmentImpl
- NonParameterVariableFragmentImpl
- PropertyAccessorFragmentImpl
- SuperFormalParameterFragmentImpl
- TypeParameterFragmentImpl

Removed from constructors of:
- ClassFragmentImpl
- ConstructorFragmentImpl
- EnumFragmentImpl
- ExtensionFragmentImpl
- ExtensionTypeFragmentImpl
- FieldFragmentImpl
- GetterFragmentImpl
- InstanceFragmentImpl
- InterfaceFragmentImpl
- MethodFragmentImpl
- MixinFragmentImpl
- PropertyInducingFragmentImpl
- TopLevelFunctionFragmentImpl
- TopLevelVariableFragmentImpl

All call sites across builders, readers, utilities, and tests were
updated to stop passing `firstTokenOffset: null`.

Behavior is unchanged: offsets continue to be computed and applied by
`InformativeDataApplier`. This reduces boilerplate and clarifies the
construction contract for synthetic and derived elements.

Change-Id: Iba07f919b88b0bf585bfec0c5b8f4cbbe5214459
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/444389
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
index f969555..f41d5c2 100644
--- a/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
+++ b/pkg/analyzer/lib/src/dart/element/display_string_builder.dart
@@ -601,10 +601,7 @@
         name = typeParameter.name! + subscript;
       }
 
-      var newTypeParameter = TypeParameterFragmentImpl(
-        name: name,
-        firstTokenOffset: null,
-      );
+      var newTypeParameter = TypeParameterFragmentImpl(name: name);
       newTypeParameter.bound = typeParameter.bound;
       newTypeParameters.add(newTypeParameter.asElement2);
     }
diff --git a/pkg/analyzer/lib/src/dart/element/element.dart b/pkg/analyzer/lib/src/dart/element/element.dart
index bd9c557..a6c91bc 100644
--- a/pkg/analyzer/lib/src/dart/element/element.dart
+++ b/pkg/analyzer/lib/src/dart/element/element.dart
@@ -514,7 +514,6 @@
         superConstructors.map((superConstructor) {
           var constructorFragment = ConstructorFragmentImpl(
             name: superConstructor.name ?? 'new',
-            firstTokenOffset: null,
           );
           constructorFragment.isSynthetic = true;
           constructorFragment.typeName = name;
@@ -538,7 +537,6 @@
           var superInvocationArguments = <ExpressionImpl>[];
           for (var superFormalParameter in superConstructor.formalParameters) {
             var formalParameterFragment = FormalParameterFragmentImpl(
-                firstTokenOffset: null,
                 name: superFormalParameter.name,
                 nameOffset: null,
                 parameterKind: superFormalParameter.parameterKind,
@@ -615,7 +613,7 @@
 
   /// Initialize a newly created class element to have the given [name] at the
   /// given [offset] in the file that contains the declaration of this element.
-  ClassFragmentImpl({required super.name, required super.firstTokenOffset});
+  ClassFragmentImpl({required super.name});
 
   bool get hasExtendsClause {
     return hasModifier(Modifier.HAS_EXTENDS_CLAUSE);
@@ -968,10 +966,7 @@
 
   /// Initialize a newly created constructor element to have the given [name]
   /// and [offset].
-  ConstructorFragmentImpl({
-    required this.name,
-    required super.firstTokenOffset,
-  });
+  ConstructorFragmentImpl({required this.name});
 
   /// Return the constant initializers for this element, which will be empty if
   /// there are no initializers, or `null` if there was an error in the source.
@@ -2121,7 +2116,7 @@
 
   /// Initialize a newly created class element to have the given [name] at the
   /// given [offset] in the file that contains the declaration of this element.
-  EnumFragmentImpl({required super.name, required super.firstTokenOffset});
+  EnumFragmentImpl({required super.name});
 
   @override
   List<FieldElement> get constants {
@@ -2341,7 +2336,7 @@
 
   /// Initialize a newly created executable element to have the given [name] and
   /// [offset].
-  ExecutableFragmentImpl({required super.firstTokenOffset});
+  ExecutableFragmentImpl({super.firstTokenOffset});
 
   @override
   List<Fragment> get children => [...typeParameters, ...formalParameters];
@@ -2550,7 +2545,7 @@
   /// Initialize a newly created extension element to have the given [name] at
   /// the given [nameOffset] in the file that contains the declaration of this
   /// element.
-  ExtensionFragmentImpl({required super.name, required super.firstTokenOffset});
+  ExtensionFragmentImpl({required super.name});
 
   @override
   List<Fragment> get children => [
@@ -2717,10 +2712,7 @@
   /// in implemented superinterfaces.
   bool hasImplementsSelfReference = false;
 
-  ExtensionTypeFragmentImpl({
-    required super.name,
-    required super.firstTokenOffset,
-  });
+  ExtensionTypeFragmentImpl({required super.name});
 
   @override
   ExtensionTypeFragmentImpl? get nextFragment =>
@@ -2938,7 +2930,7 @@
   /// Initialize a newly created parameter element to have the given [name] and
   /// [nameOffset].
   FieldFormalParameterFragmentImpl({
-    required super.firstTokenOffset,
+    super.firstTokenOffset,
     required super.name,
     required super.nameOffset,
     required super.parameterKind,
@@ -2987,7 +2979,7 @@
 
   /// Initialize a newly created synthetic field element to have the given
   /// [name] at the given [offset].
-  FieldFragmentImpl({required super.name, required super.firstTokenOffset});
+  FieldFragmentImpl({required super.name});
 
   @override
   ExpressionImpl? get constantInitializer {
@@ -3320,7 +3312,7 @@
   /// Initialize a newly created parameter element to have the given [name] and
   /// [nameOffset].
   FormalParameterFragmentImpl({
-    required super.firstTokenOffset,
+    super.firstTokenOffset,
     required this.name,
     required this.nameOffset,
     required this.parameterKind,
@@ -3336,7 +3328,6 @@
     //  parameter which prevents navigation/references from working. See
     //  https://github.com/dart-lang/sdk/issues/60200
     var element = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name2,
       nameOffset: null,
       parameterKind: parameterKind,
@@ -3538,7 +3529,7 @@
 
   /// Initialize a newly created element to have the given [name] at the given
   /// [_nameOffset].
-  FragmentImpl({required this.firstTokenOffset});
+  FragmentImpl({this.firstTokenOffset});
 
   /// The length of the element's code, or `null` if the element is synthetic.
   int? get codeLength => _codeLength;
@@ -3719,7 +3710,7 @@
 
   /// Initialize a newly created function element to have the given [name] and
   /// [offset].
-  FunctionFragmentImpl({required this.name, required super.firstTokenOffset});
+  FunctionFragmentImpl({required this.name, super.firstTokenOffset});
 
   @override
   ExecutableFragmentImpl get declaration => this;
@@ -3873,7 +3864,7 @@
 
   /// Initialize a newly created function element to have no name and the given
   /// [nameOffset]. This is used for function expressions, that have no name.
-  GenericFunctionTypeFragmentImpl({required super.firstTokenOffset});
+  GenericFunctionTypeFragmentImpl({super.firstTokenOffset});
 
   @override
   List<Fragment> get children => [...typeParameters, ...formalParameters];
@@ -4052,7 +4043,7 @@
   @override
   GetterFragmentImpl? nextFragment;
 
-  GetterFragmentImpl({required super.name, required super.firstTokenOffset});
+  GetterFragmentImpl({required super.name});
 
   GetterFragmentImpl.forVariable(super.variable) : super.forVariable();
 
@@ -4560,7 +4551,7 @@
   List<SetterFragmentImpl> _setters = _Sentinel.setterFragment;
   List<MethodFragmentImpl> _methods = _Sentinel.methodFragment;
 
-  InstanceFragmentImpl({required this.name, required super.firstTokenOffset});
+  InstanceFragmentImpl({required this.name});
 
   List<PropertyAccessorFragmentImpl> get accessors {
     return [...getters, ...setters];
@@ -5097,7 +5088,7 @@
 
   /// Initialize a newly created class element to have the given [name] at the
   /// given [offset] in the file that contains the declaration of this element.
-  InterfaceFragmentImpl({required super.name, required super.firstTokenOffset});
+  InterfaceFragmentImpl({required super.name});
 
   @override
   List<Fragment> get children => [
@@ -6908,10 +6899,7 @@
   TopLevelFunctionElementImpl _create(LibraryElementImpl library) {
     var name = TopLevelFunctionElement.LOAD_LIBRARY_NAME;
 
-    var fragment = TopLevelFunctionFragmentImpl(
-      name: name,
-      firstTokenOffset: null,
-    );
+    var fragment = TopLevelFunctionFragmentImpl(name: name);
     fragment.isSynthetic = true;
     fragment.isStatic = true;
     fragment.enclosingFragment = library.definingCompilationUnit;
@@ -7673,7 +7661,7 @@
 
   /// Initialize a newly created method element to have the given [name] at the
   /// given [offset].
-  MethodFragmentImpl({required this.name, required super.firstTokenOffset});
+  MethodFragmentImpl({required this.name});
 
   @override
   MethodFragmentImpl get declaration => this;
@@ -7827,7 +7815,7 @@
 
   /// Initialize a newly created class element to have the given [name] at the
   /// given [offset] in the file that contains the declaration of this element.
-  MixinFragmentImpl({required super.name, required super.firstTokenOffset});
+  MixinFragmentImpl({required super.name});
 
   bool get isBase {
     return hasModifier(Modifier.BASE);
@@ -8385,7 +8373,7 @@
 abstract class NonParameterVariableFragmentImpl extends VariableFragmentImpl {
   /// Initialize a newly created variable element to have the given [name] and
   /// [offset].
-  NonParameterVariableFragmentImpl({required super.firstTokenOffset});
+  NonParameterVariableFragmentImpl({super.firstTokenOffset});
 
   @override
   FragmentImpl get enclosingFragment {
@@ -8743,10 +8731,7 @@
 
   /// Initialize a newly created property accessor element to have the given
   /// [name] and [offset].
-  PropertyAccessorFragmentImpl({
-    required this.name,
-    required super.firstTokenOffset,
-  });
+  PropertyAccessorFragmentImpl({required this.name, super.firstTokenOffset});
 
   /// Initialize a newly created synthetic property accessor element to be
   /// associated with the given [variable].
@@ -8937,10 +8922,7 @@
 
   /// Initialize a newly created synthetic element to have the given [name] and
   /// [offset].
-  PropertyInducingFragmentImpl({
-    required this.name,
-    required super.firstTokenOffset,
-  });
+  PropertyInducingFragmentImpl({required this.name});
 
   @override
   List<Fragment> get children => const [];
@@ -9096,7 +9078,7 @@
   @override
   SetterFragmentImpl? nextFragment;
 
-  SetterFragmentImpl({required super.name, required super.firstTokenOffset});
+  SetterFragmentImpl({required super.name});
 
   SetterFragmentImpl.forVariable(super.variable) : super.forVariable();
 
@@ -9273,7 +9255,7 @@
   /// Initialize a newly created parameter element to have the given [name] and
   /// [nameOffset].
   SuperFormalParameterFragmentImpl({
-    required super.firstTokenOffset,
+    super.firstTokenOffset,
     required super.name,
     required super.nameOffset,
     required super.parameterKind,
@@ -9415,10 +9397,7 @@
   @override
   TopLevelFunctionFragmentImpl? nextFragment;
 
-  TopLevelFunctionFragmentImpl({
-    required super.name,
-    required super.firstTokenOffset,
-  });
+  TopLevelFunctionFragmentImpl({required super.name});
 
   @override
   LibraryFragmentImpl get enclosingFragment =>
@@ -9555,10 +9534,7 @@
 
   /// Initialize a newly created synthetic top-level variable element to have
   /// the given [name] and [offset].
-  TopLevelVariableFragmentImpl({
-    required super.name,
-    required super.firstTokenOffset,
-  });
+  TopLevelVariableFragmentImpl({required super.name});
 
   @override
   ExpressionImpl? get constantInitializer {
@@ -10108,10 +10084,7 @@
 
   /// Initialize a newly created method element to have the given [name] and
   /// [offset].
-  TypeParameterFragmentImpl({
-    required this.name,
-    required super.firstTokenOffset,
-  });
+  TypeParameterFragmentImpl({required this.name, super.firstTokenOffset});
 
   /// Initialize a newly created synthetic type parameter element to have the
   /// given [name], and with [isSynthetic] set to `true`.
diff --git a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
index 50c5f2d..37cb551 100644
--- a/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
+++ b/pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart
@@ -975,10 +975,7 @@
         return result;
       }
 
-      var resultFragment = MethodFragmentImpl(
-        name: executable.name,
-        firstTokenOffset: null,
-      );
+      var resultFragment = MethodFragmentImpl(name: executable.name);
       resultFragment.enclosingFragment = class_.firstFragment;
       resultFragment.isSynthetic = true;
       resultFragment.formalParameters =
@@ -1006,10 +1003,7 @@
         return result;
       }
 
-      var resultFragment = SetterFragmentImpl(
-        name: executable.name,
-        firstTokenOffset: null,
-      );
+      var resultFragment = SetterFragmentImpl(name: executable.name);
       resultFragment.enclosingFragment = class_.firstFragment;
       resultFragment.isSynthetic = true;
       resultFragment.formalParameters =
@@ -1018,10 +1012,7 @@
       var result = SetterElementImpl(setterReference, resultFragment);
       result.returnType = executable.returnType;
 
-      var resultField = FieldFragmentImpl(
-        name: executable.name,
-        firstTokenOffset: null,
-      );
+      var resultField = FieldFragmentImpl(name: executable.name);
       resultField.enclosingFragment = class_.firstFragment;
 
       var elementName = executable.name!;
@@ -1077,10 +1068,7 @@
         return result;
       }
 
-      var resultFragment = MethodFragmentImpl(
-        name: fragmentName,
-        firstTokenOffset: null,
-      );
+      var resultFragment = MethodFragmentImpl(name: fragmentName);
       resultFragment.enclosingFragment = targetClass.firstFragment;
       resultFragment.typeParameters =
           resultType.typeParameters.map((e) => e.firstFragment).toList();
@@ -1102,7 +1090,7 @@
     } else {
       var firstElement = first as InternalPropertyAccessorElement;
       var fragmentName = first.name!;
-      var field = FieldFragmentImpl(name: fragmentName, firstTokenOffset: null);
+      var field = FieldFragmentImpl(name: fragmentName);
 
       PropertyAccessorFragmentImpl resultFragment;
       PropertyAccessorElementImpl resultElement;
@@ -1114,10 +1102,7 @@
           return result;
         }
 
-        var fragment = GetterFragmentImpl(
-          name: fragmentName,
-          firstTokenOffset: null,
-        );
+        var fragment = GetterFragmentImpl(name: fragmentName);
         resultFragment = fragment;
 
         var element = GetterElementImpl(elementReference, fragment);
@@ -1131,10 +1116,7 @@
           return result;
         }
 
-        var fragment = SetterFragmentImpl(
-          name: fragmentName,
-          firstTokenOffset: null,
-        );
+        var fragment = SetterFragmentImpl(name: fragmentName);
         resultFragment = fragment;
 
         var element = SetterElementImpl(elementReference, fragment);
diff --git a/pkg/analyzer/lib/src/dart/element/type_algebra.dart b/pkg/analyzer/lib/src/dart/element/type_algebra.dart
index 01055e0..7cbbb80 100644
--- a/pkg/analyzer/lib/src/dart/element/type_algebra.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_algebra.dart
@@ -262,10 +262,7 @@
 
     var freshElements = List.generate(elements.length, (index) {
       var element = elements[index];
-      var freshElement = TypeParameterFragmentImpl(
-        name: element.name,
-        firstTokenOffset: null,
-      );
+      var freshElement = TypeParameterFragmentImpl(name: element.name);
       var freshType = freshElement.instantiate(
         nullabilitySuffix: NullabilitySuffix.none,
       );
diff --git a/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart b/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart
index 714e134..eb82fe6 100644
--- a/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart
+++ b/pkg/analyzer/lib/src/dart/element/type_constraint_gatherer.dart
@@ -275,7 +275,7 @@
     // not contain any variables from `L`.
     var newTypeParameters = <TypeParameterElementImpl>[];
     for (var i = 0; i < P.typeParameters.length; i++) {
-      var Z = TypeParameterFragmentImpl(name: 'Z$i', firstTokenOffset: null);
+      var Z = TypeParameterFragmentImpl(name: 'Z$i');
       if (leftSchema) {
         Z.bound = P.typeParameters[i].bound;
       } else {
diff --git a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
index 2510bcf..0fd03ed 100644
--- a/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/ast_binary_reader.dart
@@ -429,7 +429,6 @@
 
     var nonDefaultElement = parameter.declaredFragment!;
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: nonDefaultElement.name,
       nameOffset: nonDefaultElement.nameOffset,
       parameterKind: kind,
@@ -697,7 +696,7 @@
     var type = _reader.readRequiredType() as FunctionTypeImpl;
     node.type = type;
 
-    var fragment = GenericFunctionTypeFragmentImpl(firstTokenOffset: null);
+    var fragment = GenericFunctionTypeFragmentImpl();
     fragment.formalParameters =
         formalParameters.parameters
             .map((parameter) => parameter.declaredFragment!)
@@ -1220,7 +1219,6 @@
     var actualType = _reader.readRequiredType();
 
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name?.lexeme,
       nameOffset: null,
       parameterKind: node.kind,
diff --git a/pkg/analyzer/lib/src/summary2/bundle_reader.dart b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
index 058f59d..76891ed 100644
--- a/pkg/analyzer/lib/src/summary2/bundle_reader.dart
+++ b/pkg/analyzer/lib/src/summary2/bundle_reader.dart
@@ -302,7 +302,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = ClassFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
 
@@ -369,10 +369,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = ConstructorFragmentImpl(
-            name: name!,
-            firstTokenOffset: null,
-          );
+          var fragment = ConstructorFragmentImpl(name: name!);
 
           fragment.readModifiers(_reader);
           fragment.typeName = _reader.readOptionalStringReference();
@@ -507,7 +504,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = EnumFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = EnumFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
 
@@ -593,10 +590,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = ExtensionFragmentImpl(
-            name: name,
-            firstTokenOffset: null,
-          );
+          var fragment = ExtensionFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
           fragment.fields = _readFieldFragments();
@@ -650,10 +644,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = ExtensionTypeFragmentImpl(
-            name: name,
-            firstTokenOffset: null,
-          );
+          var fragment = ExtensionTypeFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           fragment.hasRepresentationSelfReference = _reader.readBool();
           fragment.hasImplementsSelfReference = _reader.readBool();
@@ -713,7 +704,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = FieldFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = FieldFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           return fragment;
         },
@@ -806,7 +797,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = GetterFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = GetterFragmentImpl(name: name);
 
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
@@ -938,7 +929,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = MethodFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = MethodFragmentImpl(name: name);
 
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
@@ -1000,7 +991,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = MixinFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = MixinFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           fragment.superInvokedNames = _reader.readStringReferenceList();
           fragment.typeParameters = _readTypeParameters();
@@ -1062,21 +1053,18 @@
       FormalParameterFragmentImpl element;
       if (isInitializingFormal) {
         element = FieldFormalParameterFragmentImpl(
-          firstTokenOffset: null,
           name: fragmentName,
           nameOffset: null,
           parameterKind: kind,
         );
       } else if (isSuperFormal) {
         element = SuperFormalParameterFragmentImpl(
-          firstTokenOffset: null,
           name: fragmentName,
           nameOffset: null,
           parameterKind: kind,
         );
       } else {
         element = FormalParameterFragmentImpl(
-          firstTokenOffset: null,
           name: fragmentName,
           nameOffset: null,
           parameterKind: kind,
@@ -1127,7 +1115,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = SetterFragmentImpl(name: name, firstTokenOffset: null);
+          var fragment = SetterFragmentImpl(name: name);
 
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
@@ -1210,10 +1198,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = TopLevelFunctionFragmentImpl(
-            name: name,
-            firstTokenOffset: null,
-          );
+          var fragment = TopLevelFunctionFragmentImpl(name: name);
 
           fragment.readModifiers(_reader);
           fragment.typeParameters = _readTypeParameters();
@@ -1270,10 +1255,7 @@
     return _reader.readTypedList(() {
       return _readTemplateFragment(
         create: (name) {
-          var fragment = TopLevelVariableFragmentImpl(
-            name: name,
-            firstTokenOffset: null,
-          );
+          var fragment = TopLevelVariableFragmentImpl(name: name);
           fragment.readModifiers(_reader);
           return fragment;
         },
@@ -1340,10 +1322,7 @@
       var fragmentName = _readFragmentName();
       var varianceEncoding = _reader.readByte();
       var variance = _decodeVariance(varianceEncoding);
-      var element = TypeParameterFragmentImpl(
-        name: fragmentName,
-        firstTokenOffset: null,
-      );
+      var element = TypeParameterFragmentImpl(name: fragmentName);
       element.variance = variance;
       return element;
     });
@@ -1713,7 +1692,7 @@
       _localElements.length -= typeParameters.length;
 
       var fragment =
-          GenericFunctionTypeFragmentImpl(firstTokenOffset: null)
+          GenericFunctionTypeFragmentImpl()
             ..typeParameters = typeParameters
             ..formalParameters = formalParameters
             ..returnType = returnType;
@@ -1796,7 +1775,6 @@
       FormalParameterFragmentImpl element;
       if (isInitializingFormal) {
         element = FieldFormalParameterFragmentImpl(
-          firstTokenOffset: null,
           name: name,
           nameOffset: null,
           parameterKind: kind,
@@ -1804,7 +1782,6 @@
         element.element.type = type;
       } else {
         element = FormalParameterFragmentImpl(
-          firstTokenOffset: null,
           name: name,
           nameOffset: null,
           parameterKind: kind,
@@ -1916,10 +1893,7 @@
   ) {
     var typeParameters = readTypedList(() {
       var fragmentName = _readFragmentName();
-      var typeParameterFragment = TypeParameterFragmentImpl(
-        name: fragmentName,
-        firstTokenOffset: null,
-      );
+      var typeParameterFragment = TypeParameterFragmentImpl(name: fragmentName);
       var typeParameterElement = TypeParameterElementImpl(
         firstFragment: typeParameterFragment,
         name: typeParameterFragment.name,
diff --git a/pkg/analyzer/lib/src/summary2/element_builder.dart b/pkg/analyzer/lib/src/summary2/element_builder.dart
index b3087fe..78d3a02 100644
--- a/pkg/analyzer/lib/src/summary2/element_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/element_builder.dart
@@ -314,7 +314,7 @@
 
     {
       var getterFragment =
-          GetterFragmentImpl(name: fieldFragment.name, firstTokenOffset: null)
+          GetterFragmentImpl(name: fieldFragment.name)
             ..isSynthetic = true
             ..isAbstract = fieldFragment.isAbstract
             ..isStatic = fieldFragment.isStatic;
@@ -332,7 +332,7 @@
 
     if (fieldFragment.hasSetter) {
       var setterFragment =
-          SetterFragmentImpl(name: fieldFragment.name, firstTokenOffset: null)
+          SetterFragmentImpl(name: fieldFragment.name)
             ..isSynthetic = true
             ..isAbstract = fieldFragment.isAbstract
             ..isStatic = fieldFragment.isStatic;
@@ -340,7 +340,6 @@
 
       var valueFragment = FormalParameterFragmentImpl(
         name: 'value',
-        firstTokenOffset: null,
         nameOffset: null,
         parameterKind: ParameterKind.REQUIRED,
       );
@@ -406,7 +405,7 @@
 
     if (lastFieldElement == null) {
       var fieldFragment =
-          FieldFragmentImpl(name: getterFragment.name, firstTokenOffset: null)
+          FieldFragmentImpl(name: getterFragment.name)
             ..isSynthetic = true
             ..isStatic = getterFragment.isStatic;
       instanceFragment.addField(fieldFragment);
@@ -488,7 +487,7 @@
 
     if (lastFieldElement == null) {
       var fieldFragment =
-          FieldFragmentImpl(name: setterFragment.name, firstTokenOffset: null)
+          FieldFragmentImpl(name: setterFragment.name)
             ..isSynthetic = true
             ..isStatic = setterFragment.isStatic;
       instanceFragment.addField(fieldFragment);
@@ -585,7 +584,6 @@
     if (lastVariableElement == null) {
       var variableFragment = TopLevelVariableFragmentImpl(
         name: getterFragment.name,
-        firstTokenOffset: null,
       )..isSynthetic = true;
       libraryFragment.addTopLevelVariable(variableFragment);
 
@@ -636,7 +634,6 @@
     if (lastVariableElement == null) {
       var variableFragment = TopLevelVariableFragmentImpl(
         name: setterFragment.name,
-        firstTokenOffset: null,
       )..isSynthetic = true;
       libraryFragment.addTopLevelVariable(variableFragment);
 
@@ -673,10 +670,7 @@
 
     {
       var getterFragment =
-          GetterFragmentImpl(
-              name: variableFragment.name,
-              firstTokenOffset: null,
-            )
+          GetterFragmentImpl(name: variableFragment.name)
             ..isSynthetic = true
             ..isStatic = true;
       libraryFragment.addGetter(getterFragment);
@@ -694,17 +688,13 @@
 
     if (variableFragment.hasSetter) {
       var setterFragment =
-          SetterFragmentImpl(
-              name: variableFragment.name,
-              firstTokenOffset: null,
-            )
+          SetterFragmentImpl(name: variableFragment.name)
             ..isSynthetic = true
             ..isStatic = true;
       libraryFragment.addSetter(setterFragment);
 
       var valueFragment = FormalParameterFragmentImpl(
         name: 'value',
-        firstTokenOffset: null,
         nameOffset: null,
         parameterKind: ParameterKind.REQUIRED,
       );
@@ -831,10 +821,7 @@
     var nameToken = node.name;
 
     var fragmentName = _getFragmentName(nameToken);
-    var fragment = ClassFragmentImpl(
-      name: fragmentName,
-      firstTokenOffset: null,
-    );
+    var fragment = ClassFragmentImpl(name: fragmentName);
     fragment.isAbstract = node.abstractKeyword != null;
     fragment.isAugmentation = node.augmentKeyword != null;
     fragment.isBase = node.baseKeyword != null;
@@ -870,10 +857,7 @@
     var nameToken = node.name;
     var fragmentName = _getFragmentName(nameToken);
 
-    var fragment = ClassFragmentImpl(
-      name: fragmentName,
-      firstTokenOffset: null,
-    );
+    var fragment = ClassFragmentImpl(name: fragmentName);
     fragment.isAbstract = node.abstractKeyword != null;
     fragment.isBase = node.baseKeyword != null;
     fragment.isFinal = node.finalKeyword != null;
@@ -919,10 +903,7 @@
       fragmentName = 'new';
     }
 
-    var fragment = ConstructorFragmentImpl(
-      name: fragmentName,
-      firstTokenOffset: null,
-    );
+    var fragment = ConstructorFragmentImpl(name: fragmentName);
     fragment.isAugmentation = node.augmentKeyword != null;
     fragment.isConst = node.constKeyword != null;
     fragment.isExternal = node.externalKeyword != null;
@@ -955,7 +936,7 @@
     var nameToken = node.name;
     var fragmentName = _getFragmentName(nameToken);
 
-    var fragment = EnumFragmentImpl(name: fragmentName, firstTokenOffset: null);
+    var fragment = EnumFragmentImpl(name: fragmentName);
     fragment.isAugmentation = node.augmentKeyword != null;
     fragment.metadata = _buildMetadata(node.metadata);
 
@@ -978,10 +959,7 @@
         var nameToken = constant.name;
         var name = nameToken.lexeme;
         var field =
-            FieldFragmentImpl(
-                name: _getFragmentName(nameToken),
-                firstTokenOffset: null,
-              )
+            FieldFragmentImpl(name: _getFragmentName(nameToken))
               ..hasImplicitType = true
               ..hasInitializer = true
               ..isAugmentation = constant.augmentKeyword != null
@@ -1054,7 +1032,7 @@
 
       // Build the 'values' field.
       var valuesField =
-          FieldFragmentImpl(name: 'values', firstTokenOffset: null)
+          FieldFragmentImpl(name: 'values')
             ..hasEnclosingTypeParameterReference = false
             ..isConst = true
             ..isStatic = true
@@ -1139,10 +1117,7 @@
     var nameToken = node.name;
     var fragmentName = _getFragmentName(nameToken);
 
-    var fragment = ExtensionFragmentImpl(
-      name: fragmentName,
-      firstTokenOffset: null,
-    );
+    var fragment = ExtensionFragmentImpl(name: fragmentName);
     fragment.isAugmentation = node.augmentKeyword != null;
     fragment.metadata = _buildMetadata(node.metadata);
 
@@ -1173,10 +1148,7 @@
     var nameToken = node.name;
     var fragmentName = _getFragmentName(nameToken);
 
-    var fragment = ExtensionTypeFragmentImpl(
-      name: fragmentName,
-      firstTokenOffset: null,
-    );
+    var fragment = ExtensionTypeFragmentImpl(name: fragmentName);
     fragment.isAugmentation = node.augmentKeyword != null;
     fragment.metadata = _buildMetadata(node.metadata);
 
@@ -1207,10 +1179,7 @@
     for (var variable in node.fields.variables) {
       var nameToken = variable.name;
 
-      var fragment = FieldFragmentImpl(
-        name: _getFragmentName(nameToken),
-        firstTokenOffset: null,
-      );
+      var fragment = FieldFragmentImpl(name: _getFragmentName(nameToken));
       fragment.hasInitializer = variable.initializer != null;
       fragment.isAbstract = node.abstractKeyword != null;
       fragment.isAugmentation = node.augmentKeyword != null;
@@ -1249,7 +1218,6 @@
     var name2 = _getFragmentName(nameToken);
 
     var fragment = FieldFormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name2,
       nameOffset: null,
       parameterKind: node.kind,
@@ -1300,10 +1268,7 @@
 
     ExecutableFragmentImpl executableFragment;
     if (node.isGetter) {
-      var getterFragment = GetterFragmentImpl(
-        name: name2,
-        firstTokenOffset: null,
-      );
+      var getterFragment = GetterFragmentImpl(name: name2);
       getterFragment.isAugmentation = node.augmentKeyword != null;
       getterFragment.isStatic = true;
 
@@ -1312,10 +1277,7 @@
 
       _libraryBuilder.addTopFragment(_unitElement, getterFragment);
     } else if (node.isSetter) {
-      var setterFragment = SetterFragmentImpl(
-        name: name2,
-        firstTokenOffset: null,
-      );
+      var setterFragment = SetterFragmentImpl(name: name2);
       setterFragment.isAugmentation = node.augmentKeyword != null;
       setterFragment.isStatic = true;
 
@@ -1324,10 +1286,7 @@
 
       _libraryBuilder.addTopFragment(_unitElement, setterFragment);
     } else {
-      var fragment = TopLevelFunctionFragmentImpl(
-        name: name2,
-        firstTokenOffset: null,
-      );
+      var fragment = TopLevelFunctionFragmentImpl(name: name2);
       fragment.isAugmentation = node.augmentKeyword != null;
       fragment.isStatic = true;
       executableFragment = fragment;
@@ -1377,9 +1336,7 @@
       node.parameters.accept(this);
     });
 
-    var aliasedElement = GenericFunctionTypeFragmentImpl(
-      firstTokenOffset: null,
-    );
+    var aliasedElement = GenericFunctionTypeFragmentImpl();
     aliasedElement.formalParameters = holder.formalParameters;
 
     fragment.typeParameters = holder.typeParameters;
@@ -1394,7 +1351,6 @@
     var name2 = _getFragmentName(nameToken);
 
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name2,
       nameOffset: null,
       parameterKind: node.kind,
@@ -1430,7 +1386,7 @@
 
   @override
   void visitGenericFunctionType(covariant GenericFunctionTypeImpl node) {
-    var fragment = GenericFunctionTypeFragmentImpl(firstTokenOffset: null);
+    var fragment = GenericFunctionTypeFragmentImpl();
     _unitElement.encloseElement(fragment);
 
     node.declaredFragment = fragment;
@@ -1505,30 +1461,21 @@
 
     ExecutableFragmentImpl executableFragment;
     if (node.isGetter) {
-      var fragment = GetterFragmentImpl(
-        name: _getFragmentName(nameToken),
-        firstTokenOffset: null,
-      );
+      var fragment = GetterFragmentImpl(name: _getFragmentName(nameToken));
       fragment.isAbstract = node.isAbstract;
       fragment.isAugmentation = node.augmentKeyword != null;
       fragment.isStatic = node.isStatic;
       _addChildFragment(fragment);
       executableFragment = fragment;
     } else if (node.isSetter) {
-      var fragment = SetterFragmentImpl(
-        name: _getFragmentName(nameToken),
-        firstTokenOffset: null,
-      );
+      var fragment = SetterFragmentImpl(name: _getFragmentName(nameToken));
       fragment.isAbstract = node.isAbstract;
       fragment.isAugmentation = node.augmentKeyword != null;
       fragment.isStatic = node.isStatic;
       _addChildFragment(fragment);
       executableFragment = fragment;
     } else {
-      var fragment = MethodFragmentImpl(
-        name: _getFragmentName(nameToken),
-        firstTokenOffset: null,
-      );
+      var fragment = MethodFragmentImpl(name: _getFragmentName(nameToken));
       fragment.isAbstract = node.isAbstract;
       fragment.isAugmentation = node.augmentKeyword != null;
       fragment.isStatic = node.isStatic;
@@ -1560,10 +1507,7 @@
     var nameToken = node.name;
     var fragmentName = _getFragmentName(nameToken);
 
-    var fragment = MixinFragmentImpl(
-      name: fragmentName,
-      firstTokenOffset: null,
-    );
+    var fragment = MixinFragmentImpl(name: fragmentName);
     fragment.isAugmentation = node.augmentKeyword != null;
     fragment.isBase = node.baseKeyword != null;
     fragment.metadata = _buildMetadata(node.metadata);
@@ -1641,7 +1585,6 @@
     var name2 = _getFragmentName(nameToken);
 
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name2,
       nameOffset: null,
       parameterKind: node.kind,
@@ -1671,7 +1614,6 @@
     var name2 = _getFragmentName(nameToken);
 
     var fragment = SuperFormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name2,
       nameOffset: null,
       parameterKind: node.kind,
@@ -1716,10 +1658,7 @@
       var nameToken = variable.name;
       var name2 = _getFragmentName(nameToken);
 
-      var fragment = TopLevelVariableFragmentImpl(
-        name: name2,
-        firstTokenOffset: null,
-      );
+      var fragment = TopLevelVariableFragmentImpl(name: name2);
 
       fragment.hasInitializer = variable.initializer != null;
       fragment.isAugmentation = node.augmentKeyword != null;
@@ -1754,10 +1693,7 @@
   void visitTypeParameter(covariant TypeParameterImpl node) {
     var nameToken = node.name;
 
-    var fragment = TypeParameterFragmentImpl(
-      name: _getFragmentName(nameToken),
-      firstTokenOffset: null,
-    );
+    var fragment = TypeParameterFragmentImpl(name: _getFragmentName(nameToken));
     fragment.metadata = _buildMetadata(node.metadata);
 
     node.declaredFragment = fragment;
@@ -1821,7 +1757,6 @@
 
     var fieldFragment = FieldFragmentImpl(
       name: _getFragmentName(fieldNameToken),
-      firstTokenOffset: null,
     );
     fieldFragment.isFinal = true;
     fieldFragment.metadata = _buildMetadata(representation.fieldMetadata);
@@ -1833,7 +1768,6 @@
 
     var formalParameterElement =
         FieldFormalParameterFragmentImpl(
-            firstTokenOffset: null,
             name: _getFragmentName(fieldNameToken),
             nameOffset: null,
             parameterKind: ParameterKind.REQUIRED,
@@ -1845,7 +1779,6 @@
       var constructorFragment =
           ConstructorFragmentImpl(
               name: representation.constructorName?.name.lexeme ?? 'new',
-              firstTokenOffset: null,
             )
             ..isAugmentation = extensionNode.augmentKeyword != null
             ..isConst = extensionNode.constKeyword != null
diff --git a/pkg/analyzer/lib/src/summary2/library_builder.dart b/pkg/analyzer/lib/src/summary2/library_builder.dart
index 2340a19..23e6641 100644
--- a/pkg/analyzer/lib/src/summary2/library_builder.dart
+++ b/pkg/analyzer/lib/src/summary2/library_builder.dart
@@ -154,10 +154,7 @@
       if (classElement.isMixinApplication) continue;
       if (classElement.constructors.isNotEmpty) continue;
 
-      var fragment = ConstructorFragmentImpl(
-        name: 'new',
-        firstTokenOffset: null,
-      )..isSynthetic = true;
+      var fragment = ConstructorFragmentImpl(name: 'new')..isSynthetic = true;
       fragment.typeName = classElement.name;
       classElement.firstFragment.constructors = [fragment].toFixedList();
 
@@ -239,7 +236,7 @@
       if (hasConstructor(enumFragment)) continue;
 
       var fragment =
-          ConstructorFragmentImpl(name: 'new', firstTokenOffset: null)
+          ConstructorFragmentImpl(name: 'new')
             ..isConst = true
             ..isSynthetic = true;
       fragment.typeName = enumFragment.name;
diff --git a/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart b/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart
index 8e613ec..cc078d4 100644
--- a/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart
+++ b/pkg/analyzer/lib/src/test_utilities/mock_sdk_elements.dart
@@ -981,7 +981,7 @@
     List<TypeParameterElementImpl> typeParameters = const [],
     required LibraryFragmentImpl unit,
   }) {
-    var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = ClassFragmentImpl(name: name);
     ClassElementImpl(Reference.root(), fragment);
     fragment.typeParameters =
         typeParameters.map((tp) => tp.firstFragment).toList();
@@ -996,7 +996,7 @@
     bool isFactory = false,
     List<FormalParameterElement> parameters = const [],
   }) {
-    var fragment = ConstructorFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = ConstructorFragmentImpl(name: name);
     fragment.isFactory = isFactory;
     fragment.isConst = isConst;
     fragment.formalParameters =
@@ -1020,7 +1020,7 @@
     bool isFinal = false,
     bool isStatic = false,
   }) {
-    var fragment = FieldFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = FieldFragmentImpl(name: name);
     var element = FieldElementImpl(
       reference: Reference.root(),
       firstFragment: fragment,
@@ -1029,20 +1029,18 @@
     fragment.isFinal = isFinal;
     fragment.isStatic = isStatic;
 
-    var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null)
-      ..isSynthetic = true;
+    var getterFragment = GetterFragmentImpl(name: name)..isSynthetic = true;
     var getterElement = GetterElementImpl(Reference.root(), getterFragment);
     element.getter = getterElement;
 
     if (!isConst && !isFinal) {
       var valueFragment = FormalParameterFragmentImpl(
-        firstTokenOffset: null,
         name: null,
         nameOffset: null,
         parameterKind: ParameterKind.REQUIRED,
       );
       var setterFragment =
-          SetterFragmentImpl(name: name, firstTokenOffset: null)
+          SetterFragmentImpl(name: name)
             ..isSynthetic = true
             ..formalParameters = [valueFragment];
       var setterElement = SetterElementImpl(Reference.root(), setterFragment);
@@ -1060,7 +1058,7 @@
     List<FormalParameterElement> parameters = const [],
   }) {
     var fragment =
-        TopLevelFunctionFragmentImpl(name: name, firstTokenOffset: null)
+        TopLevelFunctionFragmentImpl(name: name)
           ..formalParameters =
               parameters
                   .map((p) => p.firstFragment as FormalParameterFragmentImpl)
@@ -1091,7 +1089,7 @@
     TypeImpl type, {
     bool isStatic = false,
   }) {
-    var fieldFragment = FieldFragmentImpl(name: name, firstTokenOffset: null);
+    var fieldFragment = FieldFragmentImpl(name: name);
     var fieldElement = FieldElementImpl(
       reference: Reference.root(),
       firstFragment: fieldFragment,
@@ -1100,7 +1098,7 @@
     fieldFragment.isSynthetic = true;
     fieldElement.type = type;
 
-    var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null);
+    var getterFragment = GetterFragmentImpl(name: name);
     getterFragment.isStatic = isStatic;
     getterFragment.isSynthetic = false;
 
@@ -1130,7 +1128,7 @@
     List<FormalParameterElement> parameters = const [],
   }) {
     var fragment =
-        MethodFragmentImpl(name: name, firstTokenOffset: null)
+        MethodFragmentImpl(name: name)
           ..formalParameters =
               parameters
                   .map((p) => p.firstFragment as FormalParameterFragmentImpl)
@@ -1149,7 +1147,6 @@
 
   FormalParameterElement _namedParameter(String name, TypeImpl type) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.NAMED,
@@ -1234,7 +1231,6 @@
 
   FormalParameterElement _positionalParameter(String name, TypeImpl type) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.POSITIONAL,
@@ -1244,7 +1240,6 @@
 
   FormalParameterElement _requiredParameter(String name, TypeImpl type) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.REQUIRED,
@@ -1269,13 +1264,9 @@
     String name,
     TypeImpl type,
   ) {
-    var fragment = TopLevelVariableFragmentImpl(
-      name: name,
-      firstTokenOffset: null,
-    )..isConst = true;
+    var fragment = TopLevelVariableFragmentImpl(name: name)..isConst = true;
     var element = TopLevelVariableElementImpl(Reference.root(), fragment);
-    var getterFragment = GetterFragmentImpl(name: name, firstTokenOffset: null)
-      ..isSynthetic = true;
+    var getterFragment = GetterFragmentImpl(name: name)..isSynthetic = true;
     var getterElement = GetterElementImpl(Reference.root(), getterFragment);
     element.getter = getterElement;
     element.type = type;
@@ -1284,10 +1275,7 @@
 
   TypeParameterElementImpl _typeParameter(String name) {
     return TypeParameterElementImpl(
-      firstFragment: TypeParameterFragmentImpl(
-        name: name,
-        firstTokenOffset: null,
-      ),
+      firstFragment: TypeParameterFragmentImpl(name: name),
       name: name.nullIfEmpty,
     );
   }
diff --git a/pkg/analyzer/lib/src/utilities/extensions/element.dart b/pkg/analyzer/lib/src/utilities/extensions/element.dart
index f41afd4..a99edca 100644
--- a/pkg/analyzer/lib/src/utilities/extensions/element.dart
+++ b/pkg/analyzer/lib/src/utilities/extensions/element.dart
@@ -412,10 +412,7 @@
 
 extension TypeParameterElement2Extension on TypeParameterElement {
   TypeParameterElementImpl freshCopy() {
-    var fragment = TypeParameterFragmentImpl(
-      name: name,
-      firstTokenOffset: null,
-    );
+    var fragment = TypeParameterFragmentImpl(name: name);
     fragment.bound = bound;
     return TypeParameterElementImpl(firstFragment: fragment, name: name);
   }
diff --git a/pkg/analyzer/test/generated/elements_types_mixin.dart b/pkg/analyzer/test/generated/elements_types_mixin.dart
index fcea084..0f35e90 100644
--- a/pkg/analyzer/test/generated/elements_types_mixin.dart
+++ b/pkg/analyzer/test/generated/elements_types_mixin.dart
@@ -127,7 +127,7 @@
     List<InterfaceTypeImpl> mixins = const [],
     List<MethodFragmentImpl> methods = const [],
   }) {
-    var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = ClassFragmentImpl(name: name);
     fragment.isAbstract = isAbstract;
     fragment.isAugmentation = isAugmentation;
     fragment.isSealed = isSealed;
@@ -154,7 +154,7 @@
     List<InterfaceTypeImpl> mixins = const [],
     List<MethodElementImpl> methods = const [],
   }) {
-    var fragment = ClassFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = ClassFragmentImpl(name: name);
     fragment.isAbstract = isAbstract;
     fragment.isAugmentation = isAugmentation;
     fragment.isSealed = isSealed;
@@ -192,7 +192,7 @@
     required String name,
     required List<FieldFragmentImpl> constants,
   }) {
-    var fragment = EnumFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = EnumFragmentImpl(name: name);
     EnumElementImpl(Reference.root(), fragment);
     fragment.enclosingFragment = testLibrary.definingCompilationUnit;
     fragment.fields = constants;
@@ -203,7 +203,7 @@
     required String name,
     required List<FieldFragmentImpl> constants,
   }) {
-    var fragment = EnumFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = EnumFragmentImpl(name: name);
     var element = EnumElementImpl(Reference.root(), fragment);
     fragment.enclosingFragment = testLibrary.definingCompilationUnit;
     fragment.fields = constants;
@@ -211,8 +211,7 @@
   }
 
   FieldFragmentImpl enumConstant_(String name) {
-    return FieldFragmentImpl(name: name, firstTokenOffset: null)
-      ..isEnumConstant = true;
+    return FieldFragmentImpl(name: name)..isEnumConstant = true;
   }
 
   ExtensionFragmentImpl extension({
@@ -222,7 +221,7 @@
     List<TypeParameterFragmentImpl> typeParameters = const [],
     List<MethodFragmentImpl> methods = const [],
   }) {
-    var element = ExtensionFragmentImpl(name: name, firstTokenOffset: null);
+    var element = ExtensionFragmentImpl(name: name);
     ExtensionElementImpl(Reference.root(), element);
     element.element.extendedType = extendedType;
     element.isAugmentation = isAugmentation;
@@ -239,18 +238,12 @@
     List<TypeParameterElementImpl> typeParameters = const [],
     List<InterfaceTypeImpl> interfaces = const [],
   }) {
-    var fragment = ExtensionTypeFragmentImpl(
-      name: name,
-      firstTokenOffset: null,
-    );
+    var fragment = ExtensionTypeFragmentImpl(name: name);
     fragment.enclosingFragment = testLibrary.definingCompilationUnit;
     fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
     fragment.interfaces = interfaces;
 
-    var fieldFragment = FieldFragmentImpl(
-      name: representationName,
-      firstTokenOffset: null,
-    );
+    var fieldFragment = FieldFragmentImpl(name: representationName);
     var fieldElement = FieldElementImpl(
       reference: Reference.root(),
       firstFragment: fieldFragment,
@@ -272,18 +265,12 @@
     List<TypeParameterElementImpl> typeParameters = const [],
     List<InterfaceTypeImpl> interfaces = const [],
   }) {
-    var fragment = ExtensionTypeFragmentImpl(
-      name: name,
-      firstTokenOffset: null,
-    );
+    var fragment = ExtensionTypeFragmentImpl(name: name);
     fragment.enclosingFragment = testLibrary.definingCompilationUnit;
     fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
     fragment.interfaces = interfaces;
 
-    var fieldFragment = FieldFragmentImpl(
-      name: representationName,
-      firstTokenOffset: null,
-    );
+    var fieldFragment = FieldFragmentImpl(name: representationName);
     fragment.fields = [fieldFragment];
 
     var fieldElement = FieldElementImpl(
@@ -466,7 +453,7 @@
     List<FormalParameterElementImpl> formalParameters = const [],
   }) {
     var fragment =
-        MethodFragmentImpl(name: name, firstTokenOffset: null)
+        MethodFragmentImpl(name: name)
           ..isStatic = isStatic
           ..formalParameters = formalParameters.map((e) => e.asElement).toList()
           ..typeParameters = typeParameters.map((e) => e.asElement).toList();
@@ -486,7 +473,7 @@
     List<InterfaceTypeImpl>? constraints,
     List<InterfaceTypeImpl> interfaces = const [],
   }) {
-    var fragment = MixinFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = MixinFragmentImpl(name: name);
     fragment.isAugmentation = isAugmentation;
     fragment.enclosingFragment = testLibrary.definingCompilationUnit;
     fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
@@ -505,7 +492,7 @@
     List<InterfaceTypeImpl>? constraints,
     List<InterfaceTypeImpl> interfaces = const [],
   }) {
-    var fragment = MixinFragmentImpl(name: name, firstTokenOffset: null);
+    var fragment = MixinFragmentImpl(name: name);
     fragment.isAugmentation = isAugmentation;
     fragment.enclosingFragment = testLibrary.definingCompilationUnit;
     fragment.typeParameters = typeParameters.map((e) => e.asElement).toList();
@@ -523,7 +510,6 @@
     bool isCovariant = false,
   }) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.NAMED,
@@ -538,7 +524,6 @@
     bool isCovariant = false,
   }) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.NAMED_REQUIRED,
@@ -553,7 +538,6 @@
     bool isCovariant = false,
   }) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.POSITIONAL,
@@ -642,7 +626,6 @@
     bool isCovariant = false,
   }) {
     var fragment = FormalParameterFragmentImpl(
-      firstTokenOffset: null,
       name: name,
       nameOffset: 0,
       parameterKind: ParameterKind.REQUIRED,
@@ -680,10 +663,7 @@
     TypeImpl? bound,
     Variance? variance,
   }) {
-    var fragment = TypeParameterFragmentImpl(
-      name: name,
-      firstTokenOffset: null,
-    );
+    var fragment = TypeParameterFragmentImpl(name: name);
     fragment.bound = bound;
 
     var element = TypeParameterElementImpl(firstFragment: fragment, name: name);