/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . compose . compiler . plugins . kotlin Ċ Ċ import Ġorg . junit . Test Ċ Ċ class ĠLambda Memo ization Transform Tests Ġ: ĠCompose Ir Transform Test () Ġ{ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Capt ured This From Field Initializer (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġ@ Composable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( b ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ St ability In ferred ( parameters Ġ= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠA Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= Ġcomp osable Lambda Instance (< >, Ġtrue ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( b ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatic Ġval Ġ% stable : ĠInt Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Local In AL ocal (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠExample () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠA () Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠB ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ Ġcontent () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠC () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ{ ĠA () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠExample (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Example ): Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġ!== Ġ 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠA (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( A ): Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠB ( content : ĠFunction 2 < Composer , ĠInt , ĠUnit >, Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( B )< conten ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent (% composer , Ġ 0 b 1 1 1 0 Ġand Ġ% changed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠC (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( C )< B >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( comp osable Lambda (% composer , Ġ< >, Ġfalse ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C < A () >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA (% composer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠExample (% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// ĠFixes Ġb / 2 0 1 2 5 2 5 7 4 ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Local Fun Capt ures (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠErr () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ` x ` Ġis Ġnot Ġa Ġcapture Ġof Ġhandler , Ġbut Ġis Ġtreated Ġas Ġsuch . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġhandler () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġx : ĠInt Ġ-> Ġx Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠLambda Ġcalling Ġhandler . ĠTo Ġfind Ġcaptures , Ġwe Ġneed Ġcaptures Ġof Ġ` handler `. ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠErr (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Err ): Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġhandler () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġx : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġx ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Local Class Capt ures 1 (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠErr ( y : ĠInt , Ġz : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠLocal Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw Ġ= Ġz ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġsomething ( x : ĠInt ): ĠInt Ġ{ Ġreturn Ġx Ġ+ Ġy Ġ+ Ġw Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal (). something ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠErr ( y : ĠInt , Ġz : ĠInt , Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Err )< { >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠLocal Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġw : ĠInt Ġ= Ġz ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġsomething ( x : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġx Ġ+ Ġy Ġ+ Ġw ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremember ( y , Ġz , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLocal (). something ( 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 1 1 1 0 Ġand Ġ% changed Ġor Ġ 0 b 0 1 1 1 0 0 0 0 Ġand Ġ% changed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Local Class Capt ures 2 (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Non Restart able Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠExample ( z : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ( val Ġx : ĠInt ) Ġ{ Ġval Ġy Ġ= Ġz Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda : Ġ() Ġ-> ĠAny Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFoo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Non Restart able Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠExample ( z : ĠInt , Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Example )< { >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠFoo ( val Ġx : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġy : ĠInt Ġ= Ġz ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda Ġ= Ġremember ( z , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFoo ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 1 1 1 0 Ġand Ġ% changed ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Local Fun Capt ures 3 (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . animation . Animated Content ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . animation . Experimental Animation Api ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Opt In ( Experimental Animation Api :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠSimple Animated Content Sample () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠFoo () Ġ{} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimated Content ( 1 f ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFoo () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Opt In ( marker Class Ġ= ĠExperimental Animation Api :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠSimple Animated Content Sample (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Simple Animated Content Sample )< Anim at ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġ!== Ġ 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠFoo (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . start Replace able Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Foo ): Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Replace able Group () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnimated Content ( 1 . 0 f , Ġnull , Ġnull , Ġnull , Ġcomp osable Lambda (% composer , Ġ< >, Ġfalse ) Ġ{ Ġit : ĠFloat , Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C < Foo () >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFoo (% composer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 0 1 1 0 0 0 0 0 0 0 0 0 0 1 1 0 , Ġ 0 b 1 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSimple Animated Content Sample (% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest State Delegate Capture (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . mutable State Of ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . getValue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠA () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġby Ġmutable State Of ( 1 2 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( x ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠA (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( A )< B >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġ!== Ġ 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ<< LOCAL DEL PROP >> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( comp osable Lambda (% composer , Ġ< >, Ġtrue ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprint (< get - x >()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA (% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠB ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest TopLevel Composable Lambda Properties (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġ= Ġ@ Composable Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbar : Ġ@ Composable Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= ĠComp osable Sing letons % Test Kt . lambda - 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbar : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= ĠComp osable Sing letons % Test Kt . lambda - 2 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġobject ĠComp osable Sing letons % Test Kt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda - 1 : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= Ġcomp osable Lambda Instance (< >, Ġfalse ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda - 2 : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= Ġcomp osable Lambda Instance (< >, Ġfalse ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Local Variable Composable L amb das (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠA () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġ= Ġ@ Composable Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbar : Ġ@ Composable Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( foo ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( bar ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠA (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( A )< B ( foo ) >,< B ( bar ) >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġ!== Ġ 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfoo Ġ= ĠComp osable Sing letons % Test Kt . lambda - 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbar Ġ= ĠComp osable Sing letons % Test Kt . lambda - 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( foo , Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( bar , Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA (% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġobject ĠComp osable Sing letons % Test Kt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda - 1 : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= Ġcomp osable Lambda Instance (< >, Ġfalse ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda - 2 : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= Ġcomp osable Lambda Instance (< >, Ġfalse ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠB ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Parameter Composable L amb das (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠA () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠA (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( A )< B >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġ!== Ġ 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠB ( Composable Sing letons % Test Kt . lambda - 1 , Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠA (% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġobject ĠComp osable Sing letons % Test Kt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlambda - 1 : ĠFunction 2 < Composer , ĠInt , ĠUnit > Ġ= Ġcomp osable Lambda Instance (< >, Ġfalse ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C : Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUnit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠB ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test Ġ// Ġregression Ġof Ġb / 1 6 2 5 7 5 4 2 8 ĊĠĠĠ Ġfun Ġtest Composable In A Function Parameter (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest ( enabled : ĠBoolean , Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisplay ("% enabled ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWrap ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . replace ('% ', Ġ'$ '), ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest ( enabled : ĠBoolean , Ġcontent : ĠFunction 2 < Composer , ĠInt , ĠUnit > ?, Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt , Ġ% default : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Test ) P ( 1 )< Wrap ( c ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ% dirty Ġ= Ġ% changed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% default Ġand Ġ 0 b 0 0 0 1 Ġ!== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġ 0 b 0 1 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(% changed Ġand Ġ 0 b 1 1 1 0 Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġif Ġ(% composer . changed ( enabled )) Ġ 0 b 0 1 0 0 Ġelse Ġ 0 b 0 0 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% default Ġand Ġ 0 b 0 0 1 0 Ġ!== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġ 0 b 0 0 1 1 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(% changed Ġand Ġ 0 b 0 1 1 1 0 0 0 0 Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġif Ġ(% composer . changed ( content )) Ġ 0 b 0 0 1 0 0 0 0 0 Ġelse Ġ 0 b 0 0 0 1 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% dirty Ġand Ġ 0 b 0 1 0 1 1 0 1 1 Ġ!== Ġ 0 b 0 0 0 1 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% default Ġand Ġ 0 b 0 0 1 0 Ġ!== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġ= Ġcomp osable Lambda (% composer , Ġ< >, Ġtrue ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C < Dis pl a ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisplay ("% enabled ", Ġ% composer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWrap ( content , Ġ% composer , Ġ 0 b 1 1 1 0 Ġand Ġ% dirty Ġshr Ġ 0 b 0 0 1 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest ( enabled , Ġcontent , Ġ% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 , Ġ% default ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠDisplay ( text : ĠString ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠWrap ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Comp os ab able Lambda In Local Declaration (): ĠUnit Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest ( enabled : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent : Ġ@ Composable Ġ() Ġ-> ĠUnit Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisplay ("% enabled ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWrap ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" . replace ('% ', Ġ'$ '), ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest ( enabled : ĠBoolean , Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Test )< Wrap ( c ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ% dirty Ġ= Ġ% changed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 1 1 0 Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġif Ġ(% composer . changed ( enabled )) Ġ 0 b 0 1 0 0 Ġelse Ġ 0 b 0 0 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% dirty Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġcomp osable Lambda (% composer , Ġ< >, Ġtrue ) Ġ{ Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C < Dis pl a ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDisplay ("% enabled ", Ġ% composer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWrap ( content , Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest ( enabled , Ġ% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠDisplay ( text : ĠString ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable Ġfun ĠWrap ( content : Ġ@ Composable Ġ() Ġ-> ĠUnit ) Ġ{ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// ĠEnsure Ġwe Ġdon 't Ġremember Ġlamb das Ġthat Ġdo Ġnot Ġcapture Ġvariables . ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lambda No Capture () Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest Lambda ( content : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Lambda Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Does n 't Ġcapture ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest Lambda ( content : ĠFunction 0 < Unit >, Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Test Lambda ): Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ% dirty Ġ= Ġ% changed ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 1 1 0 Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġif Ġ(% composer . changed ( content )) Ġ 0 b 0 1 0 0 Ġelse Ġ 0 b 0 0 1 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% dirty Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Lambda ( content , Ġ% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest (% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Test )< Test La ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġ!== Ġ 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Lambda ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Does n 't Ġcapture ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 0 1 1 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest (% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ// ĠEnsure Ġthe Ġabove Ġtest Ġis Ġvalid Ġas Ġthis Ġshould Ġremember Ġthe Ġlambda ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lambda Does Capture () Ġ= Ġverify Compose Ir Transform ( ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġandroidx . compose . runtime . Composable ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest Lambda ( content : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠTest ( a : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTest Lambda Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Capt ures Ġa " Ġ+ Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ", ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠ Ġfun ĠTest Lambda ( content : ĠFunction 0 < Unit >, Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Test Lambda ): Test . kt ") ĊĠĠĠĠĠĠĠĠĠ Ġval Ġ% dirty Ġ= Ġ% changed ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 1 1 0 Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġif Ġ(% composer . changed ( content )) Ġ 0 b 0 1 0 0 Ġelse Ġ 0 b 0 0 1 0 ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ(% dirty Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent () ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Lambda ( content , Ġ% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ@ Composable ĊĠĠĠĠĠĠĠ Ġfun ĠTest ( a : ĠString , Ġ% composer : ĠComposer ?, Ġ% changed : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġ% composer Ġ= Ġ% composer . start Restart Group (< >) ĊĠĠĠĠĠĠĠĠĠ Ġsource Information (% composer , Ġ" C ( Test )< { >,< Test La ... >: Test . kt ") ĊĠĠĠĠĠĠĠĠĠ Ġval Ġ% dirty Ġ= Ġ% changed ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ(% changed Ġand Ġ 0 b 1 1 1 0 Ġ=== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ% dirty Ġ= Ġ% dirty Ġor Ġif Ġ(% composer . changed ( a )) Ġ 0 b 0 1 0 0 Ġelse Ġ 0 b 0 0 1 0 ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ(% dirty Ġand Ġ 0 b 1 0 1 1 Ġ!== Ġ 0 b 0 0 1 0 Ġ|| Ġ! % composer . sk ipping ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest Lambda ( remember ( a , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" Capt ures Ġa " Ġ+ Ġa ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ% composer , Ġ 0 b 1 1 1 0 Ġand Ġ% dirty ), Ġ% composer , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ% composer . skip To Group End () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ% composer . end Restart Group ()?. update Scope Ġ{ Ġ% composer : ĠComposer ?, Ġ% force : ĠInt Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTest ( a , Ġ% composer , Ġ% changed Ġor Ġ 0 b 0 0 0 1 ) ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠ Ġ) Ċ }