diff --git a/src/filesystem/Filesystem.php b/src/filesystem/Filesystem.php
--- a/src/filesystem/Filesystem.php
+++ b/src/filesystem/Filesystem.php
@@ -1091,7 +1091,7 @@
    * the configured `$PATH`.
    *
    * @param   string  $binary Binary name, like `'git'` or `'svn'`.
-   * @return  string  The full binary path if it is present, or null.
+   * @return  string|null  The full binary path if it is present, or null.
    * @task    exec
    */
   public static function resolveBinary($binary) {
diff --git a/src/future/http/BaseHTTPFuture.php b/src/future/http/BaseHTTPFuture.php
--- a/src/future/http/BaseHTTPFuture.php
+++ b/src/future/http/BaseHTTPFuture.php
@@ -425,7 +425,7 @@
    *
    * @param list $headers List of headers from `resolve()`.
    * @param string $search Case insensitive header name.
-   * @return string Value of the header or null if not found.
+   * @return string|null Value of the header or null if not found.
    * @task resolve
    */
   public static function getHeader(array $headers, $search) {
diff --git a/src/lint/ArcanistLintMessage.php b/src/lint/ArcanistLintMessage.php
--- a/src/lint/ArcanistLintMessage.php
+++ b/src/lint/ArcanistLintMessage.php
@@ -274,7 +274,7 @@
    *
    * @param mixed $value Integer or digit string.
    * @param mixed $caller
-   * @return int Integer.
+   * @return int|null Integer, or null if $value is null
    */
   private function validateInteger($value, $caller) {
     if ($value === null) {
diff --git a/src/parser/ArcanistDiffParser.php b/src/parser/ArcanistDiffParser.php
--- a/src/parser/ArcanistDiffParser.php
+++ b/src/parser/ArcanistDiffParser.php
@@ -1330,7 +1330,7 @@
    * recovered by later rename detection codepaths.
    *
    * @param string $paths Text from a diff line after "diff --git ".
-   * @return string Filename being altered, or null for a rename.
+   * @return string|null Filename being altered, or null for a rename.
    */
   public static function extractGitCommonFilename($paths) {
     $matches = null;
diff --git a/src/unit/ArcanistUnitTestResult.php b/src/unit/ArcanistUnitTestResult.php
--- a/src/unit/ArcanistUnitTestResult.php
+++ b/src/unit/ArcanistUnitTestResult.php
@@ -133,7 +133,8 @@
    * Merge several coverage reports into a comprehensive coverage report.
    *
    * @param list $coverage List of coverage report strings.
-   * @return string Cumulative coverage report.
+   * @return string|null Cumulative coverage report, or null if $coverage is
+   *   null.
    */
   public static function mergeCoverage(array $coverage) {
     if (empty($coverage)) {
diff --git a/src/unit/engine/CSharpToolsTestEngine.php b/src/unit/engine/CSharpToolsTestEngine.php
--- a/src/unit/engine/CSharpToolsTestEngine.php
+++ b/src/unit/engine/CSharpToolsTestEngine.php
@@ -162,7 +162,7 @@
    * so we cache it in case it's requested again.
    *
    * @param  string  $cover_file The name of the coverage file.
-   * @return array   Code coverage results, or null if not cached.
+   * @return array|null   Code coverage results, or null if not cached.
    */
   private function getCachedResultsIfPossible($cover_file) {
     if ($this->cachedResults == null) {
diff --git a/src/unit/engine/XUnitTestEngine.php b/src/unit/engine/XUnitTestEngine.php
--- a/src/unit/engine/XUnitTestEngine.php
+++ b/src/unit/engine/XUnitTestEngine.php
@@ -397,7 +397,7 @@
    *
    * @param  string  $coverage The name of the coverage file if one was
    *                 provided by `buildTestFuture`.
-   * @return array   Code coverage results, or null.
+   * @return array|null   Code coverage results, or null.
    */
   protected function parseCoverageResult($coverage) {
     return null;
diff --git a/src/utils/PhutilRope.php b/src/utils/PhutilRope.php
--- a/src/utils/PhutilRope.php
+++ b/src/utils/PhutilRope.php
@@ -55,7 +55,7 @@
   /**
    * Get an arbitrary, nonempty prefix of the rope.
    *
-   * @return string Some rope prefix.
+   * @return string|null Some rope prefix.
    */
   public function getAnyPrefix() {
     $result = reset($this->buffers);
diff --git a/src/utils/viewutils.php b/src/utils/viewutils.php
--- a/src/utils/viewutils.php
+++ b/src/utils/viewutils.php
@@ -89,7 +89,7 @@
  * Parse a human-readable byte description (like "6MB") into an integer.
  *
  * @param string  $input Human-readable description.
- * @return int    Number of represented bytes.
+ * @return int|null  Number of represented bytes.
  */
 function phutil_parse_bytes($input) {
   $bytes = trim($input);