Change resolution priority about implicit receivers and synthesized member-like descriptors.

Change resolution to consider extensions to implicit receiver before members of another implicit receiver.
Make synthesized member-like extensions resolve right after the members.

#KT-10510 Fixed
#KT-10219 Fixed
This commit is contained in:
Stanislav Erokhin
2016-01-13 16:34:16 +03:00
parent dee040a5b5
commit 3a9ecf0bce
28 changed files with 357 additions and 44 deletions
@@ -5,5 +5,5 @@ class A {
class B {
~A.foo~fun A.foo() = 1
fun A.bar() = `foo`foo()
fun A.bar() = `A.foo`foo()
}
@@ -3,7 +3,7 @@ class A
class B {
~foo~fun foo() = 2
fun A.bar() = `foo`foo()
fun A.bar() = `A.foo`foo()
}
~A.foo~fun A.foo() = 1
@@ -8,7 +8,7 @@ class B {
fun test(a: A, b: B) {
with (a) {
with (b) {
`A.foo`foo()
`B.foo`foo()
}
}
}