Version 2.17.0-52.0.dev

Merge commit '50db7c5e67f5ec801542476a746534ac8bdfa16e' into 'dev'
diff --git a/sdk/lib/math/random.dart b/sdk/lib/math/random.dart
index fd75e12..35fdd14 100644
--- a/sdk/lib/math/random.dart
+++ b/sdk/lib/math/random.dart
@@ -10,6 +10,24 @@
 /// not suitable for cryptographic purposes.
 ///
 /// Use the [Random.secure]() constructor for cryptographic purposes.
+///
+/// To create a non-negative random integer uniformly distributed in the range
+/// from 0, inclusive, to max, exclusive, use [nextInt(int max)].
+/// ```dart
+/// var intValue = Random().nextInt(10); // Value is >= 0 and < 10.
+/// intValue = Random().nextInt(100) + 50; // Value is >= 50 and < 150.
+/// ```
+/// To create a non-negative random floating point value uniformly distributed
+/// in the range from 0.0, inclusive, to 1.0, exclusive, use [nextDouble].
+/// ```dart
+/// var doubleValue = Random().nextDouble(); // Value is >= 0.0 and < 1.0.
+/// doubleValue = Random().nextDouble() * 256; // Value is >= 0.0 and < 256.0.
+/// ```
+/// To create a random Boolean value, use [nextBool].
+/// ```dart
+/// var boolValue = Random().nextBool(); // true or false, with equal chance.
+/// ```
+///
 abstract class Random {
   /// Creates a random number generator.
   ///
@@ -29,12 +47,29 @@
   ///
   /// Implementation note: The default implementation supports [max] values
   /// between 1 and (1<<32) inclusive.
+  ///
+  /// Example:
+  /// ```dart
+  /// var intValue = Random().nextInt(10); // Value is >= 0 and < 10.
+  /// intValue = Random().nextInt(100) + 50; // Value is >= 50 and < 150.
+  /// ```
   int nextInt(int max);
 
   /// Generates a non-negative random floating point value uniformly distributed
   /// in the range from 0.0, inclusive, to 1.0, exclusive.
+  ///
+  /// Example:
+  /// ```dart
+  /// var doubleValue = Random().nextDouble(); // Value is >= 0.0 and < 1.0.
+  /// doubleValue = Random().nextDouble() * 256; // Value is >= 0.0 and < 256.0.
+  /// ```
   double nextDouble();
 
   /// Generates a random boolean value.
+  ///
+  /// Example:
+  /// ```dart
+  /// var boolValue = Random().nextBool(); // true or false, with equal chance.
+  /// ```
   bool nextBool();
 }
diff --git a/tools/VERSION b/tools/VERSION
index f4bb13a..237ad2c 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
 MAJOR 2
 MINOR 17
 PATCH 0
-PRERELEASE 51
+PRERELEASE 52
 PRERELEASE_PATCH 0
\ No newline at end of file
diff --git a/tools/verify_docs/bin/verify_docs.dart b/tools/verify_docs/bin/verify_docs.dart
index 8cba35f..ebe1ce7 100755
--- a/tools/verify_docs/bin/verify_docs.dart
+++ b/tools/verify_docs/bin/verify_docs.dart
@@ -270,8 +270,8 @@
         template = 'none';
       } else if (hasTopDeclaration) {
         template = 'top';
-      } else if (lines.length == 1 && !lines.first.trim().endsWith(';')) {
-        // If single line with no trailing `;`, assume expression.
+      } else if (lines.length == 1 && !lines.first.contains(';')) {
+        // If single line with no `;`, assume expression.
         template = 'expression';
       } else {
         // Otherwise default to `main`.