#3182. Replace augmenting getter tests (#3443)

Replace augmenting getter tests
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A01_t01.dart b/LanguageFeatures/Augmentations/augmenting_getters_A01_t01.dart
deleted file mode 100644
index afed10b..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A01_t01.dart
+++ /dev/null
@@ -1,137 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion Augmenting with a getter: An augmenting getter can augment a
-/// getter declaration, or the implicit getter of a variable declaration, with
-/// all prior augmentations applied, by replacing the body of the augmented
-/// getter with the body of the augmenting getter. Inside the augmenting
-/// getter’s body, an `augmented` expression executes the augmented getter’s
-/// body.
-///
-/// @description Checks that an augmenting getter can augment a getter
-/// declaration with all prior augmentations applied.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-import '../../Utils/expect.dart';
-part 'augmenting_getters_A01_t01_lib.dart';
-
-String get topLevelGetter {
-  return "Original";
-}
-
-augment String get topLevelGetter {
-  return "Augment1: $augmented";
-}
-
-class C {
-  static String get staticGetter {
-    return "Original";
-  }
-  String get instanceGetter {
-    return "Original";
-  }
-}
-
-augment class C {
-  augment static String get staticGetter {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment1: $augmented";
-  }
-}
-
-mixin M {
-  static String get staticGetter {
-    return "Original";
-  }
-  String get instanceGetter {
-    return "Original";
-  }
-}
-
-augment mixin M {
-  augment static String get staticGetter {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment1: $augmented";
-  }
-}
-
-enum E {
-  e0;
-  static String get staticGetter {
-    return "Original";
-  }
-  String get instanceGetter {
-    return "Original";
-  }
-}
-
-augment enum E {
-  augment e0;
-  augment static String get staticGetter {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment1: $augmented";
-  }
-}
-
-class A {}
-
-extension Ext on A {
-  static String get staticGetter {
-    return "Original";
-  }
-  String get instanceGetter {
-    return "Original";
-  }
-}
-
-augment extension Ext {
-  augment static String get staticGetter {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment1: $augmented";
-  }
-}
-
-extension type ET(int _) {
-  static String get staticGetter {
-    return "Original";
-  }
-  String get instanceGetter {
-    return "Original";
-  }
-}
-
-augment extension type ET {
-  augment static String get staticGetter {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment1: $augmented";
-  }
-}
-
-class MA = Object with M;
-
-main() {
-  Expect.equals("Augment2: Augment1: Original", topLevelGetter);
-  Expect.equals("Augment2: Augment1: Original", C.staticGetter);
-  Expect.equals("Augment2: Augment1: Original", C().instanceGetter);
-  Expect.equals("Augment2: Augment1: Original", M.staticGetter);
-  Expect.equals("Augment2: Augment1: Original", MA().instanceGetter);
-  Expect.equals("Augment2: Augment1: Original", E.staticGetter);
-  Expect.equals("Augment2: Augment1: Original", E.e0.instanceGetter);
-  Expect.equals("Augment2: Augment1: Original", Ext.staticGetter);
-  Expect.equals("Augment2: Augment1: Original", A().instanceGetter);
-  Expect.equals("Augment2: Augment1: Original", ET.staticGetter);
-  Expect.equals("Augment2: Augment1: Original", ET(0).instanceGetter);
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A01_t01_lib.dart b/LanguageFeatures/Augmentations/augmenting_getters_A01_t01_lib.dart
deleted file mode 100644
index 18de90d..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A01_t01_lib.dart
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion Augmenting with a getter: An augmenting getter can augment a
-/// getter declaration, or the implicit getter of a variable declaration, with
-/// all prior augmentations applied, by replacing the body of the augmented
-/// getter with the body of the augmenting getter. Inside the augmenting
-/// getter’s body, an `augmented` expression executes the augmented getter’s
-/// body.
-///
-/// @description Checks that an augmenting getter can augment a getter
-/// declaration with all prior augmentations applied.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-part of 'augmenting_getters_A01_t01.dart';
-
-augment String get topLevelGetter {
-  return "Augment2: $augmented";
-}
-
-augment class C {
-  augment static String get staticGetter {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment2: $augmented";
-  }
-}
-
-augment mixin M {
-  augment static String get staticGetter {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment2: $augmented";
-  }
-}
-
-augment enum E {
-  augment e0;
-  augment static String get staticGetter {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment2: $augmented";
-  }
-}
-
-augment extension Ext {
-  augment static String get staticGetter {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment2: $augmented";
-  }
-}
-
-augment extension type ET {
-  augment static String get staticGetter {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceGetter {
-    return "Augment2: $augmented";
-  }
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A01_t02.dart b/LanguageFeatures/Augmentations/augmenting_getters_A01_t02.dart
deleted file mode 100644
index c67c516..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A01_t02.dart
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion Augmenting with a getter: An augmenting getter can augment a
-/// getter declaration, or the implicit getter of a variable declaration, with
-/// all prior augmentations applied, by replacing the body of the augmented
-/// getter with the body of the augmenting getter. Inside the augmenting
-/// getter’s body, an `augmented` expression executes the augmented getter’s
-/// body.
-///
-/// @description Checks that an augmenting getter can augment a variable
-/// declaration with all prior augmentations applied.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-import '../../Utils/expect.dart';
-part 'augmenting_getters_A01_t02_lib.dart';
-
-String topLevelVariable = "Original";
-
-augment String get topLevelVariable {
-  return "Augment1: $augmented";
-}
-
-class C {
-  static String staticVariable = "Original";
-  String instanceVariable = "Original";
-}
-
-augment class C {
-  augment static String get staticVariable {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceVariable {
-    return "Augment1: $augmented";
-  }
-}
-
-mixin M {
-  static String staticVariable = "Original";
-  String instanceVariable = "Original";
-}
-
-augment mixin M {
-  augment static String get staticVariable {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceVariable {
-    return "Augment1: $augmented";
-  }
-}
-
-enum E {
-  e0;
-  static String staticVariable = "Original";
-  final String instanceVariable = "Original";
-}
-
-augment enum E {
-  augment e0;
-  augment static String get staticVariable {
-    return "Augment1: $augmented";
-  }
-  augment String get instanceVariable {
-    return "Augment1: $augmented";
-  }
-}
-
-class A {}
-
-extension Ext on A {
-  static String staticVariable = "Original";
-}
-
-augment extension Ext {
-  augment static String get staticVariable {
-    return "Augment1: $augmented";
-  }
-}
-
-extension type ET(String _) {
-  static String staticVariable = "Original";
-}
-
-augment extension type ET {
-  augment static String get staticVariable {
-    return "Augment1: $augmented";
-  }
-}
-
-class MA = Object with M;
-
-main() {
-  Expect.equals("Augment2: Augment1: Original", topLevelVariable);
-  Expect.equals("Augment2: Augment1: Original", C.staticVariable);
-  Expect.equals("Augment2: Augment1: Original", C().instanceVariable);
-  Expect.equals("Augment2: Augment1: Original", M.staticVariable);
-  Expect.equals("Augment2: Augment1: Original", MA().instanceVariable);
-  Expect.equals("Augment2: Augment1: Original", E.staticVariable);
-  Expect.equals("Augment2: Augment1: Original", E.e0.instanceVariable);
-  Expect.equals("Augment2: Augment1: Original", Ext.staticVariable);
-  Expect.equals("Augment2: Augment1: Original", ET.staticVariable);
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A01_t02_lib.dart b/LanguageFeatures/Augmentations/augmenting_getters_A01_t02_lib.dart
deleted file mode 100644
index 6452a1f..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A01_t02_lib.dart
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion Augmenting with a getter: An augmenting getter can augment a
-/// getter declaration, or the implicit getter of a variable declaration, with
-/// all prior augmentations applied, by replacing the body of the augmented
-/// getter with the body of the augmenting getter. Inside the augmenting
-/// getter’s body, an `augmented` expression executes the augmented getter’s
-/// body.
-///
-/// @description Checks that an augmenting getter can augment a getter
-/// declaration with all prior augmentations applied.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-part of 'augmenting_getters_A01_t02.dart';
-
-augment String get topLevelVariable {
-  return "Augment2: $augmented";
-}
-
-augment class C {
-  augment static String get staticVariable {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceVariable {
-    return "Augment2: $augmented";
-  }
-}
-
-augment mixin M {
-  augment static String get staticVariable {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceVariable {
-    return "Augment2: $augmented";
-  }
-}
-
-augment enum E {
-  augment e0;
-  augment static String get staticVariable {
-    return "Augment2: $augmented";
-  }
-  augment String get instanceVariable {
-    return "Augment2: $augmented";
-  }
-}
-
-augment extension Ext {
-  augment static String get staticVariable {
-    return "Augment2: $augmented";
-  }
-}
-
-augment extension type ET {
-  augment static String get staticVariable {
-    return "Augment2: $augmented";
-  }
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A02_t01.dart b/LanguageFeatures/Augmentations/augmenting_getters_A02_t01.dart
deleted file mode 100644
index 502f5cd..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A02_t01.dart
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion An augmenting getter declaration may have an empty body (`;`) in
-/// order to only augment the metadata or doc comments of the getter. In this
-/// case the body of the augmented getter is not altered.
-///
-/// @description Checks that if an augmenting getter has no body then the body
-/// of the augmented getter is not altered.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-import '../../Utils/expect.dart';
-part 'augmenting_getters_A02_t01_lib.dart';
-
-String get topLevelGetter => "Original";
-
-class C {
-  static String get staticGetter => "Original";
-  String get instanceGetter => "Original";
-}
-
-mixin M {
-  static String get staticGetter => "Original";
-  String get instanceGetter => "Original";
-}
-
-enum E {
-  e0;
-  static String get staticGetter => "Original";
-  String get instanceGetter => "Original";
-}
-
-class A {}
-
-extension Ext on A {
-  static String get staticGetter => "Original";
-  String get instanceGetter => "Original";
-}
-
-extension type ET(int _) {
-  static String get staticGetter => "Original";
-  String get instanceGetter => "Original";
-}
-
-class MA = Object with M;
-
-main() {
-  Expect.equals("Original", topLevelGetter);
-  Expect.equals("Original", C.staticGetter);
-  Expect.equals("Original", C().instanceGetter);
-  Expect.equals("Original", M.staticGetter);
-  Expect.equals("Original", MA().instanceGetter);
-  Expect.equals("Original", E.staticGetter);
-  Expect.equals("Original", E.e0.instanceGetter);
-  Expect.equals("Original", Ext.staticGetter);
-  Expect.equals("Original", A().instanceGetter);
-  Expect.equals("Original", ET.staticGetter);
-  Expect.equals("Original", ET(0).instanceGetter);
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A02_t01_lib.dart b/LanguageFeatures/Augmentations/augmenting_getters_A02_t01_lib.dart
deleted file mode 100644
index a854885..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A02_t01_lib.dart
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion An augmenting getter declaration may have an empty body (`;`) in
-/// order to only augment the metadata or doc comments of the getter. In this
-/// case the body of the augmented getter is not altered.
-///
-/// @description Checks that if an augmenting getter has no body then the body
-/// of the augmented getter is not altered.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-part of 'augmenting_getters_A02_t01.dart';
-
-augment String get topLevelGetter;
-
-augment class C {
-  augment static String get staticGetter;
-  augment String get instanceGetter;
-}
-
-augment mixin M {
-  augment static String get staticGetter;
-  augment String get instanceGetter;
-}
-
-augment enum E {
-  augment e0;
-  augment static String get staticGetter;
-  augment String get instanceGetter;
-}
-
-augment extension Ext {
-  augment static String get staticGetter;
-  augment String get instanceGetter;
-}
-
-augment extension type ET {
-  augment static String get staticGetter;
-  augment String get instanceGetter;
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A03_t01.dart b/LanguageFeatures/Augmentations/augmenting_getters_A03_t01.dart
deleted file mode 100644
index 907c79b..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A03_t01.dart
+++ /dev/null
@@ -1,51 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion Synthetic getters cannot be augmented with metadata or doc
-/// comments.
-///
-/// @description Checks that it is a compile-time error to augment a variable by
-/// an augmenting getter with an empty body.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-part 'augmenting_getters_A03_t01_lib.dart';
-
-String topLevelVariable = "Original";
-
-class C {
-  static String staticVariable = "Original";
-  String instanceVariable = "Original";
-}
-
-mixin M {
-  static String staticVariable = "Original";
-  String instanceVariable = "Original";
-}
-
-enum E {
-  e0;
-  static String staticVariable = "Original";
-  final String instanceVariable = "Original";
-}
-
-class A {}
-
-extension Ext on A {
-  static String staticVariable = "Original";
-}
-
-extension type ET(String _) {
-  static String staticVariable = "Original";
-}
-
-main() {
-  print(topLevelVariable);
-  print(C);
-  print(M);
-  print(E);
-  print(A);
-  print(ET);
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_getters_A03_t01_lib.dart b/LanguageFeatures/Augmentations/augmenting_getters_A03_t01_lib.dart
deleted file mode 100644
index b2de9ff..0000000
--- a/LanguageFeatures/Augmentations/augmenting_getters_A03_t01_lib.dart
+++ /dev/null
@@ -1,67 +0,0 @@
-// Copyright (c) 2024, the Dart project authors.  Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-/// @assertion Synthetic getters cannot be augmented with metadata or doc
-/// comments.
-///
-/// @description Checks that it is a compile-time error to augment a variable by
-/// an augmenting getter with an empty body.
-/// @author [email protected]
-
-// SharedOptions=--enable-experiment=macros
-
-part of 'augmenting_getters_A03_t01.dart';
-
-augment String get topLevelVariable;
-//                 ^^^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-
-augment class C {
-  augment static String get staticVariable;
-//                          ^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-  augment String get instanceVariable;
-//                   ^^^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-}
-
-augment mixin M {
-  augment static String get staticVariable;
-//                          ^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-  augment String get instanceVariable;
-//                   ^^^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-}
-
-augment enum E {
-  augment e0;
-  augment static String get staticVariable;
-//                          ^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-  augment String get instanceVariable;
-//                   ^^^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-}
-
-augment extension Ext {
-  augment static String get staticVariable;
-//                          ^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-}
-
-augment extension type ET {
-  augment static String get staticVariable;
-//                          ^^^^^^^^^^^^^^
-// [analyzer] unspecified
-// [cfe] unspecified
-}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t01.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t01.dart
new file mode 100644
index 0000000..76584f6
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t01.dart
@@ -0,0 +1,99 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion For purposes of augmentation, a variable declaration is treated
+/// as implicitly defining a getter whose return type is the type of the
+/// variable. If the variable is not final, or is late without an initializer,
+/// then the variable declaration also implicitly defines a setter with a
+/// parameter named `_` whose type is the type of the variable.
+///
+/// If the variable is abstract, then the getter and setter are incomplete,
+/// otherwise they are complete. For non-abstract variables, the compiler
+/// synthesizes a getter that accesses the backing storage and a setter that
+/// updates it, so these members have bodies.
+///
+/// A getter can be augmented by another getter, and likewise a setter can be
+/// augmented by a setter. This is true whether the getter or setter is
+/// explicitly declared or implicitly declared using a variable declaration.
+///
+/// @description Checks that an incomplete getter may be augmented by a complete
+/// augmenting getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+import '../../Utils/expect.dart';
+
+String get topLevelGetter;
+augment String get topLevelGetter => "x";
+
+class C {
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment class C {
+  augment static String get staticGetter => "x";
+  augment String get instanceGetter => "x";
+}
+
+mixin M {
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment mixin M {
+  augment static String get staticGetter => "x";
+  augment String get instanceGetter => "x";
+}
+
+enum E {
+  e0;
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment enum E {
+  ;
+  augment static String get staticGetter => "x";
+  augment String get instanceGetter => "x";
+}
+
+class A {}
+
+extension Ext on A {
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment extension Ext {
+  augment static String get staticGetter => "x";
+  augment String get instanceGetter => "x";
+}
+
+extension type ET(int _) {
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment extension type ET {
+  augment static String get staticGetter => "x";
+  augment String get instanceGetter => "x";
+}
+
+class MA = Object with M;
+
+main() {
+  Expect.equals("x", topLevelGetter);
+  Expect.equals("x", C.staticGetter);
+  Expect.equals("x", C().instanceGetter);
+  Expect.equals("x", M.staticGetter);
+  Expect.equals("x", MA().instanceGetter);
+  Expect.equals("x", E.staticGetter);
+  Expect.equals("x", E.e0.instanceGetter);
+  Expect.equals("x", Ext.staticGetter);
+  Expect.equals("x", A().instanceGetter);
+  Expect.equals("x", ET.staticGetter);
+  Expect.equals("x", ET(0).instanceGetter);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t02.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t02.dart
new file mode 100644
index 0000000..5d1243d
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t02.dart
@@ -0,0 +1,93 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion For purposes of augmentation, a variable declaration is treated
+/// as implicitly defining a getter whose return type is the type of the
+/// variable. If the variable is not final, or is late without an initializer,
+/// then the variable declaration also implicitly defines a setter with a
+/// parameter named `_` whose type is the type of the variable.
+///
+/// If the variable is abstract, then the getter and setter are incomplete,
+/// otherwise they are complete. For non-abstract variables, the compiler
+/// synthesizes a getter that accesses the backing storage and a setter that
+/// updates it, so these members have bodies.
+///
+/// A getter can be augmented by another getter, and likewise a setter can be
+/// augmented by a setter. This is true whether the getter or setter is
+/// explicitly declared or implicitly declared using a variable declaration.
+///
+/// @description Checks that an incomplete getter may be made complete by an
+/// implicitly defined augmenting getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+import '../../Utils/expect.dart';
+
+String get topLevelGetter;
+augment final String topLevelGetter = "x";
+
+class C {
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment class C {
+  augment static String staticGetter = "x";
+  augment final instanceGetter = "x";
+}
+
+mixin M {
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment mixin M {
+  augment static final String staticGetter = "x";
+  augment instanceGetter = "x";
+}
+
+enum E {
+  e0;
+  static String get staticGetter;
+  String get instanceGetter;
+}
+
+augment enum E {
+  ;
+  augment static final String staticGetter = "x";
+  augment final instanceGetter = "x";
+}
+
+class A {}
+
+extension Ext on A {
+  static String get staticGetter;
+}
+
+augment extension Ext {
+  augment static final String staticGetter = "x";
+}
+
+extension type ET(int _) {
+  static String get staticGetter;
+}
+
+augment extension type ET {
+  augment static final String staticGetter = "x";
+}
+
+class MA = Object with M;
+
+main() {
+  Expect.equals("x", topLevelGetter);
+  Expect.equals("x", C.staticGetter);
+  Expect.equals("x", C().instanceGetter);
+  Expect.equals("x", M.staticGetter);
+  Expect.equals("x", MA().instanceGetter);
+  Expect.equals("x", E.staticGetter);
+  Expect.equals("x", E.e0.instanceGetter);
+  Expect.equals("x", Ext.staticGetter);
+  Expect.equals("x", ET.staticGetter);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t03.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t03.dart
new file mode 100644
index 0000000..a503e06
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t03.dart
@@ -0,0 +1,93 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion For purposes of augmentation, a variable declaration is treated
+/// as implicitly defining a getter whose return type is the type of the
+/// variable. If the variable is not final, or is late without an initializer,
+/// then the variable declaration also implicitly defines a setter with a
+/// parameter named `_` whose type is the type of the variable.
+///
+/// If the variable is abstract, then the getter and setter are incomplete,
+/// otherwise they are complete. For non-abstract variables, the compiler
+/// synthesizes a getter that accesses the backing storage and a setter that
+/// updates it, so these members have bodies.
+///
+/// A getter can be augmented by another getter, and likewise a setter can be
+/// augmented by a setter. This is true whether the getter or setter is
+/// explicitly declared or implicitly declared using a variable declaration.
+///
+/// @description Checks that a non-abstract variable may be augmented by an
+/// augmenting getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+import '../../Utils/expect.dart';
+
+String topLevelVariable = "x";
+augment String get topLevelVariable;
+
+class C {
+  static String staticVariable = "x";
+  final String instanceVariable = "x";
+}
+
+augment class C {
+  augment static String get staticVariable;
+  augment String get instanceVariable;
+}
+
+mixin M {
+  static final String staticVariable = "x";
+  String instanceVariable = "x";
+}
+
+augment mixin M {
+  augment static String get staticVariable;
+  augment String get instanceVariable;
+}
+
+enum E {
+  e0;
+  static String staticVariable = "x";
+  final String instanceVariable = "x";
+}
+
+augment enum E {
+  ;
+  augment static String get staticVariable;
+  augment String get instanceVariable;
+}
+
+class A {}
+
+extension Ext on A {
+  static String staticVariable = "x";
+}
+
+augment extension Ext {
+  augment static String get staticVariable;
+}
+
+extension type ET(int _) {
+  static String staticVariable = "x";
+}
+
+augment extension type ET {
+  augment static String get staticVariable;
+}
+
+class MA = Object with M;
+
+main() {
+  Expect.equals("x", topLevelVariable);
+  Expect.equals("x", C.staticVariable);
+  Expect.equals("x", C().instanceVariable);
+  Expect.equals("x", M.staticVariable);
+  Expect.equals("x", MA().instanceVariable);
+  Expect.equals("x", E.staticVariable);
+  Expect.equals("x", E.e0.instanceVariable);
+  Expect.equals("x", Ext.staticVariable);
+  Expect.equals("x", ET.staticVariable);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t04.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t04.dart
new file mode 100644
index 0000000..267fad1
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t04.dart
@@ -0,0 +1,68 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion For purposes of augmentation, a variable declaration is treated
+/// as implicitly defining a getter whose return type is the type of the
+/// variable. If the variable is not final, or is late without an initializer,
+/// then the variable declaration also implicitly defines a setter with a
+/// parameter named `_` whose type is the type of the variable.
+///
+/// If the variable is abstract, then the getter and setter are incomplete,
+/// otherwise they are complete. For non-abstract variables, the compiler
+/// synthesizes a getter that accesses the backing storage and a setter that
+/// updates it, so these members have bodies.
+///
+/// A getter can be augmented by another getter, and likewise a setter can be
+/// augmented by a setter. This is true whether the getter or setter is
+/// explicitly declared or implicitly declared using a variable declaration.
+///
+/// @description Checks that a getter may be augmented by an implicitly defined
+/// augmenting getter (abstract variable).
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+import '../../Utils/expect.dart';
+
+String get topLevelGetter => "x";
+augment abstract String topLevelGetter;
+
+class C {
+  String get instanceGetter => "x";
+  augment abstract String instanceGetter;
+}
+
+mixin M {
+  String get instanceGetter => "x";
+  augment abstract String instanceGetter;
+}
+
+enum E {
+  e0;
+  String get instanceGetter => "x";
+  augment abstract String instanceGetter;
+}
+
+class A {}
+
+extension Ext on A {
+  String get instanceGetter => "x";
+  augment abstract String instanceGetter;
+}
+
+extension type ET(int _) {
+  String get instanceGetter => "x";
+  augment abstract String instanceGetter;
+}
+
+class MA = Object with M;
+
+main() {
+  Expect.equals("x", topLevelGetter);
+  Expect.equals("x", C().instanceGetter);
+  Expect.equals("x", MA().instanceGetter);
+  Expect.equals("x", E.e0.instanceGetter);
+  Expect.equals("x", A().instanceGetter);
+  Expect.equals("x", ET(0).instanceGetter);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t05.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t05.dart
new file mode 100644
index 0000000..bdd908c
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t05.dart
@@ -0,0 +1,68 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion For purposes of augmentation, a variable declaration is treated
+/// as implicitly defining a getter whose return type is the type of the
+/// variable. If the variable is not final, or is late without an initializer,
+/// then the variable declaration also implicitly defines a setter with a
+/// parameter named `_` whose type is the type of the variable.
+///
+/// If the variable is abstract, then the getter and setter are incomplete,
+/// otherwise they are complete. For non-abstract variables, the compiler
+/// synthesizes a getter that accesses the backing storage and a setter that
+/// updates it, so these members have bodies.
+///
+/// A getter can be augmented by another getter, and likewise a setter can be
+/// augmented by a setter. This is true whether the getter or setter is
+/// explicitly declared or implicitly declared using a variable declaration.
+///
+/// @description Checks that an incomplete implicit getter (abstract variable)
+/// may be augmented by an augmenting getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+import '../../Utils/expect.dart';
+
+abstract String topLevelVariable;
+augment String get topLevelVariable => "x";
+
+class C {
+  abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+mixin M {
+  abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+enum E {
+  e0;
+  abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+class A {}
+
+extension Ext on A {
+  abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+extension type ET(int _) {
+  abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+class MA = Object with M;
+
+main() {
+  Expect.equals("x", topLevelVariable);
+  Expect.equals("x", C().instanceVariable);
+  Expect.equals("x", MA().instanceVariable);
+  Expect.equals("x", E.e0.instanceVariable);
+  Expect.equals("x", A().instanceVariable);
+  Expect.equals("x", ET(0).instanceVariable);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t06.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t06.dart
new file mode 100644
index 0000000..755a537
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A01_t06.dart
@@ -0,0 +1,74 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion For purposes of augmentation, a variable declaration is treated
+/// as implicitly defining a getter whose return type is the type of the
+/// variable. If the variable is not final, or is late without an initializer,
+/// then the variable declaration also implicitly defines a setter with a
+/// parameter named `_` whose type is the type of the variable.
+///
+/// If the variable is abstract, then the getter and setter are incomplete,
+/// otherwise they are complete. For non-abstract variables, the compiler
+/// synthesizes a getter that accesses the backing storage and a setter that
+/// updates it, so these members have bodies.
+///
+/// A getter can be augmented by another getter, and likewise a setter can be
+/// augmented by a setter. This is true whether the getter or setter is
+/// explicitly declared or implicitly declared using a variable declaration.
+///
+/// @description Checks that an incomplete implicit getter (abstract variable)
+/// may be augmented by another incomplete implicit getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+import '../../Utils/expect.dart';
+
+abstract String topLevelVariable;
+augment abstract String topLevelVariable;
+augment String get topLevelVariable => "x";
+
+class C {
+  abstract String instanceVariable;
+  augment abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+mixin M {
+  abstract String instanceVariable;
+  augment abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+enum E {
+  e0;
+  abstract String instanceVariable;
+  augment abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+class A {}
+
+extension Ext on A {
+  abstract String instanceVariable;
+  augment abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+extension type ET(int _) {
+  abstract String instanceVariable;
+  augment abstract String instanceVariable;
+  augment String get instanceVariable => "x";
+}
+
+class MA = Object with M;
+
+main() {
+  Expect.equals("x", topLevelVariable);
+  Expect.equals("x", C().instanceVariable);
+  Expect.equals("x", MA().instanceVariable);
+  Expect.equals("x", E.e0.instanceVariable);
+  Expect.equals("x", A().instanceVariable);
+  Expect.equals("x", ET(0).instanceVariable);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t01.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t01.dart
new file mode 100644
index 0000000..cfd25bf
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t01.dart
@@ -0,0 +1,188 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion We say that an augmenting function or constructor's signature
+/// matches if:
+/// - It has the same number of type parameters with the same type parameter
+///   names (same identifiers) and bounds (after type annotation inheritance),
+///   if any (same types, even if they may not be written exactly the same in
+///   case one of the declarations needs to refer to a type using an import
+///   prefix).
+/// - The return type (if not omitted) is the same as the augmented
+///   declaration's return type.
+/// - It has the same number of positional and optional parameters as the
+///   augmented declaration.
+/// - It has the same set of named parameter names as the augmented declaration.
+/// - For all corresponding pairs of parameters:
+///   - They have the same type (if not omitted in the augmenting declaration).
+///   - They have the same `required` and `covariant` modifiers.
+/// - For all positional parameters:
+///   - The augmenting function's parameter name is `_`, or
+///   - The augmenting function's parameter name is the same as the name of the
+///     corresponding positional parameter in every preceding declaration that
+///     doesn't have `_` as its name.
+/// ...
+/// It's a compile-time error if:
+/// - The signature of the augmenting getter or setter does not match the
+///   signature of the augmented getter or setter.
+///
+/// @description Checks that it is a compile-time error if the return type of an
+/// augmentation doesn't exactly match the original getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+num get topLevelGetter1 => 42;
+augment int get topLevelGetter1;
+//      ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+num get topLevelGetter2 => 42;
+augment Object get topLevelGetter2;
+//      ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+class C {
+  static num get staticGetter1 => 42;
+  augment int get staticGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num get staticGetter2 => 42;
+  augment Object get topLevelGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter1 => 42;
+  augment int get instanceGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter2 => 42;
+  augment Object get instanceGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M {
+  static num get staticGetter1 => 42;
+  augment int get staticGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num get staticGetter2 => 42;
+  augment Object get topLevelGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter1 => 42;
+  augment int get instanceGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter2 => 42;
+  augment Object get instanceGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E {
+  e0;
+  static num get staticGetter1 => 42;
+  augment int get staticGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num get staticGetter2 => 42;
+  augment Object get topLevelGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter1 => 42;
+  augment int get instanceGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter2 => 42;
+  augment Object get instanceGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class A {}
+
+extension Ext on A {
+  static num get staticGetter1 => 42;
+  augment int get staticGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num get staticGetter2 => 42;
+  augment Object get topLevelGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+
+  num get instanceGetter1 => 42;
+  augment int get instanceGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter2 => 42;
+  augment Object get instanceGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+extension type ET(int _) {
+  static num get staticGetter1 => 42;
+  augment int get staticGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num get staticGetter2 => 42;
+  augment Object get topLevelGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter1 => 42;
+  augment int get instanceGetter1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num get instanceGetter2 => 42;
+  augment Object get instanceGetter2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(C);
+  print(M);
+  print(E);
+  print(A);
+  print(ET);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t02.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t02.dart
new file mode 100644
index 0000000..99a2cff
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t02.dart
@@ -0,0 +1,163 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion We say that an augmenting function or constructor's signature
+/// matches if:
+/// - It has the same number of type parameters with the same type parameter
+///   names (same identifiers) and bounds (after type annotation inheritance),
+///   if any (same types, even if they may not be written exactly the same in
+///   case one of the declarations needs to refer to a type using an import
+///   prefix).
+/// - The return type (if not omitted) is the same as the augmented
+///   declaration's return type.
+/// - It has the same number of positional and optional parameters as the
+///   augmented declaration.
+/// - It has the same set of named parameter names as the augmented declaration.
+/// - For all corresponding pairs of parameters:
+///   - They have the same type (if not omitted in the augmenting declaration).
+///   - They have the same `required` and `covariant` modifiers.
+/// - For all positional parameters:
+///   - The augmenting function's parameter name is `_`, or
+///   - The augmenting function's parameter name is the same as the name of the
+///     corresponding positional parameter in every preceding declaration that
+///     doesn't have `_` as its name.
+/// ...
+/// It's a compile-time error if:
+/// - The signature of the augmenting getter or setter does not match the
+///   signature of the augmented getter or setter.
+///
+/// @description Checks that it is a compile-time error if the return type of an
+/// augmentation doesn't exactly match the original implicit getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+num topLevelVariable1 = 42;
+augment int get topLevelVariable1;
+//      ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+num get topLevelVariable2 = 42;
+augment Object get topLevelVariable2;
+//      ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+class C {
+  static num staticVariable1 = 42;
+  augment int get staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object get staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable1 = 42;
+  augment int get instanceVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable2 = 42;
+  augment Object get instanceVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M {
+  static num staticVariable1 = 42;
+  augment int get staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object get staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable1 = 42;
+  augment int get instanceVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable2 = 42;
+  augment Object get instanceVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E {
+  e0;
+  static num staticVariable1 = 42;
+  augment int get staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object get staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  final num instanceVariable1 => 42;
+  augment int get instanceVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  final num instanceVariable2 => 42;
+  augment Object get instanceVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class A {}
+
+extension Ext on A {
+  static num staticVariable1 = 42;
+  augment int get staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object get staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+extension type ET(int _) {
+  static num staticVariable1 = 42;
+  augment int get staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object get staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(C);
+  print(M);
+  print(E);
+  print(A);
+  print(ET);
+}
diff --git a/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t03.dart b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t03.dart
new file mode 100644
index 0000000..e34904f
--- /dev/null
+++ b/LanguageFeatures/Augmentations/augmenting_variables_getters_setters_A02_t03.dart
@@ -0,0 +1,163 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion We say that an augmenting function or constructor's signature
+/// matches if:
+/// - It has the same number of type parameters with the same type parameter
+///   names (same identifiers) and bounds (after type annotation inheritance),
+///   if any (same types, even if they may not be written exactly the same in
+///   case one of the declarations needs to refer to a type using an import
+///   prefix).
+/// - The return type (if not omitted) is the same as the augmented
+///   declaration's return type.
+/// - It has the same number of positional and optional parameters as the
+///   augmented declaration.
+/// - It has the same set of named parameter names as the augmented declaration.
+/// - For all corresponding pairs of parameters:
+///   - They have the same type (if not omitted in the augmenting declaration).
+///   - They have the same `required` and `covariant` modifiers.
+/// - For all positional parameters:
+///   - The augmenting function's parameter name is `_`, or
+///   - The augmenting function's parameter name is the same as the name of the
+///     corresponding positional parameter in every preceding declaration that
+///     doesn't have `_` as its name.
+/// ...
+/// It's a compile-time error if:
+/// - The signature of the augmenting getter or setter does not match the
+///   signature of the augmented getter or setter.
+///
+/// @description Checks that it is a compile-time error if the return type of an
+/// augmentation doesn't exactly match the original implicit getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+num topLevelVariable1 = 42;
+augment int topLevelVariable1;
+//      ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+num get topLevelVariable2 = 42;
+augment Object topLevelVariable2;
+//      ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+class C {
+  static num staticVariable1 = 42;
+  augment int staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable1 = 42;
+  augment int instanceVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable2 = 42;
+  augment Object instanceVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M {
+  static num staticVariable1 = 42;
+  augment int staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable1 = 42;
+  augment int instanceVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  num instanceVariable2 = 42;
+  augment Object instanceVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E {
+  e0;
+  static num staticVariable1 = 42;
+  augment int staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  final num instanceVariable1 => 42;
+  augment int instanceVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  final num instanceVariable2 => 42;
+  augment Object instanceVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class A {}
+
+extension Ext on A {
+  static num staticVariable1 = 42;
+  augment int staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+extension type ET(int _) {
+  static num staticVariable1 = 42;
+  augment int staticVariable1;
+//        ^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  static num staticVariable2 = 42;
+  augment Object staticVariable2;
+//        ^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  print(C);
+  print(M);
+  print(E);
+  print(A);
+  print(ET);
+}
diff --git a/LanguageFeatures/Augmentations/complete_declarations_A04_t01.dart b/LanguageFeatures/Augmentations/complete_declarations_A04_t01.dart
new file mode 100644
index 0000000..7b5f887
--- /dev/null
+++ b/LanguageFeatures/Augmentations/complete_declarations_A04_t01.dart
@@ -0,0 +1,122 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion More precisely, a function or constructor declaration
+/// (introductory or augmenting) is incomplete if all of:
+/// - It has no body. That means no `{ ... }` or `=> ...;` but only `;`.
+/// - The function is not marked external. An external function is considered to
+///   have a body, just not one that is visible as Dart code.
+/// - There is no redirection, initializer list, initializing formals, field
+///   parameters, or super parameters. Obviously, this only applies to
+///   constructor declarations.
+///
+/// If a declaration is not incomplete then it is complete.
+///
+/// It's a compile-time error if an augmentation is complete and any declaration
+/// before it in the augmentation chain is also complete.
+///
+/// @description Checks that it is a compile-time error to add a body to an
+/// already complete getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+String get topLevelGetter => "x";
+augment String get topLevelGetter => "y";
+//                                ^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+class C {
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment class C {
+  augment static String get staticGetter => "y";
+//                                       ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceGetter => "y";
+//                                  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M {
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment mixin M {
+  augment static String get staticGetter => "y";
+//                                       ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceGetter => "y";
+//                                  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E {
+  e0;
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment enum E {
+  ;
+  augment static String get staticGetter => "y";
+//                                       ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceGetter => "y";
+//                                  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class A {}
+
+extension Ext on A {
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment extension Ext {
+  augment static String get staticGetter => "y";
+//                                       ^
+// [analyzer] unspecified
+// [cfe] unspecified
+augment String get instanceGetter => "y";
+//                                  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+extension type ET(int _) {
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment extension type ET {
+  augment static String get staticGetter => "y";
+//                                       ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceGetter => "y";
+//                                  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  topLevelGetter;
+  print(C);
+  print(M);
+  print(E);
+  print(A);
+  print(ET);
+}
diff --git a/LanguageFeatures/Augmentations/complete_declarations_A04_t02.dart b/LanguageFeatures/Augmentations/complete_declarations_A04_t02.dart
new file mode 100644
index 0000000..4bff877
--- /dev/null
+++ b/LanguageFeatures/Augmentations/complete_declarations_A04_t02.dart
@@ -0,0 +1,122 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion More precisely, a function or constructor declaration
+/// (introductory or augmenting) is incomplete if all of:
+/// - It has no body. That means no `{ ... }` or `=> ...;` but only `;`.
+/// - The function is not marked external. An external function is considered to
+///   have a body, just not one that is visible as Dart code.
+/// - There is no redirection, initializer list, initializing formals, field
+///   parameters, or super parameters. Obviously, this only applies to
+///   constructor declarations.
+///
+/// If a declaration is not incomplete then it is complete.
+///
+/// It's a compile-time error if an augmentation is complete and any declaration
+/// before it in the augmentation chain is also complete.
+///
+/// @description Checks that it is a compile-time error to augment an already
+/// complete implicit getter by another complete getter.
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+String topLevelVariable = "x";
+augment String get topLevelVariable => "y";
+//                                  ^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+class C {
+  static String staticVariable = "x";
+  String instanceVariable = "x";
+}
+
+augment class C {
+  augment static String get staticVariable => "y";
+//                                         ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceVariable => "y";
+//                                    ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M {
+  static String staticVariable = "x";
+  String instanceVariable = "x";
+}
+
+augment mixin M {
+  augment static String get staticVariable => "y";
+//                                         ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceVariable => "y";
+//                                    ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E {
+  e0;
+  static String staticVariable = "x";
+  String instanceVariable = "x";
+}
+
+augment enum E {
+  ;
+  augment static String get staticVariable => "y";
+//                                         ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceVariable => "y";
+//                                    ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class A {}
+
+extension Ext on A {
+  static String staticVariable = "x";
+  String instanceVariable = "x";
+}
+
+augment extension Ext {
+  augment static String get staticVariable => "y";
+//                                         ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceVariable => "y";
+//                                    ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+extension type ET(int _) {
+  static String staticVariable = "x";
+  String instanceVariable = "x";
+}
+
+augment extension type ET {
+  augment static String get staticVariable => "y";
+//                                         ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String get instanceVariable => "y";
+//                                    ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  topLevelGetter;
+  print(C);
+  print(M);
+  print(E);
+  print(A);
+  print(ET);
+}
diff --git a/LanguageFeatures/Augmentations/complete_declarations_A04_t03.dart b/LanguageFeatures/Augmentations/complete_declarations_A04_t03.dart
new file mode 100644
index 0000000..d01979f
--- /dev/null
+++ b/LanguageFeatures/Augmentations/complete_declarations_A04_t03.dart
@@ -0,0 +1,112 @@
+// Copyright (c) 2025, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// @assertion More precisely, a function or constructor declaration
+/// (introductory or augmenting) is incomplete if all of:
+/// - It has no body. That means no `{ ... }` or `=> ...;` but only `;`.
+/// - The function is not marked external. An external function is considered to
+///   have a body, just not one that is visible as Dart code.
+/// - There is no redirection, initializer list, initializing formals, field
+///   parameters, or super parameters. Obviously, this only applies to
+///   constructor declarations.
+///
+/// If a declaration is not incomplete then it is complete.
+///
+/// It's a compile-time error if an augmentation is complete and any declaration
+/// before it in the augmentation chain is also complete.
+///
+/// @description Checks that it is a compile-time error to augment an already
+/// complete getter by another complete implicit getter (instance variable).
+/// @author [email protected]
+
+// SharedOptions=--enable-experiment=augmentations
+
+String get topLevelGetter => "x";
+augment String topLevelGetter = "y";
+//                            ^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+class C {
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment class C {
+  augment static String staticGetter = "y";
+//                                   ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String instanceGetter = "y";
+//                              ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+mixin M {
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment mixin M {
+  augment static String staticGetter = "y";
+//                                   ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String instanceGetter = "y";
+//                              ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+enum E {
+  e0;
+  static String get staticGetter => "x";
+  String get instanceGetter => "x";
+}
+
+augment enum E {
+  ;
+  augment static String staticGetter = "y";
+//                                   ^
+// [analyzer] unspecified
+// [cfe] unspecified
+  augment String instanceGetter = "y";
+//                              ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+class A {}
+
+extension Ext on A {
+  static String get staticGetter => "x";
+}
+
+augment extension Ext {
+  augment static String staticGetter = "y";
+//                                   ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+extension type ET(int _) {
+  static String get staticGetter => "x";
+}
+
+augment extension type ET {
+  augment static String staticGetter = "y";
+//                                   ^
+// [analyzer] unspecified
+// [cfe] unspecified
+}
+
+main() {
+  topLevelGetter;
+  print(C);
+  print(M);
+  print(E);
+  print(A);
+  print(ET);
+}