/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġgradle build . binary compatibility Ċ Ċ import Ġorg . junit . Test ĊĊ Ċ /** Ċ Ġ* ĠAssert s ĠKotlin Ġ` internal ` Ġmembers Ġare Ġfiltered Ġfrom Ġthe Ġcomparison . Ċ Ġ*/ Ċ class ĠKotlin Internal Filtering Test Ġ: ĠAbstract Binary Compatibility Test () Ġ{ ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġinternal Members Ġ= Ġ""" ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun Ġfoo () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġbar Ġ= Ġ" bar " ĊĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġbaz ar Ġ= Ġ" baz ar " ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠString . foo Ext () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġfun ĠInt . foo Ext () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval ĠString . bar Ext : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" bar " ĊĊĠĠĠĠĠĠĠ Ġinternal Ġvar ĠInt . baz ar Ext : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" bar " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ= ĠUnit ĊĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġpublic Members Ġ= Ġ""" ĊĊĠĠĠĠĠĠĠ Ġfun Ġfoo () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġval Ġbar Ġ= Ġ" bar " ĊĊĠĠĠĠĠĠĠ Ġvar Ġbaz ar Ġ= Ġ" baz ar " ĊĊĠĠĠĠĠĠĠ Ġfun ĠString . foo Ext () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġfun ĠInt . foo Ext () Ġ{} ĊĊĠĠĠĠĠĠĠ Ġval ĠString . bar Ext : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" bar " ĊĊĠĠĠĠĠĠĠ Ġvar ĠInt . baz ar Ext : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" bar " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ= ĠUnit ĊĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġexisting Source Ġ= Ġ""" ĊĊĠĠĠĠĠĠĠ Ġclass ĠExisting Class Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠExisting Nested Class ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġval Turn ed Into Var : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġtype alias ĠExisting Type Alias Ġ= ĠString ĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġinternal Source Ġ= Ġ""" ĊĊĠĠĠĠĠĠĠ Ġ$ internal Members ĊĊĠĠĠĠĠĠĠ Ġclass ĠExisting Class () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġconstructor ( bar : ĠString ) Ġ: Ġthis () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ internal Members ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠExisting Nested Class Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ internal Members ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtype alias ĠExisting Type Alias Ġ= ĠString ĊĊĠĠĠĠĠĠĠ Ġvar Ġval Turn ed Into Var : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinternal Ġset ( value ) Ġ= ĠUnit ĊĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval Ġcat hed ral Ġ= Ġ" cat hed ral " ĊĊĠĠĠĠĠĠĠ Ġinternal Ġclass ĠAdded Class () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstructor ( bar : ĠExisting Type Alias ) Ġ: Ġthis () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġobject ĠAdded Object Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconst Ġval Ġcat hed ral Ġ= Ġ" cat hed ral " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinternal Ġenum Ġclass ĠAdded Enum Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF OO ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġpublic Source Ġ= Ġ""" ĊĊĠĠĠĠĠĠĠ Ġ$ public Members ĊĊĠĠĠĠĠĠĠ Ġclass ĠExisting Class () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstructor ( bar : ĠString ) Ġ: Ġthis () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġclass ĠExisting Nested Class Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtype alias ĠExisting Type Alias Ġ= ĠString ĊĊĠĠĠĠĠĠĠ Ġvar Ġval Turn ed Into Var : ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ= ĠUnit ĊĊĠĠĠĠĠĠĠ Ġconst Ġval Ġcat hed ral Ġ= Ġ" cat hed ral " ĊĊĠĠĠĠĠĠĠ Ġclass ĠAdded Class () Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstructor ( bar : ĠExisting Type Alias ) Ġ: Ġthis () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġobject ĠAdded Object Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconst Ġval Ġcat hed ral Ġ= Ġ" cat hed ral " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠAdded Enum Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠF OO ; ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ$ public Members ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ""" ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` added Ġinternal Ġmembers Ġare Ġfiltered Ġfrom Ġthe Ġcomparison `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcheck Binary Compatible Kotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 1 Ġ= Ġexisting Source , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 2 Ġ= Ġinternal Source ĊĠĠĠĠĠĠĠ Ġ). assert Empty Report () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` existing Ġinternal Ġmembers Ġmade Ġpublic Ġappear Ġas Ġadded `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcheck Not Binary Compatible Kotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 1 Ġ= Ġinternal Source , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 2 Ġ= Ġpublic Source ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Has Errors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* reported Members . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadded ( it . first , Ġit . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Has No Warning () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Has No Information () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġ` existing Ġpublic Ġmembers Ġmade Ġinternal Ġappear Ġas Ġremoved `() Ġ{ ĊĊĠĠĠĠĠĠĠ Ġcheck Not Binary Compatible Kotlin ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 1 Ġ= Ġpublic Source , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv 2 Ġ= Ġinternal Source ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Has Errors ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* reported Members . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġremoved ( it . first , Ġit . second ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}. to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Has No Warning () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassert Has No Information () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġval Ġreported Members Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" Class " Ġto Ġ" Added Class " ĊĠĠĠ Ġ) Ġ+ Ġreported Members For (" Added Class ") Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" Constructor " Ġto Ġ" Added Class ( java . lang . String )", ĊĠĠĠĠĠĠĠ Ġ" Constructor " Ġto Ġ" Added Class ()", ĊĠĠĠĠĠĠĠ Ġ" Class " Ġto Ġ" Added Enum ", ĊĠĠĠĠĠĠĠ Ġ" Field " Ġto Ġ" FOO " ĊĠĠĠ Ġ) Ġ+ Ġreported Members For (" Added Enum ") Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ" Added Enum . valueOf ( java . lang . String )", ĊĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ" Added Enum . values ()", ĊĠĠĠĠĠĠĠ Ġ" Class " Ġto Ġ" Added Object ", ĊĠĠĠĠĠĠĠ Ġ" Field " Ġto Ġ" INSTANCE ", ĊĠĠĠĠĠĠĠ Ġ" Field " Ġto Ġ" cat hed ral " ĊĠĠĠ Ġ) Ġ+ Ġreported Members For (" Added Object ") Ġ+ Ġreported Members For (" Existing Class ") Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" Constructor " Ġto Ġ" Existing Class ( java . lang . String )" ĊĠĠĠ Ġ) Ġ+ Ġreported Members For (" Existing Class ${ '$ '} Existing Nested Class ") Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" Field " Ġto Ġ" cat hed ral " ĊĠĠĠ Ġ) Ġ+ Ġreported Members For (" Source Kt ") Ġ+ ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ" Source Kt . set Val Turn ed Into Var ( java . lang . String )" ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate ĊĠĠĠ Ġfun Ġreported Members For ( containing Type : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . foo ()", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . foo Ext ( java . lang . String )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . foo Ext ( int )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . get Bar ()", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . get Bar Ext ( java . lang . String )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . getB azar ()", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . getB azar Ext ( int )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . set B azar ( java . lang . String )", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Method " Ġto Ġ"$ containing Type . set B azar Ext ( int , java . lang . String )" ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ