// KT - 7 0 2 ĠType Ġinference Ġfailed Ċ package Ġa Ċ //+ JDK Ċ Ċ fun Ġ< T > Ġget Java Class () Ġ: Ġjava . lang . Class < T > Ġ{ Ġ<! NO _ RETURN _ IN _ FUNCTION _ WITH _ BLOCK _ BODY ! >} <! > Ċ Ċ public Ġclass ĠThrow ables () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġ< X Ġ: ĠThrowable ?> Ġpropagate If InstanceOf ( throwable Ġ: ĠThrowable ?, Ġdeclared Type Ġ: ĠClass < X ?> ?) Ġ: ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ((( throwable Ġ!= Ġnull ) Ġ&& Ġdeclared Type ?. is Instance ( throwable ) !! )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġdeclared Type ?. cast ( throwable ) !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġpublic Ġfun Ġpropagate If Possible ( throwable Ġ: ĠThrowable ?) Ġ: ĠUnit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpropagate If InstanceOf ( throwable , Ġget Java Class < Error ?> ()) Ġ// ĠType Ġinference Ġfailed : ĠMis match Ġwhile Ġexpand ing Ġconstraints ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpropagate If InstanceOf ( throwable , Ġget Java Class < RuntimeException ?> ()) Ġ// ĠType Ġinference Ġfailed : ĠMis match Ġwhile Ġexpand ing Ġconstraints ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ