// Ġ! LANGUAGE : Ġ+ Strict Java Null ability Assertions Ċ // ĠTARGET _ BACKEND : ĠJVM Ċ // ĠIG NORE _ BACKEND : ĠJVM , ĠJVM _ IR Ċ // ĠWITH _ RUNTIME Ċ Ċ // ĠNote : ĠThis Ġfails Ġon ĠJVM Ġ( non - IR ) Ġwith Ġ" Fail : Ġshould Ġthrow Ġon Ġget () ". ĠThe Ġnot - null Ġassertion Ġis Ġnot Ġgenerated Ġwhen Ġassigning Ġto Ġthe Ċ // Ġvariables Ġin Ġthe Ġdestruct uring Ġdeclaration . ĠThe Ġroot Ġcause Ġseems Ġto Ġbe Ġthat Ċ // ĠCode gen Annot ating Visitor / Runtime Assertions On Declaration Body Checker Ġdo Ġnot Ġanalyze Ġthe Ġneed Ġfor Ġnot - null Ġassertions Ġon Ċ // ĠK t Dest ruct uring Declarations Ġand Ġtheir Ġentries . Ċ Ċ // ĠNote : Ġthis Ġfails Ġon ĠJVM _ IR Ġbecause Ġof ĠK T - 3 6 3 4 7 . Ċ // ĠIt Ġrequires Ġpotentially Ġbreaking Ġchanges Ġin ĠFE , Ġso Ġplease , Ġdon 't Ġtouch Ġit Ġuntil Ġthe Ġlanguage Ġdesign Ġdecision . Ċ Ċ // ĠFILE : Ġbox . kt Ċ import Ġkotlin . test .* Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġ// ĠSan ity Ġcheck Ġto Ġmake Ġsure Ġthere ĠIS Ġan Ġexception Ġeven Ġwhen Ġnot Ġin Ġa Ġfor - loop ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ( index , Ġi ) Ġ= ĠJ Impl (). array Of NotNull (). with Index (). first () ĊĠĠĠĠĠĠĠ Ġreturn Ġ" Fail : Ġshould Ġthrow Ġon Ġget ()" ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠNullPointerException ) Ġ{} ĊĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ(( index , Ġi ) Ġin ĠJ Impl (). array Of NotNull (). with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Fail : Ġshould Ġthrow Ġon Ġget () Ġin Ġloop Ġheader " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcatch Ġ( e : ĠNullPointerException ) Ġ{} ĊĠĠĠ Ġreturn Ġ" OK " Ċ } Ċ Ċ interface ĠJ Ġ{ ĊĠĠĠ Ġfun ĠarrayOf NotNull (): ĠArray < Int > Ċ } Ċ Ċ // ĠFILE : ĠJ Impl . java Ċ public Ġclass ĠJ Impl Ġimplements ĠJ Ġ{ ĊĠĠĠ Ġ// ĠThe Ġonly Ġway Ġto Ġget Ġ@ Enhanced Null ability Ġon Ġthe Ġarray Ġelement Ġtype Ġ( Int ) Ġis Ġto Ġoverride Ġa ĠKotlin Ġfunction Ġthat ĊĠĠĠ Ġ// Ġreturns Ġ` Array < Int >` Ġ( where ĠInt Ġis Ġnot Ġnullable ). Ġ`@ NotNull ĠInteger [] ` Ġmakes Ġthe Ġarray Ġnot Ġnullable , Ġnot ĠString . ĊĠĠĠ Ġ@ Override ĊĠĠĠ Ġpublic ĠInteger [] ĠarrayOf NotNull () Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnew ĠInteger [] Ġ{ Ġnull Ġ}; ĊĠĠĠ Ġ} Ċ } Ċ