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
Original commit: 3a9ecf0bce
This commit is contained in:
@@ -18,9 +18,9 @@ import bar.*
|
||||
/*c:foo.A*/foo()
|
||||
this./*c:foo.A*/a
|
||||
this./*c:foo.A*/foo()
|
||||
/*c:foo.A c:foo.A.Companion*/baz()
|
||||
/*c:foo.A*/Companion./*c:foo.A.Companion*/a
|
||||
/*c:foo.A*/O./*c:foo.A.O*/v = "OK"
|
||||
/*c:foo.A c:foo.A(getBaz) c:foo.A(getBAZ) c:foo.A.Companion p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/baz()
|
||||
/*c:foo.A c:foo.A.Companion p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/Companion./*c:foo.A.Companion*/a
|
||||
/*c:foo.A c:foo.A.Companion p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/O./*c:foo.A.O*/v = "OK"
|
||||
}
|
||||
|
||||
class B {
|
||||
@@ -64,8 +64,8 @@ import bar.*
|
||||
val a = 1
|
||||
fun foo() {
|
||||
/*c:foo.E*/a
|
||||
/*c:foo.E*/Y./*c:foo.E*/a
|
||||
/*c:foo.E p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/Y./*c:foo.E*/a
|
||||
/*c:foo.E*/foo()
|
||||
/*c:foo.E*/X./*c:foo.E*/foo()
|
||||
/*c:foo.E p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/X./*c:foo.E*/foo()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import bar.*
|
||||
}
|
||||
|
||||
localFun()
|
||||
1.localExtFun()
|
||||
1./*c:kotlin.Int(getLocalExtFun) c:kotlin.Int(getLOCALExtFun)*/localExtFun()
|
||||
|
||||
val c = LocalC()
|
||||
c.a
|
||||
|
||||
@@ -12,6 +12,6 @@ import baz./*p:baz*/C
|
||||
}
|
||||
|
||||
/*p:foo*/fun /*p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:foo*/Array</*p:foo p:bar*/B>, e: /*p:foo*/MyEnum, c: /**???*/C): /*p:foo*/MyInterface {
|
||||
/*c:foo.MyClass c:foo.MyClass(getB) p:foo*/b
|
||||
return /*c:foo.MyClass p:foo*/MyClass()
|
||||
/*c:foo.MyClass c:foo.MyClass(getB) p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/b
|
||||
return /*c:foo.MyClass p:foo p:bar p:java.lang p:kotlin p:kotlin.annotation p:kotlin.jvm p:kotlin.collections p:kotlin.ranges p:kotlin.sequences p:kotlin.text p:kotlin.io*/MyClass()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user