익명객체가 public function이나 public property에서 리턴되는 경우. 

익명객체의 슈퍼타입으로 동작됨. 이런경우 익명객체에 추가된멤버에 접근불가


class C {

     private fun foo() = object { val x:String = "x" }

     fun publicFoo() = object { val x:String = "x" }

     fun print() {

          print(foo().x) // Works

          print(publicFoo().x) // Error

     }

}


이게 어떻게 동작돼서 퍼블릭일땐 에러인지 설명좀

퍼블릭이 더 넓은 범위아님? 슈퍼타입으로 동작됐다는게 무슨말이지...