package Ġfoo Ċ Ċ fun Ġinternal _ foo (): ĠInt Ġ= Ġ 1 Ċ @ native Ġfun Ġinternal _ foo ( a : ĠArray < Int >) Ġ= Ġ" should Ġbe Ġignored " Ċ fun Ġinternal _ foo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ Ċ fun Ġinternal _ b oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ fun Ġinternal _ b oo ( s : ĠString ): ĠInt Ġ= Ġ 3 Ċ fun Ġinternal _ b oo (): ĠInt Ġ= Ġ 1 Ċ @ native Ġfun Ġinternal _ b oo ( a : ĠArray < Int >) Ġ= Ġ" should Ġbe Ġignored " Ċ Ċ val Ġinternal _ f Ġ= Ġ{ Ġinternal _ foo () Ġ+ Ġinternal _ foo ( 1 ) Ġ} Ċ val Ġinternal _ b Ġ= Ġ{ Ġinternal _ b oo () Ġ+ Ġinternal _ b oo ( 1 ) Ġ} ĊĊ Ċ public Ġfun Ġpublic _ foo (): ĠInt Ġ= Ġ 1 Ċ @ native Ġpublic Ġfun Ġpublic _ foo ( a : ĠArray < Int >): ĠString Ġ= Ġ" should Ġbe Ġignored " Ċ public Ġfun Ġpublic _ foo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ Ċ public Ġfun Ġpublic _ b oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ public Ġfun Ġpublic _ b oo ( s : ĠString ): ĠInt Ġ= Ġ 3 Ċ public Ġfun Ġpublic _ b oo (): ĠInt Ġ= Ġ 1 Ċ @ native Ġpublic Ġfun Ġpublic _ b oo ( a : ĠArray < Int >): ĠString Ġ= Ġ" should Ġbe Ġignored " Ċ Ċ val Ġpublic _ f Ġ= Ġ{ Ġpublic _ foo () Ġ+ Ġpublic _ foo ( 1 ) Ġ} Ċ val Ġpublic _ b Ġ= Ġ{ Ġpublic _ b oo () Ġ+ Ġpublic _ b oo ( 1 ) Ġ} ĊĊ Ċ @ native Ġprivate Ġfun Ġprivate _ foo ( a : ĠArray < Int >): ĠString Ġ= Ġ" should Ġbe Ġignored " Ċ private Ġfun Ġprivate _ foo (): ĠInt Ġ= Ġ 1 Ċ private Ġfun Ġprivate _ foo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ Ċ @ native Ġprivate Ġfun Ġprivate _ b oo ( a : ĠArray < Int >): ĠString Ġ= Ġ" should Ġbe Ġignored " Ċ private Ġfun Ġprivate _ b oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ private Ġfun Ġprivate _ b oo ( s : ĠString ): ĠInt Ġ= Ġ 3 Ċ private Ġfun Ġprivate _ b oo (): ĠInt Ġ= Ġ 1 Ċ Ċ val Ġprivate _ f Ġ= Ġ{ Ġprivate _ foo () Ġ+ Ġprivate _ foo ( 1 ) Ġ} Ċ val Ġprivate _ b Ġ= Ġ{ Ġprivate _ b oo () Ġ+ Ġprivate _ b oo ( 1 ) Ġ} ĊĊ Ċ public Ġfun Ġmixed _ foo ( s : ĠString ): ĠInt Ġ= Ġ 3 Ċ fun Ġmixed _ foo (): ĠInt Ġ= Ġ 1 Ċ @ native Ġfun Ġmixed _ foo ( a : ĠArray < Int >) Ġ= Ġ" should Ġbe Ġignored " Ċ private Ġfun Ġmixed _ foo ( s : ĠString , Ġi : ĠInt ): ĠInt Ġ= Ġ 4 Ċ fun Ġmixed _ foo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ Ċ fun Ġmixed _ b oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 Ċ private Ġfun Ġmixed _ b oo ( s : ĠString , Ġi : ĠInt ): ĠInt Ġ= Ġ 4 Ċ @ native Ġfun Ġmixed _ b oo ( a : ĠArray < Int >) Ġ= Ġ" should Ġbe Ġignored " Ċ public Ġfun Ġmixed _ b oo ( s : ĠString ): ĠInt Ġ= Ġ 3 Ċ fun Ġmixed _ b oo (): ĠInt Ġ= Ġ 1 Ċ Ċ val Ġmixed _ f Ġ= Ġ{ Ġmixed _ foo () Ġ+ Ġmixed _ foo ( 1 ) Ġ+ Ġmixed _ foo (" str ") Ġ+ Ġmixed _ foo (" str ", Ġ 4 4 ) Ġ} Ċ val Ġmixed _ b Ġ= Ġ{ Ġmixed _ b oo () Ġ+ Ġmixed _ b oo ( 1 ) Ġ+ Ġmixed _ b oo (" str ") Ġ+ Ġmixed _ b oo (" str ", Ġ 4 4 ) Ġ} ĊĊ Ċ class ĠTest Internal Ġ{ ĊĠĠĠ Ġfun Ġfoo (): ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġfun Ġfoo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĊĠĠĠ Ġfun Ġb oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġfun Ġb oo ( s : ĠString ): ĠInt Ġ= Ġ 3 ĊĠĠĠ Ġfun Ġb oo (): ĠInt Ġ= Ġ 1 Ċ } Ċ Ċ val Ġinternal _ in _ class _ f Ġ= Ġ{ ĠTest Internal (). foo () Ġ+ ĠTest Internal (). foo ( 1 ) Ġ} Ċ val Ġinternal _ in _ class _ b Ġ= Ġ{ ĠTest Internal (). b oo () Ġ+ ĠTest Internal (). b oo ( 1 ) Ġ} ĊĊ Ċ class ĠTest Public Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġfoo (): ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġpublic Ġfun Ġfoo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĊĠĠĠ Ġpublic Ġfun Ġb oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġpublic Ġfun Ġb oo ( s : ĠString ): ĠInt Ġ= Ġ 3 ĊĠĠĠ Ġpublic Ġfun Ġb oo (): ĠInt Ġ= Ġ 1 Ċ } Ċ Ċ val Ġpublic _ in _ class _ f Ġ= Ġ{ ĠTest Public (). foo () Ġ+ ĠTest Public (). foo ( 1 ) Ġ} Ċ val Ġpublic _ in _ class _ b Ġ= Ġ{ ĠTest Public (). b oo () Ġ+ ĠTest Public (). b oo ( 1 ) Ġ} ĊĊ Ċ class ĠTest Private Ġ{ ĊĠĠĠ Ġprivate Ġfun Ġfoo (): ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġfun Ġfoo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĊĠĠĠ Ġprivate Ġfun Ġb oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġprivate Ġfun Ġb oo ( s : ĠString ): ĠInt Ġ= Ġ 3 ĊĠĠĠ Ġprivate Ġfun Ġb oo (): ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġval Ġf Ġ= Ġ{ Ġfoo () Ġ+ Ġfoo ( 1 ) Ġ} ĊĠĠĠ Ġval Ġb Ġ= Ġ{ Ġb oo () Ġ+ Ġb oo ( 1 ) Ġ} Ċ } Ċ Ċ val Ġprivate _ in _ class _ f Ġ= ĠTest Private (). f Ċ val Ġprivate _ in _ class _ b Ġ= ĠTest Private (). b ĊĊ Ċ class ĠTest Mixed Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġfoo ( s : ĠString ): ĠInt Ġ= Ġ 3 ĊĠĠĠ Ġfun Ġfoo (): ĠInt Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġfun Ġfoo ( s : ĠString , Ġi : ĠInt ): ĠInt Ġ= Ġ 4 ĊĠĠĠ Ġfun Ġfoo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĊĠĠĠ Ġfun Ġb oo ( i : ĠInt ): ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġprivate Ġfun Ġb oo ( s : ĠString , Ġi : ĠInt ): ĠInt Ġ= Ġ 4 ĊĠĠĠ Ġpublic Ġfun Ġb oo ( s : ĠString ): ĠInt Ġ= Ġ 3 ĊĠĠĠ Ġfun Ġb oo (): ĠInt Ġ= Ġ 1 ĊĊĠĠĠ Ġval Ġf Ġ= Ġ{ Ġfoo () Ġ+ Ġfoo ( 1 ) Ġ} ĊĠĠĠ Ġval Ġb Ġ= Ġ{ Ġb oo () Ġ+ Ġb oo ( 1 ) Ġ} Ċ } Ċ Ċ val Ġmixed _ in _ class _ f Ġ= ĠTest Mixed (). f Ċ val Ġmixed _ in _ class _ b Ġ= ĠTest Mixed (). b Ċ Ċ class ĠA Ċ Ċ public Ġfun ĠA . foo (): ĠInt Ġ= Ġ 2 Ċ public Ġval ĠA . foo : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ 1 Ċ public Ġval ĠA . b oo : ĠInt ĊĠĠĠ Ġget () Ġ= Ġ 1 Ċ public Ġfun ĠA . b oo (): ĠInt Ġ= Ġ 2 Ċ Ċ val Ġpublic _ ext _ f : ĠA . () Ġ-> ĠInt Ġ= Ġ{ Ġ-> Ġthis . foo () Ġ+ Ġthis . foo Ġ} Ċ val Ġpublic _ ext _ b : ĠA . () Ġ-> ĠInt Ġ= Ġ{ Ġ-> Ġthis . b oo () Ġ+ Ġthis . b oo Ġ} Ċ Ċ interface ĠTest Public In Trait Ġ{ ĊĠĠĠ Ġpublic Ġfun Ġfoo (): ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġpublic Ġval Ġfoo : ĠInt ĊĠĠĠ Ġpublic Ġval Ġb oo : ĠInt ĊĠĠĠ Ġpublic Ġfun Ġb oo (): ĠInt Ġ= Ġ 2 Ċ } Ċ Ċ val Ġpublic _ in _ trait _ f Ġ= Ġ{ Ġobj : ĠTest Public In Trait Ġ-> Ġobj . foo () Ġ+ Ġobj . foo Ġ} Ċ val Ġpublic _ in _ trait _ b Ġ= Ġ{ Ġobj : ĠTest Public In Trait Ġ-> Ġobj . b oo () Ġ+ Ġobj . b oo Ġ} Ċ Ċ interface ĠTest Internal In Trait Ġ{ ĊĠĠĠ Ġfun Ġfoo (): ĠInt Ġ= Ġ 2 ĊĠĠĠ Ġval Ġfoo : ĠInt ĊĠĠĠ Ġval Ġb oo : ĠInt ĊĠĠĠ Ġfun Ġb oo (): ĠInt Ġ= Ġ 2 Ċ } Ċ Ċ val Ġinternal _ in _ trait _ f Ġ= Ġ{ Ġobj : ĠTest Internal In Trait Ġ-> Ġobj . foo () Ġ+ Ġobj . foo Ġ} Ċ val Ġinternal _ in _ trait _ b Ġ= Ġ{ Ġobj : ĠTest Internal In Trait Ġ-> Ġobj . b oo () Ġ+ Ġobj . b oo Ġ} Ċ Ċ // Testing Ċ Ċ fun Ġtest ( test Name : ĠString , Ġff : ĠAny , Ġfb : ĠAny ) Ġ{ ĊĠĠĠ Ġval Ġf Ġ= Ġff . toString () ĊĠĠĠ Ġval Ġb Ġ= Ġfb . toString (). replaceAll (" b oo ", Ġ" foo ") ĊĊĠĠĠ Ġif Ġ( f Ġ!= Ġb ) Ġthrow ĠException (" FAILED Ġon Ġ${ test Name } :\ n Ġf Ġ= Ġ\"$ f \"\ n Ġb Ġ= Ġ\"$ b \" ") Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġtest (" internal ", Ġinternal _ f , Ġinternal _ b ) ĊĠĠĠ Ġtest (" public ", Ġpublic _ f , Ġpublic _ b ) ĊĠĠĠ Ġtest (" private ", Ġprivate _ f , Ġprivate _ b ) ĊĠĠĠ Ġtest (" mixed ", Ġmixed _ f , Ġmixed _ b ) ĊĊĠĠĠ Ġtest (" internal _ in _ class ", Ġinternal _ in _ class _ f , Ġinternal _ in _ class _ b ) ĊĠĠĠ Ġtest (" public _ in _ class ", Ġpublic _ in _ class _ f , Ġpublic _ in _ class _ b ) ĊĠĠĠ Ġtest (" private _ in _ class ", Ġprivate _ in _ class _ f , Ġprivate _ in _ class _ b ) ĊĠĠĠ Ġtest (" mixed _ in _ class ", Ġmixed _ in _ class _ f , Ġmixed _ in _ class _ b ) ĊĊĠĠĠ Ġtest (" public _ ext _ prop ", Ġpublic _ ext _ f , Ġpublic _ ext _ b ) ĊĠĠĠ Ġtest (" public _ in _ trait ", Ġpublic _ in _ trait _ f , Ġpublic _ in _ trait _ b ) ĊĠĠĠ Ġtest (" internal _ in _ trait ", Ġinternal _ in _ trait _ f , Ġinternal _ in _ trait _ b ) ĊĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ