// ĠOriginal Ġbug : ĠK T - 1 7 7 4 9 ĊĊĊ Ċ fun Ġcheck Inheritance () Ġ{ ĊĠĠĠ Ġval Ġwidget Ġ= ĠSon () ĊĠĠĠ Ġwidget . child . trigger () Ċ } Ċ Ċ private Ġtype alias ĠListener Ġ= Ġ() Ġ-> ĠUnit ĊĊ Ċ private Ġclass ĠObservable Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlisteners Ġ= Ġmutable ListOf < Listener >() ĊĠĠĠ Ġfun Ġon ( listener : ĠListener ) Ġ= Ġlisteners . add ( listener ) ĊĠĠĠ Ġfun Ġfire () Ġ= Ġlisteners . forEach Ġ{ Ġit () Ġ} Ċ } Ċ Ċ private Ġopen Ġclass ĠBasic Ġ{ ĊĊĠĠĠ Ġval Ġobservable Ġ= ĠObservable () ĊĊĠĠĠ Ġopen Ġfun Ġtrigger () Ġ{ ĊĠĠĠĠĠĠĠ Ġobservable . fire () ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġclass ĠSon Ġ: ĠF ather () Ġ{ ĊĊĠĠĠ Ġval Ġchild Ġ= ĠBasic (). also Ġ{ Ġadd ( it ) Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Something Private () Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠException (" this Ġmust Ġnot Ġbe Ġcalled !") ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ private Ġopen Ġclass ĠF ather Ġ: ĠBasic () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġon Child Event Ġ= Ġ{ Ġtrigger (); Ġdo Something Private () Ġ} ĊĊĠĠĠ Ġfun Ġadd ( child : ĠBasic ) Ġ{ ĊĠĠĠĠĠĠĠ Ġchild . observable . on ( on Child Event ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Something Private () Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" this Ġis Ġexpected Ġto Ġbe Ġcalled !") ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ