diff --git a/dev/bots/prepare_package.dart b/dev/bots/prepare_package.dart
index ec7f52f..34464a9 100644
--- a/dev/bots/prepare_package.dart
+++ b/dev/bots/prepare_package.dart
@@ -569,7 +569,7 @@
 ///
 /// Archives contain the executables and customizations for the platform that
 /// they are created on.
-Future<void> main(List<String> argList) async {
+Future<void> main(List<String> rawArguments) async {
   final ArgParser argParser = ArgParser();
   argParser.addOption(
     'temp_dir',
@@ -612,9 +612,9 @@
     help: 'Print help for this command.',
   );
 
-  final ArgResults args = argParser.parse(argList);
+  final ArgResults parsedArguments = argParser.parse(rawArguments);
 
-  if (args['help']) {
+  if (parsedArguments['help']) {
     print(argParser.usage);
     exit(0);
   }
@@ -625,7 +625,7 @@
     exit(exitCode);
   }
 
-  final String revision = args['revision'];
+  final String revision = parsedArguments['revision'];
   if (revision.isEmpty) {
     errorExit('Invalid argument: --revision must be specified.');
   }
@@ -633,40 +633,40 @@
     errorExit('Invalid argument: --revision must be the entire hash, not just a prefix.');
   }
 
-  if (args['branch'].isEmpty) {
+  if (parsedArguments['branch'].isEmpty) {
     errorExit('Invalid argument: --branch must be specified.');
   }
 
   Directory tempDir;
   bool removeTempDir = false;
-  if (args['temp_dir'] == null || args['temp_dir'].isEmpty) {
+  if (parsedArguments['temp_dir'] == null || parsedArguments['temp_dir'].isEmpty) {
     tempDir = Directory.systemTemp.createTempSync('flutter_package.');
     removeTempDir = true;
   } else {
-    tempDir = Directory(args['temp_dir']);
+    tempDir = Directory(parsedArguments['temp_dir']);
     if (!tempDir.existsSync()) {
-      errorExit("Temporary directory ${args['temp_dir']} doesn't exist.");
+      errorExit("Temporary directory ${parsedArguments['temp_dir']} doesn't exist.");
     }
   }
 
   Directory outputDir;
-  if (args['output'] == null) {
+  if (parsedArguments['output'] == null) {
     outputDir = tempDir;
   } else {
-    outputDir = Directory(args['output']);
+    outputDir = Directory(parsedArguments['output']);
     if (!outputDir.existsSync()) {
       outputDir.createSync(recursive: true);
     }
   }
 
-  final Branch branch = fromBranchName(args['branch']);
+  final Branch branch = fromBranchName(parsedArguments['branch']);
   final ArchiveCreator creator = ArchiveCreator(tempDir, outputDir, revision, branch);
   int exitCode = 0;
   String message;
   try {
     final String version = await creator.initializeRepo();
     final File outputFile = await creator.createArchive();
-    if (args['publish']) {
+    if (parsedArguments['publish']) {
       final ArchivePublisher publisher = ArchivePublisher(
         tempDir,
         revision,
diff --git a/packages/flutter/lib/src/material/app_bar.dart b/packages/flutter/lib/src/material/app_bar.dart
index b3883ae..f535d11 100644
--- a/packages/flutter/lib/src/material/app_bar.dart
+++ b/packages/flutter/lib/src/material/app_bar.dart
@@ -168,6 +168,36 @@
   /// widget with an [IconButton] that opens the drawer (using [Icons.menu]). If
   /// there's no [Drawer] and the parent [Navigator] can go back, the [AppBar]
   /// will use a [BackButton] that calls [Navigator.maybePop].
+  ///
+  /// ## Sample code
+  ///
+  /// The following code shows how the drawer button could be manually specified
+  /// instead of relying on [automaticallyImplyLeading]:
+  ///
+  /// ```dart
+  /// AppBar(
+  ///   leading: Builder(
+  ///     builder: (BuildContext context) {
+  ///       return IconButton(
+  ///         icon: const Icon(Icons.menu),
+  ///         onPressed: () { Scaffold.of(context).openDrawer(); },
+  ///         tooltip: MaterialLocalizations.of(context).openAppDrawerTooltip,
+  ///       );
+  ///     },
+  ///   ),
+  /// )
+  /// ```
+  ///
+  /// The [Builder] is used in this example to ensure that the `context` refers
+  /// to that part of the subtree. That way this code snippet can be used even
+  /// inside the very code that is creating the [Scaffold] (in which case,
+  /// without the [Builder], the `context` wouldn't be able to see the
+  /// [Scaffold], since it would refer to an ancestor of that widget).
+  ///
+  /// See also:
+  ///
+  ///  * [Scaffold.appBar], in which an [AppBar] is usually placed.
+  ///  * [Scaffold.drawer], in which the [Drawer] is usually placed.
   final Widget leading;
 
   /// Controls whether we should try to imply the leading widget if null.
diff --git a/packages/flutter/lib/src/widgets/scroll_view.dart b/packages/flutter/lib/src/widgets/scroll_view.dart
index 85a7260..4225732 100644
--- a/packages/flutter/lib/src/widgets/scroll_view.dart
+++ b/packages/flutter/lib/src/widgets/scroll_view.dart
@@ -355,14 +355,14 @@
 /// generated semantics of each scrollable item with a semantic index. This can
 /// be done by wrapping the child widgets in an [IndexedSemantics].
 ///
-/// This semantic index is not necesarily the same as the index of the widget
-/// in the scrollable, because some widgets may not contribute semantic
-/// information. Consider a [new ListView.separated()], every other widget is a
+/// This semantic index is not necesarily the same as the index of the widget in
+/// the scrollable, because some widgets may not contribute semantic
+/// information. Consider a [new ListView.separated()]: every other widget is a
 /// divider with no semantic information. In this case, only odd numbered
 /// widgets have a semantic index (equal to the index ~/ 2). Furthermore, the
 /// total number of children in this example would be half the number of
-/// widgets. Note that [new ListView.separated()] handles this automatically
-/// and is only used here as an example.
+/// widgets. (The [new ListView.separated()] constructor handles this
+/// automatically; this is only used here as an example.)
 ///
 /// The total number of visible children can be provided by the constructor
 /// parameter `semanticChildCount`. This should always be the same as the
diff --git a/packages/flutter/test/widgets/fractionally_sized_box_test.dart b/packages/flutter/test/widgets/fractionally_sized_box_test.dart
index 006572e..b0579d7 100644
--- a/packages/flutter/test/widgets/fractionally_sized_box_test.dart
+++ b/packages/flutter/test/widgets/fractionally_sized_box_test.dart
@@ -61,4 +61,30 @@
     expect(box.size, equals(const Size(400.0, 300.0)));
     expect(box.localToGlobal(box.size.center(Offset.zero)), equals(const Offset(0.0 + 400.0 / 2.0, 0.0 + 300.0 / 2.0)));
   });
+
+  testWidgets('OverflowBox alignment with FractionallySizedBox', (WidgetTester tester) async {
+    final GlobalKey inner = GlobalKey();
+    await tester.pumpWidget(Directionality(
+      textDirection: TextDirection.rtl,
+      child: OverflowBox(
+        minWidth: 0.0,
+        maxWidth: 100.0,
+        minHeight: 0.0,
+        maxHeight: 100.0,
+        alignment: const AlignmentDirectional(1.0, -1.0),
+        child: Center(
+          child: FractionallySizedBox(
+            widthFactor: 0.5,
+            heightFactor: 0.25,
+            child: Container(
+              key: inner
+            ),
+          ),
+        ),
+      ),
+    ));
+    final RenderBox box = inner.currentContext.findRenderObject();
+    expect(box.size, equals(const Size(50.0, 25.0)));
+    expect(box.localToGlobal(Offset.zero), equals(const Offset(25.0, 37.5)));
+  });
 }
diff --git a/packages/flutter_tools/test/android/android_studio_test.dart b/packages/flutter_tools/test/android/android_studio_test.dart
index 0272992..20ba39c 100644
--- a/packages/flutter_tools/test/android/android_studio_test.dart
+++ b/packages/flutter_tools/test/android/android_studio_test.dart
@@ -41,7 +41,8 @@
           equals('/home/me/.AndroidStudioWithCheese5.0/config/plugins'));
     }, overrides: <Type, Generator>{
       FileSystem: () => fs,
-      // Note that custom home paths are not supported on macOS nor Windows yet:
+      // Custom home paths are not supported on macOS nor Windows yet,
+      // so we force the platform to fake Linux here.
       Platform: () => linuxPlatform(),
     });
   });
diff --git a/packages/flutter_tools/test/android/android_studio_validator_test.dart b/packages/flutter_tools/test/android/android_studio_validator_test.dart
index 3fe1849..138996e 100644
--- a/packages/flutter_tools/test/android/android_studio_validator_test.dart
+++ b/packages/flutter_tools/test/android/android_studio_validator_test.dart
@@ -23,7 +23,8 @@
       final NoAndroidStudioValidator validator = NoAndroidStudioValidator();
       expect((await validator.validate()).type, equals(ValidationType.notAvailable));
     }, overrides: <Type, Generator>{
-      // Note that custom home paths are not supported on macOS nor Windows yet:
+      // Custom home paths are not supported on macOS nor Windows yet,
+      // so we force the platform to fake Linux here.
       Platform: () => linuxPlatform(),
     });
   });
