// Ġ! LANGUAGE : Ġ+ New Inference Ċ // Ġ! DIAG NO ST ICS : Ġ- UNUSED _ PARAMETER Ġ- UN RESOL VED _ REFERENCE Ġ- UN RE ACH ABLE _ CODE Ċ // ĠSKIP _ TXT Ċ Ċ /* Ċ Ġ* ĠK OT LIN ĠDI AG NO ST ICS ĠSPEC ĠTEST Ġ( POSITIVE ) Ċ Ġ* Ċ Ġ* ĠSPEC ĠVERSION : Ġ 0 . 1 - 5 4 4 Ċ Ġ* ĠMAIN ĠLINK : Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration , Ġconstructor - declaration Ġ-> Ġparagraph Ġ 5 Ġ-> Ġsentence Ġ 2 Ċ Ġ* ĠPRIMARY ĠLIN KS : Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration , Ġconstructor - declaration Ġ-> Ġparagraph Ġ 4 Ġ-> Ġsentence Ġ 1 Ċ Ġ* Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration Ġ-> Ġparagraph Ġ 1 Ġ-> Ġsentence Ġ 1 Ċ Ġ* Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration , Ġconstructor - declaration Ġ-> Ġparagraph Ġ 2 Ġ-> Ġsentence Ġ 1 Ċ Ġ* Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration , Ġconstructor - declaration Ġ-> Ġparagraph Ġ 6 Ġ-> Ġsentence Ġ 1 Ċ Ġ* ĠSE COND ARY ĠLIN KS : Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration Ġ-> Ġparagraph Ġ 2 Ġ-> Ġsentence Ġ 2 Ċ Ġ* Ġdeclarations , Ġclassifier - declaration , Ġclass - declaration Ġ-> Ġparagraph Ġ 2 Ġ-> Ġsentence Ġ 6 Ċ Ġ* ĠNUMBER : Ġ 3 Ċ Ġ* ĠDESCRIPTION : ĠPrimary Ġconstructor Ġfor Ġinner Ġclass Ġwith Ġmutable Ġproperty Ġconstructor Ġparameter Ċ Ġ* ĠHEL PER S : Ġcheck Type Ċ Ġ*/ Ċ Ċ // ĠTEST CASE ĠNUMBER : Ġ 1 Ċ class ĠCase 1 Ġ{ ĊĠĠĠ Ġinner Ġclass ĠA ( val Ġx : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Any ?> () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Any ?") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Any ?> () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Any ?") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠB ( val Ġx : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Any >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Any ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Any >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Any ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠC ( val Ġx : Ġ() Ġ-> ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < () Ġ-> ĠAny >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" () Ġ-> Ġkotlin . Any ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < () Ġ-> ĠAny >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" () Ġ-> Ġkotlin . Any ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠD ( val Ġx : ĠEnum <* >) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Enum <* >>() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Enum < *> ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Enum <* >>() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Enum < *> ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠE ( val Ġx : ĠNothing ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Nothing >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Nothing ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < Nothing >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" kotlin . Nothing ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠF < T >( val Ġx : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < T >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" T ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġtest () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġx Ġcheck Type Ġ{ Ġcheck < T >() Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ<! DEBUG _ INFO _ EXPRESSION _ TYPE (" T ") !> x <! > ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ // ĠTEST CASE ĠNUMBER : Ġ 2 Ċ class ĠCase 2 < T >() Ġ{ ĊĠĠĠ Ġinner Ġclass ĠA ( val Ġx : ĠAny ?, Ġt : ĠT ) ĊĠĠĠ Ġinner Ġclass ĠB ( val Ġx : ĠT ) ĊĠĠĠ Ġinner Ġclass ĠC ( val Ġc : Ġ() Ġ-> ĠT ) ĊĠĠĠ Ġinner Ġclass ĠD < T Ġ: ĠEnum < *> >( val Ġe : ĠT ) ĊĠĠĠ Ġinner Ġclass ĠE ( val Ġn : ĠNothing , Ġval Ġt : ĠT ) ĊĠĠĠ Ġinner Ġclass ĠF < T >( val Ġt : ĠT ) Ċ } ĊĊ