c463fad3b7
- it is required to be able to autoimport extensions from objects, not only from the top level - use `substituteExtensionIfCallable` to handle generics for extension methods - move finding expression receivers to the separate method, add `Receivers` value class to hold found receivers - change `CallableDescriptor.isValidByReceiversFor` to return false if explicit receiver is not required for the descriptor - ^KT-34000 Fixed
26 lines
485 B
Kotlin
Vendored
26 lines
485 B
Kotlin
Vendored
// "Import" "true"
|
|
package p
|
|
|
|
class T
|
|
class NotT
|
|
class NotTT
|
|
|
|
object TopLevelObject1 {
|
|
val T.foobar get() = 10
|
|
}
|
|
|
|
object TopLevelObject2 {
|
|
val NotT.foobar get() = 10 // other type, should not be imported
|
|
}
|
|
|
|
object TopLevelObject3 {
|
|
val foobar get() = 10 // not an extension, should not be imported
|
|
}
|
|
|
|
object TopLevelObject4 {
|
|
val NotTT.foobar get() = 10 // NotTT present as receiver, but explicit receiver shuts him down
|
|
}
|
|
|
|
fun NotTT.usage(t: T) {
|
|
t.foobar<caret>
|
|
} |