[cfe] Pass offset as constructor parameter in new internal ast nodes

Change-Id: Ie69f6a7fc11225e7010d91a146ca20160986e050
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/261081
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
diff --git a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
index 28504c9..39a047b 100644
--- a/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/body_builder.dart
@@ -4031,8 +4031,8 @@
     push(new InternalRecordLiteral(
         positional, named, namedElements, originalElementOrder,
         isConst:
-            constKeyword != null || constantContext == ConstantContext.inferred)
-      ..fileOffset = token.offset);
+            constKeyword != null || constantContext == ConstantContext.inferred,
+        offset: token.offset));
   }
 
   void buildLiteralSet(List<TypeBuilder>? typeArguments, Token? constKeyword,
diff --git a/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart b/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
index f466806..5b1dbd6 100644
--- a/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
+++ b/pkg/front_end/lib/src/fasta/kernel/internal_ast.dart
@@ -4952,7 +4952,9 @@
 
   InternalRecordLiteral(this.positional, this.named, this.namedElements,
       this.originalElementOrder,
-      {required this.isConst});
+      {required this.isConst, required int offset}) {
+    fileOffset = offset;
+  }
 
   @override
   ExpressionInferenceResult acceptInference(
@@ -5014,7 +5016,9 @@
   final DartType typeBinderArgument;
   final List<Binder> binders;
 
-  ListBinder(this.typeBinderArgument, this.binders);
+  ListBinder(this.typeBinderArgument, this.binders, {required int offset}) {
+    fileOffset = offset;
+  }
 
   @override
   R accept<R>(TreeVisitor<R> visitor) {
@@ -5070,7 +5074,9 @@
 class WildcardBinder extends Binder {
   final DartType? type;
 
-  WildcardBinder(this.type);
+  WildcardBinder(this.type, {required int offset}) {
+    fileOffset = offset;
+  }
 
   @override
   R accept<R>(TreeVisitor<R> visitor) {
@@ -5124,7 +5130,10 @@
   final Binder binder;
   final Expression initializer;
 
-  PatternVariableDeclaration(this.binder, this.initializer);
+  PatternVariableDeclaration(this.binder, this.initializer,
+      {required int offset}) {
+    fileOffset = offset;
+  }
 
   @override
   R accept<R>(StatementVisitor<R> visitor) {
diff --git a/pkg/front_end/test/patterns/desugaring_test.dart b/pkg/front_end/test/patterns/desugaring_test.dart
index 0ffd299..ec60222 100644
--- a/pkg/front_end/test/patterns/desugaring_test.dart
+++ b/pkg/front_end/test/patterns/desugaring_test.dart
@@ -11,8 +11,11 @@
   checkExpected(
       makeSimpleComponentWithPatternVariableDeclaration(
           new PatternVariableDeclaration(
-              new ListBinder(const DynamicType(), [new WildcardBinder(null)]),
-              new IntLiteral(0))),
+              new ListBinder(const DynamicType(),
+                  [new WildcardBinder(null, offset: TreeNode.noOffset)],
+                  offset: TreeNode.noOffset),
+              new IntLiteral(0),
+              offset: TreeNode.noOffset)),
       makeExpectationOfSimpleComponentWithPatternVariableDeclaration(
           "PatternVariableDeclaration"));
 }