// Ġ! USE _ EXPERIMENT AL : Ġkotlin . Requires Opt In Ċ // Ġ! LANGUAGE : Ġ+ Opt In On Override Forbidden Ċ // ĠFILE : Ġapi . kt Ċ Ċ package Ġapi Ċ Ċ import Ġkotlin . annotation . Annotation Target .* Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ @ Target ( CLASS , ĠAN NOT ATION _ CLASS , ĠPROPERTY , ĠFIELD , ĠLOCAL _ VARIABLE , ĠVALUE _ PARAMETER , ĠCON STRUCTOR , ĠFUNCTION , ĊĠĠĠĠĠĠĠ ĠPROPERTY _ SET TER , ĠTYPE ALIAS ) Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠE 1 Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ <! EXPERIMENT AL _ AN NOT ATION _ WITH _ WRONG _ TARGET ! >@ Target ( FILE ) <! > Ċ annotation Ġclass ĠE 2 Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ <! EXPERIMENT AL _ AN NOT ATION _ WITH _ WRONG _ TARGET ! >@ Target ( EXPRESSION ) <! > Ċ <! EXPERIMENT AL _ AN NOT ATION _ WITH _ WRONG _ RET ENT ION ! >@ Retention ( Annotation Retention . SOURCE ) <! > Ċ annotation Ġclass ĠE 3 Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ <! EXPERIMENT AL _ AN NOT ATION _ WITH _ WRONG _ TARGET ! >@ Target ( TYPE _ PARAMETER ) <! > Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠE 3 A Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ <! EXPERIMENT AL _ AN NOT ATION _ WITH _ WRONG _ TARGET ! >@ Target ( TYPE ) <! > Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠE 3 B Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ @ Target ( PROPERTY _ GET TER ) Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠE 4 Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ @ Target ( PROPERTY _ SET TER ) Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠE 5 Ċ Ċ @ Requires Opt In ( level Ġ= ĠRequires Opt In . Level . WARNING ) Ċ @ Target ( PROPERTY , ĠFUNCTION , ĠPROPERTY _ SET TER , ĠVALUE _ PARAMETER , ĠFIELD , ĠLOCAL _ VARIABLE ) Ċ @ Retention ( Annotation Retention . BINARY ) Ċ annotation Ġclass ĠE 6 Ċ Ċ var Ġsome : ĠInt ĊĠĠĠ Ġ@ E 4 ĊĠĠĠ Ġget () Ġ= Ġ 4 2 ĊĠĠĠ Ġ@ E 5 ĊĠĠĠ Ġset ( value ) Ġ{} Ċ Ċ @ get : E 4 Ċ val Ġanother : ĠInt Ġ= Ġ 4 2 Ċ Ċ class ĠMy Ġ{ ĊĠĠĠ Ġ@ E 6 ĊĠĠĠ Ġoverride Ġfun ĠhashCode () Ġ= Ġ 0 Ċ } Ċ Ċ interface ĠBase Ġ{ ĊĠĠĠ Ġval Ġbar : ĠInt ĊĊĠĠĠ Ġval Ġbaz : ĠInt ĊĊĠĠĠ Ġ@ E 6 ĊĠĠĠ Ġfun Ġfoo () ĊĊĠĠĠ Ġfun ĠString . with Receiver () Ċ } Ċ Ċ class ĠDerived Ġ: ĠBase Ġ{ ĊĠĠĠ Ġ@ E 6 ĊĠĠĠ Ġoverride Ġval Ġbar : ĠInt Ġ= Ġ 4 2 ĊĊĠĠĠ Ġ@ set : E 6 Ġ@ set param : E 6 ĊĠĠĠ Ġoverride Ġvar Ġbaz : ĠInt Ġ= Ġ 1 3 ĊĊĠĠĠ Ġ@ E 6 ĊĠĠĠ Ġoverride Ġfun Ġfoo () Ġ{} ĊĊĠĠĠ Ġoverride Ġfun Ġ@ receiver : E 6 ĠString . with Receiver () Ġ{} Ċ } Ċ Ċ abstract Ġclass ĠAnother (@ param : E 6 Ġval Ġx : ĠString ) Ġ: ĠBase Ġ{ ĊĠĠĠ Ġ@ delegate : E 6 ĊĠĠĠ Ġoverride Ġval Ġbar : ĠInt Ġby Ġlazy Ġ{ Ġ 4 2 Ġ} ĊĊĠĠĠ Ġfun Ġbaz (@ E 6 Ġparam : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ E 6 Ġval Ġx Ġ= Ġparam ĊĠĠĠ Ġ} Ċ } Ċ Ċ interface ĠA Ġ{ ĊĠĠĠ Ġfun Ġf () Ċ } Ċ Ċ interface ĠB Ġ{ ĊĠĠĠ Ġ@ E 6 ĊĠĠĠ Ġfun Ġf () Ċ } Ċ Ċ interface ĠC 1 Ġ: ĠA , ĠB Ċ interface ĠC 2 Ġ: ĠB , ĠA Ċ Ċ class ĠX 1 Ġ: ĠC 1 Ġ{ ĊĠĠĠ Ġ@ E 6 Ġ// ĠOk ĊĠĠĠ Ġoverride Ġfun Ġf () Ġ{} Ċ } Ċ Ċ class ĠX 2 Ġ: ĠC 2 Ġ{ ĊĠĠĠ Ġ@ E 6 Ġ// ĠOk ĊĠĠĠ Ġoverride Ġfun Ġf () Ġ{} Ċ } Ċ Ċ open Ġclass ĠY ( val Ġb : ĠB ): ĠB Ġby Ġb Ċ Ċ class ĠZ ( b : ĠB ) Ġ: ĠY ( b ) Ġ{ ĊĠĠĠ Ġ@ E 6 ĊĠĠĠ Ġoverride Ġfun Ġf () Ġ{} Ċ }