// Ġ! DIAG NO ST ICS : Ġ- UNUSED _ PARAMETER Ċ // ĠNI _ EXPECTED _ FILE Ċ Ċ interface ĠBase Ġ{ ĊĠĠĠ Ġfun Ġbase () Ġ{} Ċ } Ċ interface ĠBase 2 Ċ interface ĠOne Ġ: ĠBase , ĠBase 2 Ċ interface ĠTwo Ġ: ĠBase , ĠBase 2 Ċ Ċ object ĠO 1 Ġ: ĠOne Ċ object ĠO 2 Ġ: ĠTwo Ċ Ċ fun Ġ< S > Ġintersect ( var arg Ġelements : ĠS ): ĠS Ġ= ĠTODO () Ċ Ċ fun Ġintersect After Smart Cast ( arg : ĠBase , Ġarg 2 : ĠBase ) Ġ= Ġintersect ( ĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( arg Ġ! is ĠOne ) Ġthrow ĠException () ĊĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ SM ART CAST !> arg <! > ĊĠĠĠ Ġ}, ĊĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( arg 2 Ġ! is ĠTwo ) Ġthrow ĠException () ĊĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ SM ART CAST !> arg 2 <! > ĊĠĠĠ Ġ} Ċ ) Ċ Ċ fun Ġ< S > Ġarg Or Fn ( arg : ĠS , Ġfn : Ġ() Ġ-> ĠS ): ĠS Ġ= ĠTODO () Ċ Ċ fun Ġintersect Arg With Smart Cast From Lambda ( arg : ĠOne , Ġarg 2 : ĠBase ) Ġ= Ġarg Or Fn ( arg ) Ġ{ ĊĠĠĠ Ġif Ġ( arg 2 Ġ! is ĠTwo ) Ġthrow ĠException () ĊĠĠĠ Ġarg 2 Ċ } Ċ Ċ fun Ġtest () Ġ{ ĊĠĠĠ Ġintersect After Smart Cast ( O 1 , ĠO 2 ). <! UN RESOL VED _ REFERENCE !> base <! >() ĊĠĠĠ Ġintersect Arg With Smart Cast From Lambda ( O 1 , ĠO 2 ). <! UN RESOL VED _ REFERENCE !> base <! >() Ċ } Ċ