Skip to content

Bugfixes we can catch

Peter Trifanov edited this page Jan 12, 2021 · 7 revisions
  1. Name shadowing can cause following issues. There should be no shadowing.

infinite loop:

fun main() {
        var x = 0
        while (x < 10) {
            var x = 0
            x++
        }
}

bugs in logic:

class A {
    val myVariable = "hello"
    fun foo() {
        val myVariable = "hi"
        println(myVariable)
    }
}

2. run blocking Some people occasionally use runBlocking coroutine in asynchronous code. We need to have a warning for it #691

  1. When designing a base class, you should therefore avoid using open members in the constructors, property initializers, and init blocks.