// ĠOriginal Ġbug : ĠK T - 2 2 3 2 3 Ċ Ċ open Ġclass ĠA Ġ{ ĊĠĠĠ Ġfun ĠCharSequence . bar () Ġ= Ġprintln (" A . CharSequence . bar ($ this )") Ċ } Ċ class ĠB Ġ: ĠA () Ġ{ ĊĠĠĠ Ġfun ĠString . bar () Ġ= Ġprintln (" B . String . bar ($ this )") Ċ } Ċ Ċ fun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠ Ġval Ġs : ĠString Ġ= Ġ" Hello ĠWorld !" ĊĠĠĠ Ġval Ġc : ĠCharSequence Ġ= Ġs ĊĠĠĠ Ġwith ( A ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġc . bar () ĊĠĠĠĠĠĠĠ Ġs . bar () ĊĠĠĠ Ġ} ĊĠĠĠ Ġwith ( B ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġc . bar () ĊĠĠĠĠĠĠĠ Ġs . bar () Ġ// ĠThis Ġone Ġis Ġresolved Ġto Ġthe Ġfunction Ġin ĠB , Ġothers Ġare Ġresolved Ġto ĠA , Ġno Ġamb iguity ĊĠĠĠ Ġ} ĊĠĠĠ Ġc . foo () ĊĠĠĠ Ġs . foo () Ġ// ĠString Ġis Ġpicked Ġbecause Ġreceiver Ġis Ġmore Ġspecific Ġthan ĠCharSequence , Ġno Ġamb iguity Ċ } Ċ Ċ fun ĠCharSequence . foo () Ġ= Ġprintln (" CharSequence . foo ($ this )") Ċ fun ĠString . foo () Ġ= Ġprintln (" String . foo ($ this )") ĊĊ