Вы можете сделать это, но вы должны также ввести Bar
в контекст как получатель вместе со ссылкой на someFoo.foo
, в противном случае вы говорите, что Bar
имеет свойство foo
, которого нет , В его пределах (и его экземпляре) есть расширение Foo.foo
. Поэтому измените свою последнюю строку с:
fun Foo.bar() = Bar.foo
до:
fun Foo.bar() = with (Bar) { foo }
что концептуально это:
fun Foo.bar() = with (Bar) { this@bar.foo }
Таким образом, мы используем with
, чтобы сложить получатель Bar
под Foo
получателем экземпляра this@bar
и получить доступ к свойству foo
.