/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ @ file : Suppress (" Un stable Api Usage ") Ċ Ċ package Ġandroidx . annotation . experimental . lint Ċ Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test File Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Files . base 6 4 gzip Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Files . java Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Files . kotlin Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Lint Result Ċ import Ġcom . android . tools . lint . checks . infrastructure . Test Lint Task . lint Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ import Ġorg . junit . runners . JUnit 4 Ċ Ċ @ RunWith ( JUnit 4 :: class ) Ċ class ĠExperimental Detector Test Ġ{ ĊĊĠĠĠ Ġprivate Ġfun Ġcheck ( var arg Ġtest Files : ĠTest File ): ĠTest Lint Result Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlint () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. files ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAND RO IDX _ EXPERIMENT AL _ KT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAND RO IDX _ USE _ EXPERIMENT AL _ KT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* test Files ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. issues (* Experimental Detector . ISS UES . to Typed Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. run () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuse Java Experimental From Java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Date Provider "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Experimental DateTime "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Experimental Location "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Location Provider "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Use Java Experimental From Java ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ src / sample / experimental / Use Java Experimental From Java . java : 2 5 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ ĠDate Provider Ġdate Provider Ġ= Ġnew ĠDate Provider (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~ Ċ src / sample / experimental / Use Java Experimental From Java . java : 2 6 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġreturn Ġdate Provider . getDate (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~ ~~~ Ċ src / sample / experimental / Use Java Experimental From Java . java : 5 3 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental Location ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental Location . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ ĠLocation Provider Ġlocation Provider Ġ= Ġnew ĠLocation Provider (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~ ~~ Ċ src / sample / experimental / Use Java Experimental From Java . java : 5 4 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental Location ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental Location . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġreturn Ġdate Provider . getDate () Ġ+ Ġlocation Provider . getLocation (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ ~~~ Ċ 4 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġcheck (* input ). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuse Java Experimental From Kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Date Provider "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Experimental DateTime "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Experimental Location "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Location Provider "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Use Java Experimental From Kt ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ src / sample / experimental / Use Java Experimental From Kt . kt : 2 9 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġval Ġdate Provider Ġ= ĠDate Provider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~ Ċ src / sample / experimental / Use Java Experimental From Kt . kt : 3 0 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġreturn Ġdate Provider . date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~ Ċ src / sample / experimental / Use Java Experimental From Kt . kt : 5 7 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental Location ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental Location . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġval Ġlocation Provider Ġ= ĠLocation Provider () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ Ċ src / sample / experimental / Use Java Experimental From Kt . kt : 5 8 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental Location ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental Location . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġreturn Ġdate Provider . date Ġ+ Ġlocation Provider . location ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ Ċ 4 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġcheck (* input ). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuse Kt Experimental From Java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEX PERIMENT AL _ KT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Date Provider Kt "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Time Provider Kt "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Experimental DateTime Kt "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Experimental Location Kt "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Location Provider Kt "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Experimental DateTime "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Use Kt Experimental From Java ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ src / sample / experimental / Use Kt Experimental From Java . java : 2 5 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġsample . experimental . Date Provider Kt Ġdate Provider Ġ= Ġnew Ġsample . experimental . Date Provider Kt (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 2 6 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġreturn Ġdate Provider . getDate (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~ ~~~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 5 4 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental Location Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental Location Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ ĠLocation Provider Kt Ġlocation Provider Ġ= Ġnew ĠLocation Provider Kt (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~~~~~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 5 5 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental Location Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental Location Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġreturn Ġdate Provider . getDate () Ġ+ Ġlocation Provider . getLocation (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ ~~~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 8 8 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ ĠTime Provider Kt . getTime Static ally (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 8 9 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ ĠTime Provider Kt . Companion . getTime Static ally (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 9 6 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime Kt ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime Kt . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġnew ĠTime Provider Kt (). getTime (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~ ~~~ Ċ src / sample / experimental / Use Kt Experimental From Java . java : 9 7 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . Experimental DateTime ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . Experimental DateTime . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġnew ĠTime Provider Kt (). getTime Java (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ ~~~ Ċ 8 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġcheck (* input ). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuse Java Package From Java () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSAMPLE _ FOO _ PACKAGE _ INFO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . foo . Bar "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . foo . Experimental Package "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . Use Java Package From Java ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ src / sample / experimental / Use Java Package From Java . java : 2 8 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . foo . Experimental Package ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . foo . Experimental Package . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ ĠBar Ġbar Ġ= Ġnew ĠBar (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~~~~~~ ~ Ċ src / sample / experimental / Use Java Package From Java . java : 2 9 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . foo . Experimental Package ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . foo . Experimental Package . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġbar . baz (); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~ Ċ src / sample / experimental / Use Java Package From Java . java : 5 2 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . foo . Experimental Package ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . foo . Experimental Package . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġcall Package Experimental (); ĊĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~ ~~~ Ċ 3 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġcheck (* input ). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġuse Java Package From Kt () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSAMPLE _ FOO _ PACKAGE _ INFO , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . foo . Bar "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Sample (" sample . experimental . foo . Experimental Package "), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkt Sample (" sample . experimental . Use Java Package From Kt ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= Ġ""" Ċ src / sample / experimental / Use Java Package From Kt . kt : 3 2 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . foo . Experimental Package ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . foo . Experimental Package . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġval Ġbar Ġ= ĠBar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~ Ċ src / sample / experimental / Use Java Package From Kt . kt : 3 3 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . foo . Experimental Package ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . foo . Experimental Package . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġbar . baz () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ~~~ Ċ src / sample / experimental / Use Java Package From Kt . kt : 5 6 : ĠError : ĠThis Ġdeclaration Ġis Ġopt - in Ġand Ġits Ġusage Ġshould Ġbe Ġmarked Ġwith Ċ ' @ sample . experimental . foo . Experimental Package ' Ġor Ġ'@ Opt In ( marker Class Ġ= Ġsample . experimental . foo . Experimental Package . class )' Ġ[ Unsafe Opt In Usage Error ] ĊĠĠĠĠĠĠĠ Ġcall Package Experimental () ĊĠĠĠĠĠĠĠ Ġ ~~~~~~~~~~~~~~~~ ~~~~ ~~~ Ċ 3 Ġerrors , Ġ 0 Ġwarnings ĊĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġcheck (* input ). expect ( expected ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġa Ġ[ Test File ] Ġfrom ĠJava Ġsource Ġcode Ġincluded Ġin Ġthe ĠJ AR Ġresources . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġjava Sample ( className : ĠString ): ĠTest File Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjava ( java Class . getResource ("/ java /${ className . replace ('. ',' /') }. java "). read Text ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠLoads Ġa Ġ[ Test File ] Ġfrom ĠKotlin Ġsource Ġcode Ġincluded Ġin Ġthe ĠJ AR Ġresources . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġkt Sample ( className : ĠString ): ĠTest File Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġkotlin ( java Class . getResource ("/ java /${ className . replace ('. ',' /') }. kt "). read Text ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/* Ġk tl int - disable Ġmax - line - length Ġ*/ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ Test File ] Ġcontaining ĠExperimental . kt Ġfrom Ġthe Ġexperimental Ġannotation Ġlibrary . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġis Ġa Ġworkaround Ġfor ĠIntelliJ Ġfailing Ġto Ġrecognize Ġsource Ġfiles Ġif Ġthey Ġare Ġalso ĊĠĠĠĠĠĠĠĠ Ġ* Ġincluded Ġas Ġresources . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠAND RO IDX _ EXPERIMENT AL _ KT : ĠTest File Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroidx . annotation . experimental ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Retention ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Target ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( Annotation Retention . BINARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ( Annotation Target . AN NOT ATION _ CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠExperimental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlevel : ĠLevel Ġ= ĠLevel . ERROR ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenum Ġclass ĠLevel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWARNING , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠERROR ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ Test File ] Ġcontaining ĠUse Experimental . kt Ġfrom Ġthe Ġexperimental Ġannotation Ġlibrary . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġis Ġa Ġworkaround Ġfor ĠIntelliJ Ġfailing Ġto Ġrecognize Ġsource Ġfiles Ġif Ġthey Ġare Ġalso ĊĠĠĠĠĠĠĠĠ Ġ* Ġincluded Ġas Ġresources . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠAND RO IDX _ USE _ EXPERIMENT AL _ KT : ĠTest File Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġandroidx . annotation . experimental ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Retention ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Target ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . reflect . K Class ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( Annotation Retention . BINARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . CLASS , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . PROPERTY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . LOCAL _ VARIABLE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . VALUE _ PARAMETER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . CON STRUCTOR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . FUNCTION , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . PROPERTY _ GET TER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . PROPERTY _ SET TER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . FILE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAnnotation Target . TYPE ALIAS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġannotation Ġclass ĠUse Experimental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġval Ġmarker Class : ĠK Class < out ĠAnnotation > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ Test File ] Ġcontaining ĠExperimental . kt Ġfrom Ġthe ĠKotlin Ġstandard Ġlibrary . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġis Ġa Ġworkaround Ġfor Ġthe ĠKotlin Ġstandard Ġlibrary Ġused Ġby Ġthe ĠL int Ġtest Ġh arness Ġnot ĊĠĠĠĠĠĠĠĠ Ġ* Ġincluding Ġthe ĠExperimental Ġannotation Ġby Ġdefault . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠEX PERIMENT AL _ KT : ĠTest File Ġ= Ġkotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Ġkotlin ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Annotation Retention . BINARY ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Annotation Retention . SOURCE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . annotation . Annotation Target .* ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . internal . Require Kotlin ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . internal . Require Kotlin Version Kind ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimport Ġkotlin . reflect . K Class ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ( AN NOT ATION _ CLASS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( BINARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Since Kotlin (" 1 . 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Require Kotlin (" 1 . 2 . 5 0 ", Ġversion Kind Ġ= ĠRequire Kotlin Version Kind . COMPILER _ VERSION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" AN NOT ATION _ CLASS _ MEMBER ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġannotation Ġclass ĠExperimental ( val Ġlevel : ĠLevel Ġ= ĠLevel . ERROR ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġenum Ġclass ĠLevel Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWARNING , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠERROR , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCLASS , ĠPROPERTY , ĠLOCAL _ VARIABLE , ĠVALUE _ PARAMETER , ĠCON STRUCTOR , ĠFUNCTION , ĠPROPERTY _ GET TER , ĠPROPERTY _ SET TER , ĠEXPRESS ION , ĠFILE , ĠTYPE ALIAS ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( SOURCE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Since Kotlin (" 1 . 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Require Kotlin (" 1 . 2 . 5 0 ", Ġversion Kind Ġ= ĠRequire Kotlin Version Kind . COMPILER _ VERSION ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġannotation Ġclass ĠUse Experimental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġval Ġmarker Class : ĠK Class < out ĠAnnotation > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Target ( CLASS , ĠPROPERTY , ĠCON STRUCTOR , ĠFUNCTION , ĠTYPE ALIAS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Retention ( BINARY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġannotation Ġclass ĠWas Experimental ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar arg Ġval Ġmarker Class : ĠK Class < out ĠAnnotation > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġ[ Test File ] Ġcontaining Ġthe Ġpackage - level Ġannotation Ġfor Ġthe Ġsample . experimental . foo Ġpackage . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġis Ġa Ġworkaround Ġfor Ġb / 1 3 6 1 8 4 9 8 7 Ġwhere Ġpackage - level Ġannotations Ġcannot Ġbe Ġloaded ĊĠĠĠĠĠĠĠĠ Ġ* Ġfrom Ġsource Ġcode . ĠThis Ġis Ġgenerated Ġfrom Ġa Ġsingle - class ĠJ AR Ġusing Ġto Base 6 4 gzip ( File ). ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠTo Ġre - generate Ġthis : ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 1 . Ġ./ gradle w Ġ: annotation : annotation - experimental - lint - integration - tests : assemble ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 2 . Ġmkdir Ġ- p Ġtemp / sample / experimental / foo / ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 3 . Ġcp Ġ../../ out / android x / annotation / annotation - experimental - lint - integration - tests / build / inter medi ates / javac / debug / classes / sample / experimental / foo / package - info . class Ġtemp / sample / experimental / foo / ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 4 . Ġjar Ġ- c Ġ- f Ġsample . experimental . foo . package - info . jar Ġ- C Ġtemp Ġ. Ġ| Ġopenssl Ġbase 6 4 Ġ< Ġsample . experimental . foo . package - info . jar Ġ| Ġtr Ġ- d Ġ'\ n ' Ġ| Ġpb copy ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 5 . Ġrm Ġ- rf Ġtemp Ġsample . experimental . foo . package - info . jar ĊĠĠĠĠĠĠĠĠ Ġ* Ġ 6 . ĠP aste Ġhere ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġval ĠSAMPLE _ FOO _ PACKAGE _ INFO : ĠTest File Ġ= Ġbase 6 4 gzip ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" libs / sample . experimental . foo . package - info . jar ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" UE s DB BQ AC Ag I AG hi / V AAAAAAAAAAAAAAAA AJ AA Q AT UV U QS 1 JT k Y v / so AAA MA UE s HC AAAA AAC AAAAAAAA AF BL Aw QU AA g IC AB o Y v 1 Q AAAAAAAAAAAAAAAA FA AA AE 1 F VE Et SU 5 GL 0 1 BT kl GR VN UL k 1 G 8 0 3 My 0 x LL S 7 R DU st Ks 7 Mz 7 NS MN Qz 4 O Vy L kp N LE l N 0 X Wq BA o AR f RM F DT 8 ix KT c 1 IV n POL Cv K LE ku A ij V 5 u Xi 5 AF BL B wi VB ram Q AAAA EI AA AB Q Sw ME Cg AAC AA AE 2 L 9 U AAAAAAAAAAAAAAAA Ac AA AB z YW 1 wb GU v UE s DB Ao AA Ag AAB Ni / V AAAAAAAAAAAAAAAA AU AAA Ac 2 F tc G xl L 2 V 4 c GV ya W 1 l bn R hb C 9 Q Sw ME Cg AAC AA AG WL 9 U AAAAAAAA AAAA AAA AB g AA AB z YW 1 wb GU v ZX hw ZXJ pb WV ud GF s L 2 Zv by 9 Q Sw ME FA A ICAg AG WL 9 U AAAAAAAA AAAA AAA AC o AA AB z YW 1 wb GU v ZX hw ZXJ pb WV ud GF s L 2 Zv by 9 wYWNrYWdl LW lu Zm 8 u Y 2 x hc 3 N 1 Tb 0 O gk AY 6 / k D 6 q S Li 6 sr 3 u Lm 5 KC Ji Yl Gn + Ag H + Tw + I 7 AQ X w 2 Bx / A hz Ki LC x 2 a JO 2 a V / v xx P AG m Mf vo + Rw OR qq y K iv TY k MM t Vd FM JB Zp ju 0 p Vr QQ Wl 4 qd zu j At S 5 1 aG j Lb J 1 y 2 n Ip EB x L le WG JN 1 z K po a O 2 Vk b K 3 cd Y xz O 7 s RW P 6 rd 5 8 F pt 9 va RQ n 8 h Sm FL k 5 IN BD ix 7 6 Px 5 g 2 Kj X JB 7 w AV BL B wj Ut jr Ho Q AA AN s AA AB Q Sw EC FA AU AA g IC AB o Y v 1 Q AAAAAA I AAAAAAAA AC Q AE AAAAAAAAAAAAAAAA AAA AT UV U QS 1 JT k Y v / so AA F BL AQ IU AB Q AC Ag I AG hi / V CV B ram Q AAAA EI AAAA U AAAAAAAAAAAAAAAA AD 0 AA AB NR VR BL Ul OR i 9 N QU 5 JR k VT VC 5 NR l BL AQ IK AA o AA Ag AAB Ni / V AAAAAAAAAAAAAAAA AH AAAAAAAAAAAAAAAA AL 8 AA AB z YW 1 wb GU v UE s BA go AC g AAC AA AE 2 L 9 U AAAAAAAA AAAA AAA AB Q AAAAAAAAAAAAAAAA A 5 AAAA HN hb XB s ZS 9 le H Bl c ml t ZW 5 0 YW wv UE s BA go AC g AAC AA AG WL 9 U AAAAAAAA AAAA AAA AB g AAAAAAAAAAAAAAAA AF g E AA HN hb XB s ZS 9 le H Bl c ml t ZW 5 0 YW wv Zm 9 v L 1 BL AQ IU AB Q AC Ag IAB li / V DU t jr Ho Q AA AN s AAAA q AAAAAAAAAAAAAAAA AE w BA AB z YW 1 wb GU v ZX hw ZXJ pb WV ud GF s L 2 Zv by 9 wYWNrYWdl LW lu Zm 8 u Y 2 x hc 3 NQ Sw UG AAAAAA Y AB g C SA QA AR QI AAAA A " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/* Ġk tl int - enable Ġmax - line - length Ġ*/ Ċ } Ċ