Back to Intellij Community

LeakingThis

plugins/kotlin/code-insight/descriptions/resources-en/inspectionDescriptions/LeakingThis.html

2025.3-rc-2737 B
Original Source

Reports unsafe operations with this during object construction including:

  • Accessing a non-final property during class initialization: from a constructor or property initialization
  • Calling a non-final function during class initialization
  • Using this as a function argument in a constructor of a non-final class

If other classes inherit from the given class, they may not be fully initialized at the moment when an unsafe operation is carried out.

Example:

abstract class Base {
      val code = calculate()
      abstract fun calculate(): Int
  }

  class Derived(private val x: Int) : Base() {
      override fun calculate() = x
  }

  fun testIt() {
      println(Derived(42).code) // Expected: 42, actual: 0
  }