/* Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠMIT Ġlicense Ġthat Ġcan Ġbe Ċ Ġ* Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . rust . lang . core . resolve Ċ Ċ import Ġorg . rust . Mock Edition Ċ import Ġorg . rust . Use New Resolve Ċ import Ġorg . rust . cargo . project . workspace . Cargo Workspace . Edition Ċ import Ġorg . rust . ignore In New Resolve Ċ Ċ class ĠRs Macro Resolve Test Ġ: ĠRs Resolve TestBase () Ġ{ ĊĠĠĠ Ġfun Ġ` test Ġresolve Ġsimple Ġmatching Ġwith Ġmultiple Ġpattern Ġdefinition `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ($ Ġtest : expr ) Ġ=> Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ($ Ġtest : expr ) Ġ=> Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġsimple Ġmatching Ġwith Ġmultiple Ġmatching `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ($ Ġtest : expr , Ġ$ Ġty : ty ) Ġ=> Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Ġtest ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġsimple Ġmatching Ġin Ġcomplex Ġmatching `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ($ Ġ($ Ġtest : expr ), +, Ġ$ Ġty : ty ) Ġ=> Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ Ġ($ Ġtest ), + ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġsame Ġscope `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġin Ġfunction `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġmod Ġlower `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġmod `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ// ĠMac ros Ġare Ġscoped Ġby Ġlex ical Ġorder ĊĠĠĠ Ġ// Ġsee Ġhttps :// github . com / intellij - rust / intellij - rust / issues / 1 4 7 4 ĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġmod Ġwrong Ġorder `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ Ġun resolved ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġin Ġlex ical Ġorder Ġ 1 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ Ġ// X ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo ! (); ĊĠĠĠĠĠĠĠ Ġ} Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġin Ġlex ical Ġorder Ġ 2 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠ Ġpub Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpub Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpub Ġfn Ġfoo () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġin Ġlex ical Ġorder Ġ 3 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġbar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ#[ macro _ use ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġbar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo ! (); ĊĠĠĠĠĠĠĠ Ġ} Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġmissing Ġmacro _ use `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ// ĠMissing Ġ#[ macro _ use ] Ġhere ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ Ġun resolved ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ", ĠName Resolution Test marks . missing Macro Use . ignore In New Resolve ( project )) ĊĊĠĠĠ Ġfun Ġ` test Ġmacro _ export Ġmacro Ġis Ġvisible Ġin Ġthe Ġsame Ġcrate Ġwithout Ġmacro _ use `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ// Ġ#[ macro _ use ] Ġis Ġnot Ġneeded Ġhere ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ", ĠName Resolution Test marks . process Self C rate Exported Macros . ignore In New Resolve ( project )) ĊĊĠĠĠ Ġfun Ġ` test Ġresolve Ġmacro Ġmissing Ġmacro _ use Ġmod `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ// ĠMissing Ġ#[ macro _ use ] Ġhere ĊĠĠĠĠĠĠĠ Ġmod Ġa Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ bar Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmod Ġb Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfn Ġmain () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfoo _ bar ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ Ġun resolved ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ", ĠName Resolution Test marks . missing Macro Use . ignore In New Resolve ( project )) ĊĊĠĠĠ Ġfun Ġ` test Ġraw Ġidentifier Ġ 1 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġr # match Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġr # match ! (); ĊĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġraw Ġidentifier Ġ 2 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġr # foo ! (); ĊĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġmacro Ġcall Ġwith Ġcrate Ġprefix Ġ 1 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠ Ġcrate :: foo ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġfun Ġ` test Ġmacro Ġcall Ġwith Ġcrate Ġprefix Ġ 2 `() Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo Ġ{ Ġ() Ġ=> Ġ() Ġ} ĊĊĠĠĠĠĠĠĠ Ġcrate :: foo ! (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ Ġun resolved ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ// ĠTODO ĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġnested Ġmod Ġ( re export )` () Ġ= Ġexpect < IllegalStateException > Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck By Code (""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmod Ġinner Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ"" ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġnested Ġmod Ġ( import )` () Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmod Ġinner Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmod Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Ġcrate :: inner :: foo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġnested Ġmod Ġ( macro Ġcall )` () Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġmod Ġinner Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinner :: foo ! Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġcrate Ġroot Ġ( re export )` () Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġcrate Ġroot Ġ( import )` () Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĠĠĠĠĠĠĠ Ġmod Ġtest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse Ġcrate :: foo ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġcrate Ġroot Ġ( macro Ġcall Ġf qn )` () Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĊĠĠĠĠĠĠĠ Ġcrate :: foo ! Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ@ Use New Resolve ĊĠĠĠ Ġ@ Mock Edition ( Edition . ED ITION _ 2 0 1 8 ) ĊĠĠĠ Ġfun Ġ` test Ġlegacy Ġtext ual Ġmacro Ġre exported Ġas Ġmacro Ġ 2 Ġin Ġcrate Ġroot Ġ( macro Ġcall )` () Ġ= Ġcheck By Code (""" ĊĠĠĠĠĠĠĠ Ġ#[ macro _ export ] ĊĠĠĠĠĠĠĠ Ġmacro _ rules ! Ġfoo _ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// X ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ() Ġ=> Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpub Ġuse Ġfoo _ Ġas Ġfoo ; ĊĊĠĠĠĠĠĠĠ Ġfoo ! Ġ{} ĊĠĠĠĠĠĠĠ Ġ// ^ ĊĠĠĠ Ġ"" ") ĊĊĠĠĠ Ġ/** ĠMore Ġmacro Ġtests Ġin Ġ[ Rs Package Library Resolve Test ] Ġand Ġ[ Rs Stub Only Resolve Test ] Ġ*/ Ċ } Ċ