blob: 5927457f63430812135f2478950072b074a9755c [file] [log] [blame]
<html devsite="true">
<head>
<title>Composer</title>
{% setvar book_path %}/reference/androidx/_book.yaml{% endsetvar %}
{% include "_shared/_reference-head-tags.html" %}
</head>
<body>
<h1>Composer</h1>
<p>
<pre>interface Composer</pre>
</p>
<hr>
<p>Composer is the interface that is targeted by the Compose Kotlin compiler plugin and used by code generation helpers. It is highly recommended that direct calls these be avoided as the runtime assumes that the calls are generated by the compiler and contain only a minimum amount of state validation.</p>
<h2>Summary</h2>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2"><h3>Nested types</h3></th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="/reference/androidx/compose/runtime/Composer.Companion.html">Composer.Companion</a></code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2"><h3>Public fields</h3></th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Applier.html">Applier</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> ?&gt;</code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#applier()">applier</a></code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/-coroutine-context/index.html">CoroutineContext</a></code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#applyCoroutineContext()">applyCoroutineContext</a></code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/ControlledComposition.html">ControlledComposition</a></code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#composition()">composition</a></code></div>
<p>The composition that is used to control this composer.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/tooling/CompositionData.html">CompositionData</a></code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#compositionData()">compositionData</a></code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract int</code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#compoundKeyHash()">compoundKeyHash</a></code></div>
<p>A Compose internal property.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract boolean</code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#defaultsInvalid()">defaultsInvalid</a></code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract boolean</code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#inserting()">inserting</a></code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract <a href="/reference/androidx/compose/runtime/RecomposeScope.html">RecomposeScope</a></code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#recomposeScope()">recomposeScope</a></code></div>
<p>A Compose internal property.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract boolean</code></td>
<td>
<div><code>@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br><a href="/reference/androidx/compose/runtime/Composer.html#skipping()">skipping</a></code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2"><h3>Public methods</h3></th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code>&lt;V&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/compose/runtime/Composer.html#apply(kotlin.Any,kotlin.Function2)">apply</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&nbsp;value,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/CompositionContext.html">CompositionContext</a></code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#buildContext()">buildContext</a>()</code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Any)">changed</a>(<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Boolean)">changed</a>(boolean&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Char)">changed</a>(char&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Byte)">changed</a>(byte&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Short)">changed</a>(short&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Int)">changed</a>(int&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Float)">changed</a>(float&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Long)">changed</a>(long&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>default @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> boolean</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Double)">changed</a>(double&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#collectParameterInformation()">collectParameterInformation</a>()</code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T</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/compose/runtime/Composer.html#consume(androidx.compose.runtime.CompositionLocal)">consume</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;key)</code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> 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/compose/runtime/Composer.html#createNode(kotlin.Function0)">createNode</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;factory)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#disableReusing()">disableReusing</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#enableReusing()">enableReusing</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endDefaults()">endDefaults</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endMovableGroup()">endMovableGroup</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endNode()">endNode</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endProviders()">endProviders</a>()</code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endReplaceableGroup()">endReplaceableGroup</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> <a href="/reference/androidx/compose/runtime/ScopeUpdateScope.html">ScopeUpdateScope</a></code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endRestartGroup()">endRestartGroup</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#endReusableGroup()">endReusableGroup</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Object.html">Object</a></code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">joinKey</a>(<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;left,&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;right)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#recordSideEffect(kotlin.Function0)">recordSideEffect</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;effect)</code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#recordUsed(androidx.compose.runtime.RecomposeScope)">recordUsed</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/RecomposeScope.html">RecomposeScope</a>&nbsp;scope)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> <a href="https://developer.android.com/reference/java/lang/Object.html">Object</a></code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#rememberedValue()">rememberedValue</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#skipCurrentGroup()">skipCurrentGroup</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#skipToGroupEnd()">skipToGroupEnd</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#sourceInformation(kotlin.String)">sourceInformation</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&nbsp;sourceInformation)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#sourceInformationMarkerEnd()">sourceInformationMarkerEnd</a>()</code></div>
<p>A compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#sourceInformationMarkerStart(kotlin.Int,kotlin.String)">sourceInformationMarkerStart</a>(int&nbsp;key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&nbsp;sourceInformation)</code></div>
<p>A compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startDefaults()">startDefaults</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startMovableGroup(kotlin.Int,kotlin.Any)">startMovableGroup</a>(int&nbsp;key,&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;dataKey)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startNode()">startNode</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startProviders(kotlin.Array)">startProviders</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> ProvidedValue[]&nbsp;values)</code></div>
<p>A Compose internal function.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startReplaceableGroup(kotlin.Int)">startReplaceableGroup</a>(int&nbsp;key)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Composer.html">Composer</a></code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startRestartGroup(kotlin.Int)">startRestartGroup</a>(int&nbsp;key)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startReusableGroup(kotlin.Int,kotlin.Any)">startReusableGroup</a>(int&nbsp;key,&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;dataKey)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#startReusableNode()">startReusableNode</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#updateRememberedValue(kotlin.Any)">updateRememberedValue</a>(<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;value)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
<tr>
<td width="40%"><code>abstract @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> void</code></td>
<td>
<div><code><a href="/reference/androidx/compose/runtime/Composer.html#useNode()">useNode</a>()</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2"><h3>Extension functions</h3></th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>default&nbsp;final @<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T</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/compose/runtime/ComposerKt.html">ComposerKt</a>.<a href="/reference/androidx/compose/runtime/package-summary.html#(androidx.compose.runtime.Composer).cache(kotlin.Boolean,kotlin.Function0)">cache</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Composer.html">Composer</a>&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;invalid,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;block<br>)</code></div>
<p>A Compose compiler plugin API.</p>
</td>
</tr>
</tbody>
</table>
</div>
<h2>Public fields</h2>
<div><a name="getApplier()"></a><a name="setApplier()"></a><a name="getApplier--"></a><a name="setApplier--"></a>
<h3 class="api-name" id="applier()">applier</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Applier.html">Applier</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> ?&gt;&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#applier()">applier</a></pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>This is the instance that changes that are calculated by the composer will be played to. During while invoking <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> functions none of the <code><a href="/reference/androidx/compose/runtime/Composer.html#applier()">applier</a></code> methods are called. The changes are made in a batch after the all <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> functions have completed.</p>
</div>
<div><a name="getApplyCoroutineContext()"></a><a name="setApplyCoroutineContext()"></a><a name="getApplyCoroutineContext--"></a><a name="setApplyCoroutineContext--"></a>
<h3 class="api-name" id="applyCoroutineContext()">applyCoroutineContext</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/-coroutine-context/index.html">CoroutineContext</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#applyCoroutineContext()">applyCoroutineContext</a></pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>The coroutine context for the composition. This is used, for example, to implement <code><a href="/reference/androidx/compose/runtime/package-summary.html#LaunchedEffect(kotlin.coroutines.SuspendFunction1)">LaunchedEffect</a></code>. This context is managed by the <code><a href="/reference/androidx/compose/runtime/Recomposer.html">Recomposer</a></code>.</p>
</div>
<div><a name="getComposition()"></a><a name="setComposition()"></a><a name="getComposition--"></a><a name="setComposition--"></a>
<h3 class="api-name" id="composition()">composition</h3>
<pre class="api-signature no-pretty-print">abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/ControlledComposition.html">ControlledComposition</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#composition()">composition</a></pre>
<p>The composition that is used to control this composer.</p>
</div>
<div><a name="getCompositionData()"></a><a name="setCompositionData()"></a><a name="getCompositionData--"></a><a name="setCompositionData--"></a>
<h3 class="api-name" id="compositionData()">compositionData</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/tooling/CompositionData.html">CompositionData</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#compositionData()">compositionData</a></pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>The data stored for the composition. This is used by Compose tools, such as the preview and the inspector, to display or interpret the result of composition.</p>
</div>
<div><a name="getCompoundKeyHash()"></a><a name="setCompoundKeyHash()"></a><a name="getCompoundKeyHash--"></a><a name="setCompoundKeyHash--"></a>
<h3 class="api-name" id="compoundKeyHash()">compoundKeyHash</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;int&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#compoundKeyHash()">compoundKeyHash</a></pre>
<p>A Compose internal property. DO NOT call directly. Use <code><a href="/reference/androidx/compose/runtime/package-summary.html#currentCompositeKeyHash()">currentCompositeKeyHash</a></code> instead.</p>
<p>This a hash value used to coordinate map externally stored state to the composition. For example, this is used by saved instance state to preserve state across activity lifetime boundaries.</p>
<p>This value is not likely to be unique but is not guaranteed unique. There are known cases, such as for loops without a <code><a href="/reference/androidx/compose/runtime/package-summary.html#key(kotlin.Array,kotlin.Function0)">key</a></code>, where the runtime does not have enough information to make the compound key hash unique.</p>
</div>
<div><a name="getDefaultsInvalid()"></a><a name="setDefaultsInvalid()"></a><a name="getDefaultsInvalid--"></a><a name="setDefaultsInvalid--"></a>
<h3 class="api-name" id="defaultsInvalid()">defaultsInvalid</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#defaultsInvalid()">defaultsInvalid</a></pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Reflects whether the default parameter block of a <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function is valid. This is <code>false</code> if a <code><a href="/reference/androidx/compose/runtime/State.html">State</a></code> object read in the <code><a href="/reference/androidx/compose/runtime/Composer.html#startDefaults()">startDefaults</a></code> group was modified since the last time the <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function was run.</p>
</div>
<div><a name="getInserting()"></a><a name="setInserting()"></a><a name="getInserting--"></a><a name="setInserting--"></a>
<h3 class="api-name" id="inserting()">inserting</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#inserting()">inserting</a></pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Reflects that a new part of the composition is being created, that is, the composition will insert new nodes into the resulting tree.</p>
</div>
<div><a name="getRecomposeScope()"></a><a name="setRecomposeScope()"></a><a name="getRecomposeScope--"></a><a name="setRecomposeScope--"></a>
<h3 class="api-name" id="recomposeScope()">recomposeScope</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;<a href="/reference/androidx/compose/runtime/RecomposeScope.html">RecomposeScope</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#recomposeScope()">recomposeScope</a></pre>
<p>A Compose internal property. DO NOT call directly. Use <code><a href="/reference/androidx/compose/runtime/package-summary.html#currentRecomposeScope()">currentRecomposeScope</a></code> instead.</p>
<p>The invalidation current invalidation scope. An new invalidation scope is created whenever <code><a href="/reference/androidx/compose/runtime/Composer.html#startRestartGroup(kotlin.Int)">startRestartGroup</a></code> is called. when this scope's <code><a href="/reference/androidx/compose/runtime/RecomposeScope.html#invalidate()">RecomposeScope.invalidate</a></code> is called then lambda supplied to <code><a href="/reference/androidx/compose/runtime/Composer.html#endRestartGroup()">endRestartGroup</a></code>'s <code><a href="/reference/androidx/compose/runtime/ScopeUpdateScope.html">ScopeUpdateScope</a></code> will be scheduled to be run.</p>
</div>
<div><a name="getSkipping()"></a><a name="setSkipping()"></a><a name="getSkipping--"></a><a name="setSkipping--"></a>
<h3 class="api-name" id="skipping()">skipping</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#skipping()">skipping</a></pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Reflects whether the <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function can skip. Even if a <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function is called with the same parameters it might still need to run because, for example, a new value was provided for a <code><a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a></code> created by <code><a href="/reference/androidx/compose/runtime/package-summary.html#staticCompositionLocalOf(kotlin.Function0)">staticCompositionLocalOf</a></code>.</p>
</div>
<h2>Public methods</h2>
<div><a name="apply(kotlin.Any, kotlin.Function2)"></a><a name="apply-kotlin.Any-kotlin.Function2-"></a><a name="apply"></a>
<h3 class="api-name" id="apply(kotlin.Any,kotlin.Function2)">apply</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;&lt;V&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>,&nbsp;T&nbsp;extends&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&gt; <a href="/reference/androidx/compose/runtime/Composer.html#apply(kotlin.Any,kotlin.Function2)">apply</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V&nbsp;value,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block<br>)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Schedule <code><a href="/reference/androidx/compose/runtime/Composer.html#apply(kotlin.Any,kotlin.Function2)">block</a></code> to called with <code><a href="/reference/androidx/compose/runtime/Composer.html#apply(kotlin.Any,kotlin.Function2)">value</a></code>. This is intended to update the node generated by <code><a href="/reference/androidx/compose/runtime/Composer.html#createNode(kotlin.Function0)">createNode</a></code> to changes discovered by composition.</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> V&nbsp;value</code></td>
<td>
<p>the new value to be set into some property of the node.</p>
</td>
</tr>
<tr>
<td width="40%"><code>@<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-extension-function-type/index.html">ExtensionFunctionType</a> @<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function2&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> V,&nbsp;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;block</code></td>
<td>
<p>the block that sets the some property of the node to <code><a href="/reference/androidx/compose/runtime/Composer.html#apply(kotlin.Any,kotlin.Function2)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="buildContext--"></a><a name="buildcontext"></a>
<h3 class="api-name" id="buildContext()">buildContext</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/CompositionContext.html">CompositionContext</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#buildContext()">buildContext</a>()</pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>Build a composition context that can be used to created a subcomposition. A composition reference is used to communicate information from this composition to the subcompositions such as the all the <code><a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a></code>s provided at the point the reference is created.</p>
</div>
<div><a name="changed-kotlin.Any-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Any)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Any)">changed</a>(<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Any)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</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="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Any)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Boolean-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Boolean)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Boolean)">changed</a>(boolean&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Boolean)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Boolean)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Boolean)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Boolean)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Char-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Char)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Char)">changed</a>(char&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Char)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Char)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Char)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>char&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Char)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Byte-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Byte)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Byte)">changed</a>(byte&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Byte)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Byte)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Byte)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>byte&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Byte)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Short-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Short)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Short)">changed</a>(short&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Short)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Short)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Short)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>short&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Short)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Int-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Int)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Int)">changed</a>(int&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Int)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Int)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Int)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>int&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Int)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Float-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Float)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Float)">changed</a>(float&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Float)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Float)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Float)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>float&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Float)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Long-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Long)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Long)">changed</a>(long&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Long)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Long)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Long)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>long&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Long)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="changed-kotlin.Double-"></a><a name="changed"></a>
<h3 class="api-name" id="changed(kotlin.Double)">changed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;boolean&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Double)">changed</a>(double&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Check <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Double)">value</a></code> is different than the value used in the previous composition. This is used, for example, to check parameter values to determine if they have changed.</p>
<p>This overload is provided to avoid boxing <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Double)">value</a></code> to compare with a potentially boxed version of <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Double)">value</a></code> in the composition state.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>double&nbsp;value</code></td>
<td>
<p>the value to check</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>boolean</code></td>
<td>
<p><code>true</code> if the value if <code><a href="/reference/androidx/compose/runtime/Composer.html#equals(kotlin.Any)">equals</a></code> of the previous value returns <code>false</code> when passed <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Double)">value</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="collectParameterInformation--"></a><a name="collectparameterinformation"></a>
<h3 class="api-name" id="collectParameterInformation()">collectParameterInformation</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#collectParameterInformation()">collectParameterInformation</a>()</pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>Called by the inspector to inform the composer that it should collect additional information about call parameters. By default, only collect parameter information for scopes that are <code><a href="/reference/androidx/compose/runtime/Composer.html#recordUsed(androidx.compose.runtime.RecomposeScope)">recordUsed</a></code> has been called on. If <code><a href="/reference/androidx/compose/runtime/Composer.html#collectParameterInformation()">collectParameterInformation</a></code> is called it will attempt to collect all calls even if the runtime doesn't need them.</p>
<p>WARNING: calling this will result in a significant number of additional allocations that are typically avoided.</p>
</div>
<div><a name="consume-androidx.compose.runtime.CompositionLocal-"></a><a name="consume"></a>
<h3 class="api-name" id="consume(androidx.compose.runtime.CompositionLocal)">consume</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&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/runtime/Composer.html#consume(androidx.compose.runtime.CompositionLocal)">consume</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;key)</pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>Return the <code><a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a></code> value associated with <code><a href="/reference/androidx/compose/runtime/Composer.html#consume(androidx.compose.runtime.CompositionLocal)">key</a></code>. This is the primitive function used to implement <code><a href="/reference/androidx/compose/runtime/CompositionLocal.html#current()">CompositionLocal.current</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/runtime/CompositionLocal.html">CompositionLocal</a>&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;key</code></td>
<td>
<p>the <code><a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a></code> value to be retrieved.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="createNode-kotlin.Function0-"></a><a name="createnode"></a>
<h3 class="api-name" id="createNode(kotlin.Function0)">createNode</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&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/compose/runtime/Composer.html#createNode(kotlin.Function0)">createNode</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;factory)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Report the <code><a href="/reference/androidx/compose/runtime/Composer.html#createNode(kotlin.Function0)">factory</a></code> that will be used to create the node that will be generated into the tree implied by the composition. This will only be called if <code><a href="/reference/androidx/compose/runtime/Composer.html#inserting()">inserting</a></code> is is <code>true</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> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;factory</code></td>
<td>
<p>a factory function that will generate a node that will eventually be supplied to <code><a href="/reference/androidx/compose/runtime/Composer.html#applier()">applier</a></code> though <code><a href="/reference/androidx/compose/runtime/Applier.html#insertBottomUp(kotlin.Int,kotlin.Any)">Applier.insertBottomUp</a></code> and <code><a href="/reference/androidx/compose/runtime/Applier.html#insertTopDown(kotlin.Int,kotlin.Any)">Applier.insertTopDown</a></code>.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="disableReusing--"></a><a name="disablereusing"></a>
<h3 class="api-name" id="disableReusing()">disableReusing</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#disableReusing()">disableReusing</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Temporarily disable reusing if it is enabled.</p>
</div>
<div><a name="enableReusing--"></a><a name="enablereusing"></a>
<h3 class="api-name" id="enableReusing()">enableReusing</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#enableReusing()">enableReusing</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Reenable reusing if it was previously enabled before the last call to <code><a href="/reference/androidx/compose/runtime/Composer.html#disableReusing()">disableReusing</a></code>.</p>
</div>
<div><a name="endDefaults--"></a><a name="enddefaults"></a>
<h3 class="api-name" id="endDefaults()">endDefaults</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endDefaults()">endDefaults</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called at the end of defaults group.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">See also</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="/reference/androidx/compose/runtime/Composer.html#startDefaults()">startDefaults</a></code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="endMovableGroup--"></a><a name="endmovablegroup"></a>
<h3 class="api-name" id="endMovableGroup()">endMovableGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endMovableGroup()">endMovableGroup</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called at the end of a movable group.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">See also</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="/reference/androidx/compose/runtime/Composer.html#startMovableGroup(kotlin.Int,kotlin.Any)">startMovableGroup</a></code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="endNode--"></a><a name="endnode"></a>
<h3 class="api-name" id="endNode()">endNode</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endNode()">endNode</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called at the end of a node group.</p>
</div>
<div><a name="endProviders--"></a><a name="endproviders"></a>
<h3 class="api-name" id="endProviders()">endProviders</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endProviders()">endProviders</a>()</pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>End the provider group.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">See also</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="/reference/androidx/compose/runtime/Composer.html#startProviders(kotlin.Array)">startProviders</a></code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="endReplaceableGroup--"></a><a name="endreplaceablegroup"></a>
<h3 class="api-name" id="endReplaceableGroup()">endReplaceableGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endReplaceableGroup()">endReplaceableGroup</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called at the end of a replacable group.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">See also</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="/reference/androidx/compose/runtime/Composer.html#startRestartGroup(kotlin.Int)">startRestartGroup</a></code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="endRestartGroup--"></a><a name="endrestartgroup"></a>
<h3 class="api-name" id="endRestartGroup()">endRestartGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;<a href="/reference/androidx/compose/runtime/ScopeUpdateScope.html">ScopeUpdateScope</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endRestartGroup()">endRestartGroup</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called to end a restart group.</p>
</div>
<div><a name="endReusableGroup--"></a><a name="endreusablegroup"></a>
<h3 class="api-name" id="endReusableGroup()">endReusableGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#endReusableGroup()">endReusableGroup</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called at the end of a reusable group.</p>
</div>
<div><a name="joinKey(kotlin.Any, kotlin.Any)"></a><a name="joinKey-kotlin.Any-kotlin.Any-"></a><a name="joinkey"></a>
<h3 class="api-name" id="joinKey(kotlin.Any,kotlin.Any)">joinKey</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">joinKey</a>(<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;left,&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;right)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Produce an object that will compare equal an iff <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">left</a></code> and <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">right</a></code> compare equal to some <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">left</a></code> and <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">right</a></code> of a previous call to <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">joinKey</a></code>. This is used by <code><a href="/reference/androidx/compose/runtime/package-summary.html#key(kotlin.Array,kotlin.Function0)">key</a></code> to handle multiple parameters. Since the previous composition stored <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">left</a></code> and <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">right</a></code> in a &quot;join key&quot; object this call is used to return the previous value without an allocation instead of blindly creating a new value that will be immediately discarded.</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="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;left</code></td>
<td>
<p>the first part of a a joined key.</p>
</td>
</tr>
<tr>
<td width="40%"><code><a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;right</code></td>
<td>
<p>the second part of a joined key.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/Object.html">Object</a></code></td>
<td>
<p>an object that will compare equal to a value previously returned by <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">joinKey</a></code> iff <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">left</a></code> and <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">right</a></code> compare equal to the <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">left</a></code> and <code><a href="/reference/androidx/compose/runtime/Composer.html#joinKey(kotlin.Any,kotlin.Any)">right</a></code> passed to the previous call.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="recordSideEffect-kotlin.Function0-"></a><a name="recordsideeffect"></a>
<h3 class="api-name" id="recordSideEffect(kotlin.Function0)">recordSideEffect</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#recordSideEffect(kotlin.Function0)">recordSideEffect</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;effect)</pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>Record a function to call when changes to the corresponding tree are applied to the <code><a href="/reference/androidx/compose/runtime/Composer.html#applier()">applier</a></code>. This is used to implement <code><a href="/reference/androidx/compose/runtime/package-summary.html#SideEffect(kotlin.Function0)">SideEffect</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> Function0&lt;<a href="https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html">Unit</a>&gt;&nbsp;effect</code></td>
<td>
<p>a lambda to invoke after the changes calculated up to this point have been applied.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="recordUsed-androidx.compose.runtime.RecomposeScope-"></a><a name="recordused"></a>
<h3 class="api-name" id="recordUsed(androidx.compose.runtime.RecomposeScope)">recordUsed</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#recordUsed(androidx.compose.runtime.RecomposeScope)">recordUsed</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/RecomposeScope.html">RecomposeScope</a>&nbsp;scope)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Mark <code><a href="/reference/androidx/compose/runtime/Composer.html#recordUsed(androidx.compose.runtime.RecomposeScope)">scope</a></code> as used. <code><a href="/reference/androidx/compose/runtime/Composer.html#endReplaceableGroup()">endReplaceableGroup</a></code> will return <code>null</code> unless <code><a href="/reference/androidx/compose/runtime/Composer.html#recordUsed(androidx.compose.runtime.RecomposeScope)">recordUsed</a></code> is called on the corresponding <code><a href="/reference/androidx/compose/runtime/Composer.html#recordUsed(androidx.compose.runtime.RecomposeScope)">scope</a></code>. This is called implicitly when <code><a href="/reference/androidx/compose/runtime/State.html">State</a></code> objects are read during composition is called when <code><a href="/reference/androidx/compose/runtime/package-summary.html#currentRecomposeScope()">currentRecomposeScope</a></code> is called in the <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function.</p>
</div>
<div><a name="rememberedValue--"></a><a name="rememberedvalue"></a>
<h3 class="api-name" id="rememberedValue()">rememberedValue</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#rememberedValue()">rememberedValue</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Remember a value into the composition state. This is a primitive method used to implement <code><a href="/reference/androidx/compose/runtime/package-summary.html#remember(kotlin.Function0)">remember</a></code>.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="https://developer.android.com/reference/java/lang/Object.html">Object</a></code></td>
<td>
<p><code><a href="/reference/androidx/compose/runtime/Composer.Companion.html#Empty()">Composer.Empty</a></code> when <code><a href="/reference/androidx/compose/runtime/Composer.html#inserting()">inserting</a></code> is <code>true</code> or the value passed to <code><a href="/reference/androidx/compose/runtime/Composer.html#updateRememberedValue(kotlin.Any)">updateRememberedValue</a></code> from the previous composition.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">See also</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code><a href="/reference/androidx/compose/runtime/package-summary.html#(androidx.compose.runtime.Composer).cache(kotlin.Boolean,kotlin.Function0)">cache</a></code></td>
<td></td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="skipCurrentGroup--"></a><a name="skipcurrentgroup"></a>
<h3 class="api-name" id="skipCurrentGroup()">skipCurrentGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#skipCurrentGroup()">skipCurrentGroup</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Skips the current group. This called by the compiler to indicate that the current group can be skipped, for example, this is generated to skip the <code><a href="/reference/androidx/compose/runtime/Composer.html#startDefaults()">startDefaults</a></code> group the default group is was not invalidated.</p>
</div>
<div><a name="skipToGroupEnd--"></a><a name="skiptogroupend"></a>
<h3 class="api-name" id="skipToGroupEnd()">skipToGroupEnd</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#skipToGroupEnd()">skipToGroupEnd</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Skips the composer to the end of the current group. This generated by the compiler to when the body of a <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function can be skipped typically because the parameters to the function are equal to the values passed to it in the previous composition.</p>
</div>
<div><a name="sourceInformation-kotlin.String-"></a><a name="sourceinformation"></a>
<h3 class="api-name" id="sourceInformation(kotlin.String)">sourceInformation</h3>
<pre class="api-signature no-pretty-print">abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#sourceInformation(kotlin.String)">sourceInformation</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&nbsp;sourceInformation)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Record the source information string for a group. This must be immediately called after the start of a group.</p>
<p>An string value to that provides the compose tools enough information to calculate the source location of calls to composable functions.</p>
</div>
<div><a name="sourceInformationMarkerEnd--"></a><a name="sourceinformationmarkerend"></a>
<h3 class="api-name" id="sourceInformationMarkerEnd()">sourceInformationMarkerEnd</h3>
<pre class="api-signature no-pretty-print">abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#sourceInformationMarkerEnd()">sourceInformationMarkerEnd</a>()</pre>
<p>A compose compiler plugin API. DO NOT call directly.</p>
<p>Record the end of the marked source information range.</p>
</div>
<div><a name="sourceInformationMarkerStart(kotlin.Int, kotlin.String)"></a><a name="sourceInformationMarkerStart-kotlin.Int-kotlin.String-"></a><a name="sourceinformationmarkerstart"></a>
<h3 class="api-name" id="sourceInformationMarkerStart(kotlin.Int,kotlin.String)">sourceInformationMarkerStart</h3>
<pre class="api-signature no-pretty-print">abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#sourceInformationMarkerStart(kotlin.Int,kotlin.String)">sourceInformationMarkerStart</a>(int&nbsp;key,&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&nbsp;sourceInformation)</pre>
<p>A compose compiler plugin API. DO NOT call directly.</p>
<p>Record a source information marker. This marker can be used in place of a group that would have contained the information but was elided as the compiler plugin determined the group was not necessary such as when a function is marked with <code><a href="/reference/androidx/compose/runtime/ReadOnlyComposable.html">ReadOnlyComposable</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>int&nbsp;key</code></td>
<td>
<p>A compiler generated key based on the source location of the call.</p>
</td>
</tr>
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="https://developer.android.com/reference/java/lang/String.html">String</a>&nbsp;sourceInformation</code></td>
<td>
<p>An string value to that provides the compose tools enough information to calculate the source location of calls to composable functions.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="startDefaults--"></a><a name="startdefaults"></a>
<h3 class="api-name" id="startDefaults()">startDefaults</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startDefaults()">startDefaults</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called to start the group that calculates the default parameters of a <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function.</p>
<p>This method is called near the beginning of a <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function with default parameters and surrounds the remembered values or <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> calls necessary to produce the default parameters. For example, for <code>model: Model = remember { DefaultModel() }</code> the call to <code><a href="/reference/androidx/compose/runtime/package-summary.html#remember(kotlin.Function0)">remember</a></code> is called inside a <code><a href="/reference/androidx/compose/runtime/Composer.html#startDefaults()">startDefaults</a></code> group.</p>
</div>
<div><a name="startMovableGroup(kotlin.Int, kotlin.Any)"></a><a name="startMovableGroup-kotlin.Int-kotlin.Any-"></a><a name="startmovablegroup"></a>
<h3 class="api-name" id="startMovableGroup(kotlin.Int,kotlin.Any)">startMovableGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startMovableGroup(kotlin.Int,kotlin.Any)">startMovableGroup</a>(int&nbsp;key,&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;dataKey)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Start a movable group. A movable group is one that can be moved based on the value of <code><a href="/reference/androidx/compose/runtime/Composer.html#startMovableGroup(kotlin.Int,kotlin.Any)">dataKey</a></code> which is typically supplied by the <code><a href="/reference/androidx/compose/runtime/package-summary.html#key(kotlin.Array,kotlin.Function0)">key</a></code> pseudo compiler function.</p>
<p>A movable group implements the semantics of <code><a href="/reference/androidx/compose/runtime/package-summary.html#key(kotlin.Array,kotlin.Function0)">key</a></code> which allows the state and nodes generated by a loop to move with the composition implied by the key passed to <code><a href="/reference/androidx/compose/runtime/package-summary.html#key(kotlin.Array,kotlin.Function0)">key</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>int&nbsp;key</code></td>
<td>
<p>A compiler generated key based on the source location of the call.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="startNode--"></a><a name="startnode"></a>
<h3 class="api-name" id="startNode()">startNode</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startNode()">startNode</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Start a group that tracks a the code that will create or update a node that is generated as part of the tree implied by the composition.</p>
</div>
<div><a name="startProviders-kotlin.Array-"></a><a name="startproviders"></a>
<h3 class="api-name" id="startProviders(kotlin.Array)">startProviders</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/InternalComposeApi.html">InternalComposeApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startProviders(kotlin.Array)">startProviders</a>(@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> ProvidedValue[]&nbsp;values)</pre>
<p>A Compose internal function. DO NOT call directly.</p>
<p>Provide the given values for the associated <code><a href="/reference/androidx/compose/runtime/CompositionLocal.html">CompositionLocal</a></code> keys. This is the primitive function used to implement <code><a href="/reference/androidx/compose/runtime/package-summary.html#CompositionLocalProvider(kotlin.Array,kotlin.Function0)">CompositionLocalProvider</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> ProvidedValue[]&nbsp;values</code></td>
<td>
<p>an array of value to provider key pairs.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="startReplaceableGroup-kotlin.Int-"></a><a name="startreplaceablegroup"></a>
<h3 class="api-name" id="startReplaceableGroup(kotlin.Int)">startReplaceableGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startReplaceableGroup(kotlin.Int)">startReplaceableGroup</a>(int&nbsp;key)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Start a replacable group. A replacable group is a group that cannot be moved during execution and can only either inserted, removed, or replaced. For example, the group created by most control flow constructs such as an <code>if</code> statement are replacable groups.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>int&nbsp;key</code></td>
<td>
<p>A compiler generated key based on the source location of the call.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="startRestartGroup-kotlin.Int-"></a><a name="startrestartgroup"></a>
<h3 class="api-name" id="startRestartGroup(kotlin.Int)">startRestartGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Composer.html">Composer</a>&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startRestartGroup(kotlin.Int)">startRestartGroup</a>(int&nbsp;key)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Called to record a group for a <code><a href="/reference/androidx/compose/runtime/Composable.html">Composable</a></code> function and starts a group that can be recomposed on demand based on the lambda passed to <code><a href="/reference/androidx/compose/runtime/ScopeUpdateScope.html#updateScope(kotlin.Function2)">updateScope</a></code> when <code><a href="/reference/androidx/compose/runtime/Composer.html#endRestartGroup()">endRestartGroup</a></code> is called</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>int&nbsp;key</code></td>
<td>
<p>A compiler generated key based on the source location of the call.</p>
</td>
</tr>
</tbody>
</table>
</div>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Returns</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Composer.html">Composer</a></code></td>
<td>
<p>the instance of the composer to use for the rest of the function.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="startReusableGroup(kotlin.Int, kotlin.Any)"></a><a name="startReusableGroup-kotlin.Int-kotlin.Any-"></a><a name="startreusablegroup"></a>
<h3 class="api-name" id="startReusableGroup(kotlin.Int,kotlin.Any)">startReusableGroup</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startReusableGroup(kotlin.Int,kotlin.Any)">startReusableGroup</a>(int&nbsp;key,&nbsp;<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;dataKey)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Start a reuse group. Unlike a movable group, in a reuse group if the <code><a href="/reference/androidx/compose/runtime/Composer.html#startReusableGroup(kotlin.Int,kotlin.Any)">dataKey</a></code> changes the composition shifts into a reusing state cause the composer to act like it is inserting (e.g. <code><a href="/reference/androidx/compose/runtime/package-summary.html#(androidx.compose.runtime.Composer).cache(kotlin.Boolean,kotlin.Function0)">cache</a></code> acts as if all values are invalid, <code><a href="/reference/androidx/compose/runtime/Composer.html#changed(kotlin.Any)">changed</a></code> always returns true, etc.) even though it is recomposing until it encounters a reusable node. If the node is reusable it temporarily shifts into recomposition for the node and then shifts back to reusing for the children. If a non-reusable node is generated the composer shifts to inserting for the node and all of its children.</p>
<div class="devsite-table-wrapper">
<table class="responsive">
<thead>
<tr>
<th colspan="2">Parameters</th>
</tr>
</thead>
<tbody>
<tr>
<td width="40%"><code>int&nbsp;key</code></td>
<td>
<p>An compiler generated key based on the source location of the call.</p>
</td>
</tr>
<tr>
<td width="40%"><code><a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;dataKey</code></td>
<td>
<p>A key provided by the <code><a href="/reference/androidx/compose/runtime/package-summary.html#ReusableContent(kotlin.Any,kotlin.Function0)">ReusableContent</a></code> composable function that is used to determine if the composition shifts into a reusing state for this group.</p>
</td>
</tr>
</tbody>
</table>
</div>
</div>
<div><a name="startReusableNode--"></a><a name="startreusablenode"></a>
<h3 class="api-name" id="startReusableNode()">startReusableNode</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#startReusableNode()">startReusableNode</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Start a group that tracks a the code that will create or update a node that is generated as part of the tree implied by the composition. A reusable node can be reused in a reusable group even if the group key is changed.</p>
</div>
<div><a name="updateRememberedValue-kotlin.Any-"></a><a name="updaterememberedvalue"></a>
<h3 class="api-name" id="updateRememberedValue(kotlin.Any)">updateRememberedValue</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#updateRememberedValue(kotlin.Any)">updateRememberedValue</a>(<a href="https://developer.android.com/reference/java/lang/Object.html">Object</a>&nbsp;value)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Update the remembered value correspond to the previous call to <code><a href="/reference/androidx/compose/runtime/Composer.html#rememberedValue()">rememberedValue</a></code>. The <code><a href="/reference/androidx/compose/runtime/Composer.html#updateRememberedValue(kotlin.Any)">value</a></code> will be returned by <code><a href="/reference/androidx/compose/runtime/Composer.html#rememberedValue()">rememberedValue</a></code> for the next composition.</p>
</div>
<div><a name="useNode--"></a><a name="usenode"></a>
<h3 class="api-name" id="useNode()">useNode</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>abstract&nbsp;void&nbsp;<a href="/reference/androidx/compose/runtime/Composer.html#useNode()">useNode</a>()</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Report that the node is still being used. This will be called in the same location as the corresponding <code><a href="/reference/androidx/compose/runtime/Composer.html#createNode(kotlin.Function0)">createNode</a></code> when <code><a href="/reference/androidx/compose/runtime/Composer.html#inserting()">inserting</a></code> is <code>false</code>.</p>
</div>
<h2>Extension functions</h2>
<div><a name="(androidx.compose.runtime.Composer).cache(kotlin.Boolean, kotlin.Function0)"></a><a name="-androidx.compose.runtime.Composer-.cache-kotlin.Boolean-kotlin.Function0-"></a><a name="cache"></a>
<h3 class="api-name" id="(androidx.compose.runtime.Composer).cache(kotlin.Boolean,kotlin.Function0)">ComposerKt.cache</h3>
<pre class="api-signature no-pretty-print">@<a href="/reference/androidx/compose/runtime/ComposeCompilerApi.html">ComposeCompilerApi</a><br>default&nbsp;final&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&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/runtime/ComposerKt.html">ComposerKt</a>.<a href="/reference/androidx/compose/runtime/package-summary.html#(androidx.compose.runtime.Composer).cache(kotlin.Boolean,kotlin.Function0)">cache</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> <a href="/reference/androidx/compose/runtime/Composer.html">Composer</a>&nbsp;receiver,<br>&nbsp;&nbsp;&nbsp;&nbsp;boolean&nbsp;invalid,<br>&nbsp;&nbsp;&nbsp;&nbsp;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> Function0&lt;@<a href="/reference/androidx/annotation/NonNull.html">NonNull</a> T&gt;&nbsp;block<br>)</pre>
<p>A Compose compiler plugin API. DO NOT call directly.</p>
<p>Cache, that is remember, a value in the composition data of a composition. This is used to implement <code><a href="/reference/androidx/compose/runtime/package-summary.html#remember(kotlin.Function0)">remember</a></code> and used by the compiler plugin to generate more efficient calls to <code><a href="/reference/androidx/compose/runtime/package-summary.html#remember(kotlin.Function0)">remember</a></code> when it determines these optimizations are safe.</p>
</div>
</body>
</html>