From a907aeec4d5169620b74f48262d285e79859b7aa Mon Sep 17 00:00:00 2001 From: Stanislav Erokhin Date: Wed, 13 Jan 2016 16:34:16 +0300 Subject: [PATCH] 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: 3a9ecf0bce5a82ad974efd33f4a6ca0a43dba3af --- .../incremental/lookupTracker/classifierMembers/foo.kt | 10 +++++----- .../lookupTracker/localDeclarations/locals.kt | 2 +- .../lookupTracker/packageDeclarations/foo1.kt | 4 ++-- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt index d724928ceb2..19799784f85 100644 --- a/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt +++ b/jps/jps-plugin/testData/incremental/lookupTracker/classifierMembers/foo.kt @@ -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() } } diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/localDeclarations/locals.kt b/jps/jps-plugin/testData/incremental/lookupTracker/localDeclarations/locals.kt index f139ae7a727..8ae9ed1928f 100644 --- a/jps/jps-plugin/testData/incremental/lookupTracker/localDeclarations/locals.kt +++ b/jps/jps-plugin/testData/incremental/lookupTracker/localDeclarations/locals.kt @@ -31,7 +31,7 @@ import bar.* } localFun() - 1.localExtFun() + 1./*c:kotlin.Int(getLocalExtFun) c:kotlin.Int(getLOCALExtFun)*/localExtFun() val c = LocalC() c.a diff --git a/jps/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt b/jps/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt index e212405db19..3b7575c7e00 100644 --- a/jps/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt +++ b/jps/jps-plugin/testData/incremental/lookupTracker/packageDeclarations/foo1.kt @@ -12,6 +12,6 @@ import baz./*p:baz*/C } /*p:foo*/fun /*p:foo*/MyClass.extFunc(p: /**p:foo p:bar*//*p:foo*/Array, 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() }