Ошибка объявления функции при компиляции с Kotlin 12

Я унаследовал более старую кодовую базу Котлина, и попытка скомпилировать с новейшим компилятором имела много проблем. Тот, с которым мне сложно разобраться, это эти странные функции, которые висят в середине класса, без какого-либо очевидного вызова. Мне интересно, знает ли кто, что это было раньше, и что он заменил в новых версиях Котлина?

public class SomeAdapter(val friends: SomeAdapterProvider, val listener: OnItemClickedListener) : RecyclerView.Adapter<SomeAdapter.ViewHolder>() { trait OnItemClickedListener { fun onItemClicked(f: Friendship) } private inner class ViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { override fun onClick(v: View) { listener.onItemClicked(somethings[getPosition()]) } val text: TextView by inject(android.R.id.text1) val image: Picture by inject(R.id.imageview); { itemView setOnClickListener this } } { setHasStableIds(true) } } 

В частности, рассматриваемые строки – это itemView setOnClickListener this и setHasStableIds(true) , как между брекетами, просто болтающимися.

Префикс этих 2 функциональных блоков с помощью «init», см. « Префиксы для блоков инициализатора»

Как отметил @ Andrey в своем комментарии к вопросу, и вместе с ответом от @ D3xter (добавив init к блокам инициализации ), вот обновленный код (для справки):

 public class SomeAdapter(val friends: SomeAdapterProvider, val listener: OnItemClickedListener) : RecyclerView.Adapter<SomeAdapter.ViewHolder>() { trait OnItemClickedListener { fun onItemClicked(f: Friendship) } private inner class ViewHolder(v: View) : RecyclerView.ViewHolder(v), View.OnClickListener { override fun onClick(v: View) { listener.onItemClicked(somethings[getPosition()]) } val text: TextView by inject(android.R.id.text1) val image: Picture by inject(R.id.imageview); init { // FIXED here itemView setOnClickListener this } } init { // FIXED here setHasStableIds(true) } }