Hide elements that are DeprecationLevel.HIDDEN

Test: several methods in integration tests are now correctly hidden. Adds a test.
Change-Id: I453450419e1fcb4f7a1d6bba717a2b0dff002168
diff --git a/src/main/java/com/google/devsite/DevsitePlugin.kt b/src/main/java/com/google/devsite/DevsitePlugin.kt
index e770288..0208b52 100644
--- a/src/main/java/com/google/devsite/DevsitePlugin.kt
+++ b/src/main/java/com/google/devsite/DevsitePlugin.kt
@@ -41,7 +41,7 @@
 
     val hideFilter by extending {
         dokkaBase.preMergeDocumentableTransformer providing {
-            HideTagDocumentableFilter(it)
+            HideTagAndHiddenDeprecationDocumentableFilter(it)
         } order { before(dokkaBase.emptyPackagesFilter) }
     }
 
diff --git a/src/main/java/com/google/devsite/HideTagDocumentableFilter.kt b/src/main/java/com/google/devsite/HideTagAndHiddenDeprecationDocumentableFilter.kt
similarity index 66%
rename from src/main/java/com/google/devsite/HideTagDocumentableFilter.kt
rename to src/main/java/com/google/devsite/HideTagAndHiddenDeprecationDocumentableFilter.kt
index d05e5fc..36a216b 100644
--- a/src/main/java/com/google/devsite/HideTagDocumentableFilter.kt
+++ b/src/main/java/com/google/devsite/HideTagAndHiddenDeprecationDocumentableFilter.kt
@@ -16,17 +16,26 @@
 
 package com.google.devsite
 
+import com.google.devsite.renderer.converters.annotations
+import com.google.devsite.renderer.converters.fullName
+import com.google.devsite.renderer.converters.isDeprecated
 import org.jetbrains.dokka.base.transformers.documentables.SuppressedByConditionDocumentableFilterTransformer
 import org.jetbrains.dokka.model.Documentable
+import org.jetbrains.dokka.model.EnumValue
 import org.jetbrains.dokka.model.dfs
 import org.jetbrains.dokka.model.doc.CustomTagWrapper
+import org.jetbrains.dokka.model.properties.WithExtraProperties
 import org.jetbrains.dokka.plugability.DokkaContext
 
-class HideTagDocumentableFilter(dokkaContext: DokkaContext) :
+class HideTagAndHiddenDeprecationDocumentableFilter(dokkaContext: DokkaContext) :
     SuppressedByConditionDocumentableFilterTransformer(dokkaContext) {
     override fun shouldBeSuppressed(d: Documentable): Boolean =
         d.documentation.any {
             (_, docs) ->
             docs.dfs { it is CustomTagWrapper && it.name.trim() == "hide" } != null
-        }
+        } ||
+            ((d as? WithExtraProperties<*>)?.annotations() ?: emptyList()).any {
+                it.isDeprecated() && ((it.params["level"] as? EnumValue)?.enumDri?.fullName ?: "")
+                    .contains("DeprecationLevel.HIDDEN")
+            }
 }
diff --git a/src/test/java/com/google/devsite/renderer/converters/ClasslikeDocumentableConverterTest.kt b/src/test/java/com/google/devsite/renderer/converters/ClasslikeDocumentableConverterTest.kt
index e585c0f..d0064b4 100644
--- a/src/test/java/com/google/devsite/renderer/converters/ClasslikeDocumentableConverterTest.kt
+++ b/src/test/java/com/google/devsite/renderer/converters/ClasslikeDocumentableConverterTest.kt
@@ -235,6 +235,32 @@
     }
 
     @Test
+    fun `Function summary component hides DeprecationLevel HIDDEN`() {
+        val module = """
+            |import kotlin.DeprecationLevel.HIDDEN
+            |
+            |class Visible {
+            |   public val visible = "v"
+            |   @Deprecated("No show!", level = HIDDEN)
+            |   public val invisible = "i"
+            |
+            |   public fun show() = 7
+            |   @Deprecated("No show!", level = HIDDEN)
+            |   public fun noShow() = 5
+            |}
+            |
+            |@Deprecated("No show!", level = HIDDEN)
+            |class Nope
+        """.render()
+
+        assertThat(module.packages.single().classlikes.map { it.name }).containsExactly("Visible")
+        val visible = module.page("Visible").content<Classlike>()
+
+        assertThat(visible.methodSummaryItems().map { it.name() }).containsExactly("show")
+        assertThat(visible.propertySummaryItems().map { it.name() }).containsExactly("visible")
+    }
+
+    @Test
     fun `Public constructor does not have @NonNull in 4x Kotlin and Java`() {
         val constructorsK = """
         |class Foo {
diff --git a/testData/collections-ktx/docs/reference/androidx/collection/LongSparseArrayKt.html b/testData/collections-ktx/docs/reference/androidx/collection/LongSparseArrayKt.html
index 8123817..d649398 100644
--- a/testData/collections-ktx/docs/reference/androidx/collection/LongSparseArrayKt.html
+++ b/testData/collections-ktx/docs/reference/androidx/collection/LongSparseArrayKt.html
@@ -87,13 +87,6 @@
             </td>
           </tr>
           <tr>
-            <td width="40%"><code>static&nbsp;final boolean</code></td>
-            <td>
-              <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/LongSparseArrayKt.html">LongSparseArrayKt</a>.<span><del><a href="/reference/androidx/collection/LongSparseArrayKt.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">remove</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</code></div>
-              <p><strong>This method is deprecated.</strong> Replaced with member function.</p>
-            </td>
-          </tr>
-          <tr>
             <td width="40%"><code>static&nbsp;final void</code></td>
             <td>
               <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/LongSparseArrayKt.html">LongSparseArrayKt</a>.<a href="/reference/androidx/collection/LongSparseArrayKt.html#(androidx.collection.LongSparseArray).set(kotlin.Long,kotlin.Any)">set</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</code></div>
@@ -152,12 +145,6 @@
       <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/LongSparseArrayKt.html">LongSparseArrayKt</a>.<a href="/reference/androidx/collection/LongSparseArrayKt.html#(androidx.collection.LongSparseArray).plus(androidx.collection.LongSparseArray)">plus</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;other<br>)</pre>
       <p>Creates a new collection by adding or replacing entries from <code><a href="/reference/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).plus(androidx.collection.LongSparseArray)">other</a></code>.</p>
     </div>
-    <div><a name="(androidx.collection.LongSparseArray).remove(kotlin.Long, kotlin.Any)"></a><a name="-androidx.collection.LongSparseArray-.remove-kotlin.Long-kotlin.Any-"></a><a name="remove"></a>
-      <h3 class="api-name" id="(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">LongSparseArrayKt.remove</h3>
-      <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;boolean&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/LongSparseArrayKt.html">LongSparseArrayKt</a>.<span><del><a href="/reference/androidx/collection/LongSparseArrayKt.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">remove</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</pre>
-      <aside class="caution"><strong>This method is deprecated.</strong><br>Replaced with member function. Remove extension import!</aside>
-      <p>Removes the entry for <code><a href="/reference/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">key</a></code> only if it is mapped to <code><a href="/reference/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">value</a></code>.</p>
-    </div>
     <div><a name="(androidx.collection.LongSparseArray).set(kotlin.Long, kotlin.Any)"></a><a name="-androidx.collection.LongSparseArray-.set-kotlin.Long-kotlin.Any-"></a><a name="set"></a>
       <h3 class="api-name" id="(androidx.collection.LongSparseArray).set(kotlin.Long,kotlin.Any)">LongSparseArrayKt.set</h3>
       <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/LongSparseArrayKt.html">LongSparseArrayKt</a>.<a href="/reference/androidx/collection/LongSparseArrayKt.html#(androidx.collection.LongSparseArray).set(kotlin.Long,kotlin.Any)">set</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;long&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</pre>
diff --git a/testData/collections-ktx/docs/reference/androidx/collection/SparseArrayKt.html b/testData/collections-ktx/docs/reference/androidx/collection/SparseArrayKt.html
index 4320115..7870604 100644
--- a/testData/collections-ktx/docs/reference/androidx/collection/SparseArrayKt.html
+++ b/testData/collections-ktx/docs/reference/androidx/collection/SparseArrayKt.html
@@ -87,13 +87,6 @@
             </td>
           </tr>
           <tr>
-            <td width="40%"><code>static&nbsp;final boolean</code></td>
-            <td>
-              <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/SparseArrayKt.html">SparseArrayKt</a>.<span><del><a href="/reference/androidx/collection/SparseArrayKt.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">remove</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</code></div>
-              <p><strong>This method is deprecated.</strong> Replaced with member function.</p>
-            </td>
-          </tr>
-          <tr>
             <td width="40%"><code>static&nbsp;final void</code></td>
             <td>
               <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/SparseArrayKt.html">SparseArrayKt</a>.<a href="/reference/androidx/collection/SparseArrayKt.html#(androidx.collection.SparseArrayCompat).set(kotlin.Int,kotlin.Any)">set</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</code></div>
@@ -152,12 +145,6 @@
       <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/SparseArrayKt.html">SparseArrayKt</a>.<a href="/reference/androidx/collection/SparseArrayKt.html#(androidx.collection.SparseArrayCompat).plus(androidx.collection.SparseArrayCompat)">plus</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;other<br>)</pre>
       <p>Creates a new collection by adding or replacing entries from <code><a href="/reference/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).plus(androidx.collection.SparseArrayCompat)">other</a></code>.</p>
     </div>
-    <div><a name="(androidx.collection.SparseArrayCompat).remove(kotlin.Int, kotlin.Any)"></a><a name="-androidx.collection.SparseArrayCompat-.remove-kotlin.Int-kotlin.Any-"></a><a name="remove"></a>
-      <h3 class="api-name" id="(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">SparseArrayKt.remove</h3>
-      <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;boolean&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/SparseArrayKt.html">SparseArrayKt</a>.<span><del><a href="/reference/androidx/collection/SparseArrayKt.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">remove</a></del></span>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</pre>
-      <aside class="caution"><strong>This method is deprecated.</strong><br>Replaced with member function. Remove extension import!</aside>
-      <p>Removes the entry for <code><a href="/reference/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">key</a></code> only if it is mapped to <code><a href="/reference/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">value</a></code>.</p>
-    </div>
     <div><a name="(androidx.collection.SparseArrayCompat).set(kotlin.Int, kotlin.Any)"></a><a name="-androidx.collection.SparseArrayCompat-.set-kotlin.Int-kotlin.Any-"></a><a name="set"></a>
       <h3 class="api-name" id="(androidx.collection.SparseArrayCompat).set(kotlin.Int,kotlin.Any)">SparseArrayKt.set</h3>
       <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;void&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/collection/SparseArrayKt.html">SparseArrayKt</a>.<a href="/reference/androidx/collection/SparseArrayKt.html#(androidx.collection.SparseArrayCompat).set(kotlin.Int,kotlin.Any)">set</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;key,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&nbsp;value<br>)</pre>
diff --git a/testData/collections-ktx/docs/reference/kotlin/androidx/collection/package-summary.html b/testData/collections-ktx/docs/reference/kotlin/androidx/collection/package-summary.html
index b6e2b31..49b1949 100644
--- a/testData/collections-ktx/docs/reference/kotlin/androidx/collection/package-summary.html
+++ b/testData/collections-ktx/docs/reference/kotlin/androidx/collection/package-summary.html
@@ -178,20 +178,6 @@
             </td>
           </tr>
           <tr>
-            <td width="40%"><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
-            <td>
-              <div><code>&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;T&gt;.<span><del><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">remove</a></del></span>(key:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html">Long</a>,&nbsp;value:&nbsp;T)</code></div>
-              <p><strong>This function is deprecated.</strong> Replaced with member function.</p>
-            </td>
-          </tr>
-          <tr>
-            <td width="40%"><code><a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></code></td>
-            <td>
-              <div><code>&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;T&gt;.<span><del><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">remove</a></del></span>(key:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>,&nbsp;value:&nbsp;T)</code></div>
-              <p><strong>This function is deprecated.</strong> Replaced with member function.</p>
-            </td>
-          </tr>
-          <tr>
             <td width="40%"><code>inline&nbsp;operator <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></code></td>
             <td>
               <div><code>&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;T&gt;.<a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).set(kotlin.Long,kotlin.Any)">set</a>(key:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html">Long</a>,&nbsp;value:&nbsp;T)</code></div>
@@ -399,18 +385,6 @@
       <pre class="api-signature no-pretty-print">operator&nbsp;fun&nbsp;&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;T&gt;.<a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).plus(androidx.collection.SparseArrayCompat)">plus</a>(other:&nbsp;<a href="/reference/kotlin/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;T&gt;):&nbsp;<a href="/reference/kotlin/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;T&gt;</pre>
       <p>Creates a new collection by adding or replacing entries from <code><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).plus(androidx.collection.SparseArrayCompat)">other</a></code>.</p>
     </div>
-    <div><a name="(androidx.collection.LongSparseArray).remove(kotlin.Long, kotlin.Any)"></a><a name="-androidx.collection.LongSparseArray-.remove-kotlin.Long-kotlin.Any-"></a><a name="remove"></a>
-      <h3 class="api-name" id="(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">remove</h3>
-      <pre class="api-signature no-pretty-print">fun&nbsp;&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;T&gt;.<span><del><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">remove</a></del></span>(key:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html">Long</a>,&nbsp;value:&nbsp;T):&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></pre>
-      <aside class="caution"><strong>This function is deprecated.</strong><br>Replaced with member function. Remove extension import!</aside>
-      <p>Removes the entry for <code><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">key</a></code> only if it is mapped to <code><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).remove(kotlin.Long,kotlin.Any)">value</a></code>.</p>
-    </div>
-    <div><a name="(androidx.collection.SparseArrayCompat).remove(kotlin.Int, kotlin.Any)"></a><a name="-androidx.collection.SparseArrayCompat-.remove-kotlin.Int-kotlin.Any-"></a><a name="remove"></a>
-      <h3 class="api-name" id="(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">remove</h3>
-      <pre class="api-signature no-pretty-print">fun&nbsp;&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/SparseArrayCompat.html">SparseArrayCompat</a>&lt;T&gt;.<span><del><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">remove</a></del></span>(key:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html">Int</a>,&nbsp;value:&nbsp;T):&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html">Boolean</a></pre>
-      <aside class="caution"><strong>This function is deprecated.</strong><br>Replaced with member function. Remove extension import!</aside>
-      <p>Removes the entry for <code><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">key</a></code> only if it is mapped to <code><a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.SparseArrayCompat).remove(kotlin.Int,kotlin.Any)">value</a></code>.</p>
-    </div>
     <div><a name="(androidx.collection.LongSparseArray).set(kotlin.Long, kotlin.Any)"></a><a name="-androidx.collection.LongSparseArray-.set-kotlin.Long-kotlin.Any-"></a><a name="set"></a>
       <h3 class="api-name" id="(androidx.collection.LongSparseArray).set(kotlin.Long,kotlin.Any)">set</h3>
       <pre class="api-signature no-pretty-print">inline&nbsp;operator&nbsp;fun&nbsp;&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/collection/LongSparseArray.html">LongSparseArray</a>&lt;T&gt;.<a href="/reference/kotlin/androidx/collection/package-summary.html#(androidx.collection.LongSparseArray).set(kotlin.Long,kotlin.Any)">set</a>(key:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html">Long</a>,&nbsp;value:&nbsp;T):&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a></pre>
diff --git a/testData/compose/docs/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html b/testData/compose/docs/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html
index 2a879db..d16fe40 100644
--- a/testData/compose/docs/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html
+++ b/testData/compose/docs/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html
@@ -25,13 +25,6 @@
               <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html#rememberSplineBasedDecay()">rememberSplineBasedDecay</a>()</code></div>
             </td>
           </tr>
-          <tr>
-            <td width="40%"><code>static&nbsp;final @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;</code></td>
-            <td>
-              <div><code>&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <span><del><a href="/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html#splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</a></del></span>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/ui/unit/Density.html">Density</a>&nbsp;density)</code></div>
-              <p><strong>This method is deprecated.</strong> Moved to common code</p>
-            </td>
-          </tr>
         </tbody>
       </table>
     </div>
@@ -40,28 +33,5 @@
       <h3 class="api-name" id="rememberSplineBasedDecay()">rememberSplineBasedDecay</h3>
       <pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/Composable.html">Composable</a><br>public&nbsp;static&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html#rememberSplineBasedDecay()">rememberSplineBasedDecay</a>()</pre>
     </div>
-    <div><a name="splineBasedDecay-androidx.compose.ui.unit.Density-"></a><a name="splinebaseddecay"></a>
-      <h3 class="api-name" id="splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</h3>
-      <pre class="api-signature no-pretty-print">public&nbsp;static&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;&lt;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <span><del><a href="/reference/androidx/compose/animation/SplineBasedFloatDecayAnimationSpecKt.html#splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</a></del></span>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/ui/unit/Density.html">Density</a>&nbsp;density)</pre>
-      <aside class="caution"><strong>This method is deprecated.</strong><br>Moved to common code</aside>
-      <p>Creates a <code><a href="/reference/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a></code> using the native Android fling decay. This can then be used to animate any type <code><a href="/reference/androidx/compose/animation/package-summary.html#splineBasedDecayDeprecated(androidx.compose.ui.unit.Density)">T</a></code>.</p>
-      <div class="devsite-table-wrapper">
-        <table class="responsive">
-          <thead>
-            <tr>
-              <th colspan="2">Parameters</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr>
-              <td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/ui/unit/Density.html">Density</a>&nbsp;density</code></td>
-              <td>
-                <p>density of the display</p>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-    </div>
   </body>
 </html>
diff --git a/testData/compose/docs/reference/kotlin/androidx/compose/animation/package-summary.html b/testData/compose/docs/reference/kotlin/androidx/compose/animation/package-summary.html
index d6a7d07..7920c8f 100644
--- a/testData/compose/docs/reference/kotlin/androidx/compose/animation/package-summary.html
+++ b/testData/compose/docs/reference/kotlin/androidx/compose/animation/package-summary.html
@@ -282,13 +282,6 @@
               <div><code>&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/compose/animation/package-summary.html#splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</a>(density:&nbsp;<a href="/reference/kotlin/androidx/compose/ui/unit/Density.html">Density</a>)</code></div>
             </td>
           </tr>
-          <tr>
-            <td width="40%"><code><a href="/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;T&gt;</code></td>
-            <td>
-              <div><code>&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <span><del><a href="/reference/kotlin/androidx/compose/animation/package-summary.html#splineBasedDecayDeprecated(androidx.compose.ui.unit.Density)">splineBasedDecayDeprecated</a></del></span>(density:&nbsp;<a href="/reference/kotlin/androidx/compose/ui/unit/Density.html">Density</a>)</code></div>
-              <p><strong>This function is deprecated.</strong> Moved to common code</p>
-            </td>
-          </tr>
         </tbody>
       </table>
     </div>
@@ -2038,29 +2031,6 @@
       <h3 class="api-name" id="splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</h3>
       <pre class="api-signature no-pretty-print">fun&nbsp;&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <a href="/reference/kotlin/androidx/compose/animation/package-summary.html#splineBasedDecay(androidx.compose.ui.unit.Density)">splineBasedDecay</a>(density:&nbsp;<a href="/reference/kotlin/androidx/compose/ui/unit/Density.html">Density</a>):&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;T&gt;</pre>
     </div>
-    <div><a name="splineBasedDecayDeprecated-androidx.compose.ui.unit.Density-"></a><a name="splinebaseddecaydeprecated"></a>
-      <h3 class="api-name" id="splineBasedDecayDeprecated(androidx.compose.ui.unit.Density)">splineBasedDecayDeprecated</h3>
-      <pre class="api-signature no-pretty-print">fun&nbsp;&lt;T&nbsp;:&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html">Any</a>?&gt; <span><del><a href="/reference/kotlin/androidx/compose/animation/package-summary.html#splineBasedDecayDeprecated(androidx.compose.ui.unit.Density)">splineBasedDecayDeprecated</a></del></span>(density:&nbsp;<a href="/reference/kotlin/androidx/compose/ui/unit/Density.html">Density</a>):&nbsp;<a href="/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a>&lt;T&gt;</pre>
-      <aside class="caution"><strong>This function is deprecated.</strong><br>Moved to common code</aside>
-      <p>Creates a <code><a href="/reference/kotlin/androidx/compose/animation/core/DecayAnimationSpec.html">DecayAnimationSpec</a></code> using the native Android fling decay. This can then be used to animate any type <code><a href="/reference/kotlin/androidx/compose/animation/package-summary.html#splineBasedDecayDeprecated(androidx.compose.ui.unit.Density)">T</a></code>.</p>
-      <div class="devsite-table-wrapper">
-        <table class="responsive">
-          <thead>
-            <tr>
-              <th colspan="2">Parameters</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr>
-              <td width="40%"><code>density:&nbsp;<a href="/reference/kotlin/androidx/compose/ui/unit/Density.html">Density</a></code></td>
-              <td>
-                <p>density of the display</p>
-              </td>
-            </tr>
-          </tbody>
-        </table>
-      </div>
-    </div>
     <h2>Extension functions</h2>
     <div><a name="(androidx.compose.animation.core.Transition).AnimatedContent(androidx.compose.ui.Modifier, kotlin.Function1, androidx.compose.ui.Alignment, kotlin.Function2)"></a><a name="-androidx.compose.animation.core.Transition-.AnimatedContent-androidx.compose.ui.Modifier-kotlin.Function1-androidx.compose.ui.Alignment-kotlin.Function2-"></a><a name="animatedcontent"></a>
       <h3 class="api-name" id="(androidx.compose.animation.core.Transition).AnimatedContent(androidx.compose.ui.Modifier,kotlin.Function1,androidx.compose.ui.Alignment,kotlin.Function2)">AnimatedContent</h3>