// Ġ! LANGUAGE : Ġ+ New Inference Ċ // Ġ! DIAG NO ST ICS : Ġ- UNUSED _ VARIABLE Ġ- ASS IGNED _ B UT _ NE VER _ ACC ES SED _ VARIABLE Ġ- UNUSED _ VALUE Ġ- UNUSED _ PARAMETER Ġ- UNUSED _ EXPRESSION Ċ // ĠSKIP _ TXT Ċ Ċ /* Ċ Ġ* ĠK OT LIN ĠDI AG NO ST ICS ĠSPEC ĠTEST Ġ( NEGATIVE ) Ċ Ġ* Ċ Ġ* ĠSPEC ĠVERSION : Ġ 0 . 1 - 2 6 8 Ċ Ġ* ĠPL ACE : Ġ Ġtype - inference , Ġsmart - casts , Ġsmart - cast - sink - st ability Ġ-> Ġparagraph Ġ 5 Ġ-> Ġsentence Ġ 1 Ċ Ġ* ĠRE LE V ANT ĠPL ACES : Ġoverload - resolution , Ġbuilding - the - overload - candidate - set - ocs , Ġoperator - call Ġ-> Ġparagraph Ġ 4 Ġ-> Ġsentence Ġ 1 Ċ Ġ* Ġoverload - resolution , Ġbuilding - the - overload - candidate - set - ocs , Ġoperator - call Ġ-> Ġparagraph Ġ 2 Ġ-> Ġsentence Ġ 1 Ċ Ġ* ĠNUMBER : Ġ 1 Ċ Ġ* ĠDESCRIPTION : Ġsmart Ġcase Ġfor Ġproperty Ġ` plus ` Ġavailable Ġthrough Ġthe Ġoperator Ġinvoke Ċ Ġ* ĠUN EXPECTED ĠBE HAV IO UR Ċ Ġ* ĠISS UES : ĠK T - 3 6 8 7 6 Ċ Ġ*/ Ċ // ĠTEST CASE ĠNUMBER : Ġ 1 Ċ class ĠCase 1 () Ġ{ ĊĊĠĠĠ Ġclass ĠE ( val Ġplus : ĠInv ? Ġ= Ġnull , Ġval Ġvalue : ĠInv ? Ġ= Ġnull ) ĊĊĠĠĠ Ġclass ĠInv () Ġ{ ĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( value : ĠInt ) Ġ= ĠCase 1 () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfoo ( e : ĠE ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( e . plus Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ Ġe Ġ<! PROPERTY _ AS _ OPERATOR , ĠUNS AFE _ OPERATOR _ CALL !> + <! > Ġ 1 Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ PROPERTY _ AS _ OPERATOR ] Ġ Ġ( ok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠProperties Ġcannot Ġbe Ġused Ġin Ġoperator Ġconventions : Ġ' invoke ' Ġin Ġ' operator Call . Case 1 . Inv ' ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ[ UN SAFE _ OPERATOR _ CALL ] Ġ Ġ( nok ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ ĠOperator Ġcall Ġcorresponds Ġto Ġa Ġdot - qualified Ġcall Ġ' e . plus ( 1 )' Ġwhich Ġis Ġnot Ġallowed Ġon Ġa Ġnullable Ġreceiver Ġ' e '. ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe Ġ<! PROPERTY _ AS _ OPERATOR , ĠUNS AFE _ OPERATOR _ CALL !> + <! > Ġ 1 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ SM ART CAST !> e . plus <! >. invoke ( 1 ) Ġ// ok ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ }