Resolve invoke on class objects and enum entries
Added FakeCallableDescriptorForObject to make a resolved call with object as variable in 'variable as function call' #KT-4321 Fixed #KT-4863 Fixed
This commit is contained in:
@@ -0,0 +1,8 @@
|
||||
class A {
|
||||
class object {
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = if (A(42) == 42) "OK" else "fail"
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
trait B
|
||||
|
||||
fun B.invoke(i: Int) = i
|
||||
|
||||
class A {
|
||||
class object: B {
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = if (A(42) == 42) "OK" else "fail"
|
||||
|
||||
+9
@@ -0,0 +1,9 @@
|
||||
class A {
|
||||
class Nested {
|
||||
class object {
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = if (A.Nested(42) == 42) "OK" else "fail"
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
import A.Nested
|
||||
|
||||
class A {
|
||||
class Nested {
|
||||
class object {
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun box() = if (Nested(42) == 42) "OK" else "fail"
|
||||
@@ -0,0 +1,8 @@
|
||||
enum class A {
|
||||
ONE
|
||||
TWO
|
||||
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
|
||||
fun box() = if (A.ONE(42) == 42) "OK" else "fail"
|
||||
@@ -0,0 +1,8 @@
|
||||
enum class A {
|
||||
ONE
|
||||
TWO
|
||||
}
|
||||
|
||||
fun A.invoke(i: Int) = i
|
||||
|
||||
fun box() = if (A.ONE(42) == 42) "OK" else "fail"
|
||||
@@ -0,0 +1,10 @@
|
||||
import A.ONE
|
||||
|
||||
enum class A {
|
||||
ONE
|
||||
TWO
|
||||
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
|
||||
fun box() = if (ONE(42) == 42) "OK" else "fail"
|
||||
@@ -0,0 +1,10 @@
|
||||
import A.ONE
|
||||
|
||||
enum class A {
|
||||
ONE
|
||||
TWO
|
||||
}
|
||||
|
||||
fun A.invoke(i: Int) = i
|
||||
|
||||
fun box() = if (ONE(42) == 42) "OK" else "fail"
|
||||
@@ -0,0 +1,5 @@
|
||||
object A
|
||||
|
||||
fun A.invoke(i: Int) = i
|
||||
|
||||
fun box() = if (A(42) == 42) "OK" else "fail"
|
||||
@@ -0,0 +1,5 @@
|
||||
object A {
|
||||
fun invoke(i: Int) = i
|
||||
}
|
||||
|
||||
fun box() = if (A(42) == 42) "OK" else "fail"
|
||||
Reference in New Issue
Block a user