Implement basic use-site scopes and override mapping

This commit also introduces separate scope processors:
processFunctionsByName and processPropertiesByName, in addition to
existing processClassifiersByName

Ad-hock call resolver starts to discover ambiguities, which leads
to some ambiguity problems in MPP tests with deep supertype hierarchy

Related to KT-29636
This commit is contained in:
Simon Ogorodnik
2019-01-31 17:53:02 +03:00
committed by Mikhail Glukhikh
parent 6ea2abfc46
commit 840750ee40
11 changed files with 397 additions and 51 deletions
+2 -2
View File
@@ -13,8 +13,8 @@ FILE: jvm.kt
public constructor(): super<R|B|>()
public final function test(): R|kotlin/Unit| {
R|/A.foo|()
R|/A.bar|()
<Ambiguity: foo, [/A.foo, /A.foo]>#()
<Ambiguity: bar, [/A.bar, /A.bar]>#()
}
}
+3 -3
View File
@@ -22,7 +22,7 @@ FILE: jvm.kt
public constructor(): super<R|B|>()
public final function test(): R|kotlin/Unit| {
R|/A.foo|()
<Ambiguity: foo, [/A.foo, /A.foo]>#()
<Unresolved name: bar>#()
<Unresolved name: baz>#()
}
@@ -33,8 +33,8 @@ FILE: jvm.kt
public final function test(): R|kotlin/Unit| {
R|/A.foo|()
R|/X.bar|()
R|/Y.baz|()
<Ambiguity: bar, [/X.bar, /X.bar]>#()
<Ambiguity: baz, [/Y.baz, /Y.baz]>#()
}
}