title: Kotlin Extensions property vs. function - Conflict
body: <p>I have the two following definitions. </p>
  
  <p>The first one as an extension function allowing to set visible a <code>View</code> and also to set it as gone or invisible with the second parameter. </p>
  
  <pre><code>fun View.setVisible(visible: Boolean, goneWhenVisibleFalse: Boolean) {
      visibility = when {
          visible -&gt; View.VISIBLE
          goneWhenVisibleFalse -&gt; View.GONE
          else -&gt; View.INVISIBLE
      }
  }
  </code></pre>
  
  <p>The second here, as an extension property using the first above.</p>
  
  <pre><code>var View.visible: Boolean
      get() = visibility == View.VISIBLE
      set(value) {
          setVisible(value, true)
      }
  </code></pre>
  
  <p>None of complicated until here. The code compiles and the app launch correctly. BUT I get a black screen, no error in the logcat, nothing to get a trace. </p>
  
  <p>After a while, I change the signature of the first function to receive the second parameter with true as default:</p>
  
  <p><code>fun View.setVisible(visible: Boolean, goneWhenVisibleFalse: Boolean</code><strong><code>= true</code></strong><code>)</code></p>
  
  <p>And then it works normally. The question is: why this happen? I dug into the bytecode. But looks there is no duplication of signatures, the number of parameters is different in both cases. </p>
  
  <p>Maybe a bug of kotlin? I'm using kotlin plugin v1.2.30</p>