package Ġnet . cord a . gradle . jar filter Ċ Ċ import Ġnet . cord a . gradle . jar filter . matcher . is Constructor Ċ import Ġnet . cord a . gradle . jar filter . matcher . is Kon structor Ċ import Ġnet . cord a . gradle . jar filter . matcher . matches Ċ import Ġnet . cord a . gradle . un wanted . Has All Ċ import Ġnet . cord a . gradle . un wanted . Has Int Ċ import Ġnet . cord a . gradle . un wanted . Has Long Ċ import Ġnet . cord a . gradle . un wanted . Has String Ċ import Ġorg . hamcrest . Matcher Assert . assertThat Ċ import Ġorg . hamcrest . core . Is Equal . equalTo Ċ import Ġorg . hamcrest . core . Is Iterable Containing . has Item Ċ import Ġorg . hamcrest . core . IsNot . not Ċ import Ġorg . junit . jupiter . api . Assertions . assertEquals Ċ import Ġorg . junit . jupiter . api . Assertions . assertNotNull Ċ import Ġorg . junit . jupiter . api . Assertions . assertNull Ċ import Ġorg . junit . jupiter . api . Before All Ċ import Ġorg . junit . jupiter . api . Test Ċ import Ġorg . junit . jupiter . api . io . TempDir Ċ import Ġjava . nio . file . Path Ċ import Ġkotlin . jvm . kotlin Ċ import Ġkotlin . reflect . full . primary Constructor Ċ import Ġkotlin . test . assert Fails With Ċ Ċ class ĠDelete Constructor Test Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTRING _ PRIMARY _ CON STRUCTOR _ CLASS Ġ= Ġ" net . cord a . gradle . Primary String Constructor ToDelete " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLONG _ PRIMARY _ CON STRUCTOR _ CLASS Ġ= Ġ" net . cord a . gradle . Primary Long Constructor ToDelete " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠINT _ PRIMARY _ CON STRUCTOR _ CLASS Ġ= Ġ" net . cord a . gradle . Primary Int Constructor ToDelete " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSE COND ARY _ CON STRUCTOR _ CLASS Ġ= Ġ" net . cord a . gradle . Has Constructor ToDelete " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ VALUE _ PRIMARY _ CLASS Ġ= Ġ" net . cord a . gradle . Primary Constructor WithDefault ToDelete " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠDEFAULT _ VALUE _ SECOND ARY _ CLASS Ġ= Ġ" net . cord a . gradle . Secondary Constructor WithDefault ToDelete " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġtest Project : ĠJar Filter Project ĊĊĠĠĠĠĠĠĠ Ġ@ Before All ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġsetup (@ TempDir Ġtest Project Dir : ĠPath ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Project Ġ= ĠJar Filter Project ( test Project Dir , Ġ" delete - constructor "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Constructor With Long Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlong Constructor Ġ= Ġis Kon structor ( SECOND ARY _ CON STRUCTOR _ CLASS , ĠLong :: class ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has Long >( SECOND ARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( Long :: class . java ). newInstance ( BIG _ NUMBER ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( BIG _ NUMBER , Ġit . long Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( J ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( long Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has Long >( SECOND ARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( Long :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( J ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( long Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġmissing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Constructor With String Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Constructor Ġ= Ġis Kon structor ( SECOND ARY _ CON STRUCTOR _ CLASS , ĠString :: class ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( SECOND ARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( String :: class . java ). newInstance ( MESSAGE ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( MESSAGE , Ġit . string Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( string Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( SECOND ARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( String :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( string Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġmissing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġshow Un annotated Constructor Is Un affected () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġint Constructor Ġ= Ġis Kon structor ( SECOND ARY _ CON STRUCTOR _ CLASS , ĠInt :: class ) ĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has All >( SECOND ARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( Int :: class . java ). newInstance ( NUMBER ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( NUMBER , Ġit . int Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( NUMBER . to Long (), Ġit . long Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ("< nothing >", Ġit . string Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( Int ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( int Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġmissing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Primary Constructor With String Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Constructor Ġ= Ġis Kon structor ( STRING _ PRIMARY _ CON STRUCTOR _ CLASS , ĠString :: class ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( STRING _ PRIMARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( String :: class . java ). newInstance ( MESSAGE ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( MESSAGE , Ġit . string Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( string Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" primary Ġconstructor Ġmissing ", Ġkotlin . primary Constructor !! , Ġstring Constructor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( STRING _ PRIMARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( String :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( string Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġstill Ġexists ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Primary Constructor With Long Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlong Constructor Ġ= Ġis Kon structor ( LONG _ PRIMARY _ CON STRUCTOR _ CLASS , ĠLong :: class ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has Long >( LONG _ PRIMARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( Long :: class . java ). newInstance ( BIG _ NUMBER ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( BIG _ NUMBER , Ġit . long Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( J ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( long Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" primary Ġconstructor Ġmissing ", Ġkotlin . primary Constructor !! , Ġlong Constructor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has Long >( LONG _ PRIMARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( Long :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( J ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( long Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġstill Ġexists ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Primary Constructor With Int Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġint Constructor Ġ= Ġis Kon structor ( INT _ PRIMARY _ CON STRUCTOR _ CLASS , ĠInt :: class ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has Int >( INT _ PRIMARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( Int :: class . java ). newInstance ( NUMBER ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( NUMBER , Ġit . int Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( I ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( int Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" primary Ġconstructor Ġmissing ", Ġkotlin . primary Constructor !! , Ġint Constructor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has Int >( INT _ PRIMARY _ CON STRUCTOR _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( Int :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( I ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( int Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġstill Ġexists ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Primary Constructor WithDefault Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Constructor Ġ= Ġis Kon structor ( DEFAULT _ VALUE _ PRIMARY _ CLASS , ĠString :: class ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( DEFAULT _ VALUE _ PRIMARY _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( String :: class . java ). newInstance ( MESSAGE ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( MESSAGE , Ġit . string Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( defaultValue Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" primary Ġconstructor Ġmissing ", Ġkotlin . primary Constructor !! , ĠdefaultValue Constructor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( DEFAULT _ VALUE _ PRIMARY _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( String :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( defaultValue Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġstill Ġexists ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġdelete Secondary Constructor WithDefault Parameter () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdefaultValue Constructor Ġ= Ġis Kon structor ( DEFAULT _ VALUE _ SECOND ARY _ CLASS , ĠString :: class ) ĊĠĠĠĠĠĠĠ Ġval Ġsynthetic Secondary Constructor Ġ= Ġis Constructor ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠequalTo ( DEFAULT _ VALUE _ SECOND ARY _ CLASS ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmatches ( String :: class . java ), Ġmatches ( Integer . TYPE ), ĠequalTo (" kotlin . jvm . internal . Default Constructor Marker ") ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . source Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( DEFAULT _ VALUE _ SECOND ARY _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Declared Constructor ( String :: class . java ). newInstance ( MESSAGE ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertEquals ( MESSAGE , Ġit . string Data ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġnot Ġfound ", Ġkotlin . construct ors , Ġhas Item ( defaultValue Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" synt hetic Ġ< init >( String ) Ġis Ġmissing ", Ġconstructors . toList (), Ġhas Item ( synt hetic Secondary Constructor )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġclass Loader For ( test Project . filtered Jar ). use Ġ{ Ġcl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cl . load < Has String >( DEFAULT _ VALUE _ SECOND ARY _ CLASS )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġassert Fails With < NoSuch Method Exception > Ġ{ Ġget Declared Constructor ( String :: class . java ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ("< init >( String ) Ġstill Ġexists ", Ġkotlin . construct ors , Ġnot ( has Item ( defaultValue Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat (" synt hetic Ġ< init >( String ) Ġstill Ġexists ", Ġconstructors . toList (), Ġnot ( has Item ( synt hetic Secondary Constructor ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠassertNotNull ( kotlin . primary Constructor , Ġ" primary Ġconstructor Ġmissing ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ