/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 ĠFranc is ĠWang Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// 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 Ġio . ver ik . compiler . cast Ċ Ċ import Ġio . ver ik . compiler . util . Base Test Ċ import Ġio . ver ik . compiler . util . find Declaration Ċ import Ġorg . junit . jupiter . api . Test Ċ Ċ internal Ġclass ĠDeclaration C aster Test Ġ: ĠBaseTest () Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` type Ġalias `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype alias ĠN Ġ= ĠINC < ` 7 ` > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Type Alias ( N , ĠINC < ` 7 ` >) ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" N ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġsimple `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Basic Class ( C , Ġ[], Ġ[], Ġ[], Ġfalse , Ġfalse , ĠPrimary Constructor ( C , Ġ[], Ġ[]), Ġnull )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠD ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Basic Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ Kt Basic Class ( D , Ġ[], Ġ[], Ġ[], Ġfalse , Ġfalse , ĠPrimary Constructor ( D , Ġ[], Ġ[]), Ġnull )], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Constructor ( C , Ġ[], Ġ[]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġfunction `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġf () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Basic Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ Kt Function ( f , ĠUnit , Ġ*, Ġ[], Ġ[], Ġ[], Ġfalse )], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Constructor ( C , Ġ[], Ġ[]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġproperty `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġx Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Basic Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ Kt Property ( x , ĠBoolean , Ġ*, Ġ[]) ], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Constructor ( C , Ġ[], Ġ[]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġcompanion Ġobject `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC Ġ{ Ġcompanion Ġobject Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Basic Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ Kt Basic Class ( Companion , Ġ[], Ġ[], Ġ[], Ġfalse , Ġfalse , ĠPrimary Constructor ( Companion , Ġ[], Ġ[]), Ġnull )], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Constructor ( C , Ġ[], Ġ[]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġtype Ġparameter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC < T > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Basic Class ( C , Ġ[], Ġ[ Type Parameter ( T , ĠAny )], Ġ[], Ġfalse , Ġfalse , ĠPrimary Constructor ( C < T >, Ġ[], Ġ[ T ]), Ġnull )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġprimary Ġconstructor `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠC ( val Ġx : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Basic Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Constructor ( C , Ġ[ Kt Value Parameter ( x , ĠInt , Ġ[], Ġtrue )], Ġ[]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" C ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` class Ġwith Ġsuper Ġtype Ġcall Ġentry `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen Ġclass ĠC ( x : ĠInt ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠD Ġ: ĠC ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK t Basic Class ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠD , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[], ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPrimary Constructor ( D , Ġ[], Ġ[]), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSuper Type Call Entry (< init >, Ġ[ Constant Expression (* )]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" D ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` enum Ġclass `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenum Ġclass ĠE Ġ{ ĠA Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Basic Class ( E , Ġ[ Kt Enum Entry ( A , ĠE , Ġ[]) ], Ġ[], Ġ[], Ġtrue , Ġfalse , ĠPrimary Constructor ( E , Ġ[], Ġ[]), Ġnull )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" E ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` function Ġsimple `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġf () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Function ( f , ĠUnit , Ġ*, Ġ[], Ġ[], Ġ[], Ġfalse )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" f ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` function Ġwith Ġvalue Ġparameter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġf ( x : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Function ( f , ĠUnit , Ġ*, Ġ[ Kt Value Parameter ( x , ĠInt , Ġ[], Ġfalse )], Ġ[], Ġ[], Ġfalse )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" f ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` function Ġwith Ġtype Ġparameter `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġ< N Ġ: Ġ` *` > Ġf () Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Function ( f , ĠUnit , Ġ*, Ġ[], Ġ[ Type Parameter ( N , Ġ` * `) ], Ġ[], Ġfalse )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" f ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` property Ġsimple `() Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġproject Context Ġ= Ġdrive Test ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠC aster Stage :: class , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġx Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġassert Element Equals ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Kt Property ( x , ĠBoolean , Ġ*, Ġ[]) ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject Context . find Declaration (" x ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ