diff --git a/dev/manual_tests/lib/actions.dart b/dev/manual_tests/lib/actions.dart
index 07fdc83..63bb4f4 100644
--- a/dev/manual_tests/lib/actions.dart
+++ b/dev/manual_tests/lib/actions.dart
@@ -340,7 +340,7 @@
     return TextButton(
       focusNode: _focusNode,
       style: ButtonStyle(
-        foregroundColor: MaterialStateProperty.all<Color>(Colors.black),
+        foregroundColor: const MaterialStatePropertyAll<Color>(Colors.black),
         overlayColor: MaterialStateProperty.resolveWith<Color>((Set<MaterialState> states) {
           if (states.contains(MaterialState.focused)) {
             return Colors.red;
diff --git a/examples/api/lib/material/switch/switch.1.dart b/examples/api/lib/material/switch/switch.1.dart
index 96dd5f0..2687a0f 100644
--- a/examples/api/lib/material/switch/switch.1.dart
+++ b/examples/api/lib/material/switch/switch.1.dart
@@ -70,7 +70,7 @@
       value: light,
       overlayColor: overlayColor,
       trackColor: trackColor,
-      thumbColor: MaterialStateProperty.all<Color>(Colors.black),
+      thumbColor: const MaterialStatePropertyAll<Color>(Colors.black),
       onChanged: (bool value) {
         // This is called when the user toggles the switch.
         setState(() {
diff --git a/packages/flutter/lib/src/material/button_style_button.dart b/packages/flutter/lib/src/material/button_style_button.dart
index 8bfb967..04bbd1a 100644
--- a/packages/flutter/lib/src/material/button_style_button.dart
+++ b/packages/flutter/lib/src/material/button_style_button.dart
@@ -102,6 +102,8 @@
   final MaterialStatesController? statesController;
 
   /// Typically the button's label.
+  ///
+  /// {@macro flutter.widgets.ProxyWidget.child}
   final Widget? child;
 
   /// Returns a non-null [ButtonStyle] that's based primarily on the [Theme]'s
diff --git a/packages/flutter/test/widgets/platform_menu_bar_test.dart b/packages/flutter/test/widgets/platform_menu_bar_test.dart
index 0a9b9d4..429e116 100644
--- a/packages/flutter/test/widgets/platform_menu_bar_test.dart
+++ b/packages/flutter/test/widgets/platform_menu_bar_test.dart
@@ -103,7 +103,7 @@
                   'children': <Map<String, Object?>>[
                     <String, Object?>{
                       'id': 7,
-                      'label': 'Sub Sub Menu 100',
+                      'label': 'Sub Sub Menu 110',
                       'enabled': true,
                       'shortcutTrigger': 97,
                       'shortcutModifiers': 8,
@@ -111,7 +111,7 @@
                     <String, Object?>{'id': 8, 'isDivider': true},
                     <String, Object?>{
                       'id': 10,
-                      'label': 'Sub Sub Menu 101',
+                      'label': 'Sub Sub Menu 111',
                       'enabled': true,
                       'shortcutTrigger': 98,
                       'shortcutModifiers': 2,
@@ -119,7 +119,7 @@
                     <String, Object?>{'id': 11, 'isDivider': true},
                     <String, Object?>{
                       'id': 12,
-                      'label': 'Sub Sub Menu 102',
+                      'label': 'Sub Sub Menu 112',
                       'enabled': true,
                       'shortcutTrigger': 99,
                       'shortcutModifiers': 4,
@@ -127,7 +127,7 @@
                     <String, Object?>{'id': 13, 'isDivider': true},
                     <String, Object?>{
                       'id': 14,
-                      'label': 'Sub Sub Menu 103',
+                      'label': 'Sub Sub Menu 113',
                       'enabled': true,
                       'shortcutTrigger': 100,
                       'shortcutModifiers': 1,
@@ -248,10 +248,10 @@
 ];
 
 const List<String> subSubMenu10 = <String>[
-  'Sub Sub Menu 100',
-  'Sub Sub Menu 101',
-  'Sub Sub Menu 102',
-  'Sub Sub Menu 103',
+  'Sub Sub Menu 110',
+  'Sub Sub Menu 111',
+  'Sub Sub Menu 112',
+  'Sub Sub Menu 113',
 ];
 
 const List<String> subMenu2 = <String>[
