Inspectopedia Help

Leaking 'this' in constructor

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 }

Inspection Details

By default bundled with:

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin:

Kotlin, 241.16690-IJ

Last modified: 29 April 2024