Don't enter twice top-level scopes w/out particular name in FIR tower resolver

This commit is contained in:
Mikhail Glukhikh
2019-10-02 14:00:16 +03:00
parent e276e8d9f3
commit 840ecf1a77
@@ -134,19 +134,6 @@ class CallResolver(
}
}
// Top-level extensions via implicit receiver
// fun Foo.bar() {}
// class Foo {
// fun test() { bar() }
// }
for (scope in topLevelScopes) {
towerDataConsumer.consume(
TOWER_LEVEL,
ScopeTowerLevel(session, components, scope, implicitExtensionReceiver = implicitReceiverValue),
group++
)
}
return group
}
@@ -206,10 +193,25 @@ class CallResolver(
}
}
// Member of top-level scope & importing scope
// val x = 0
// fun test() { x }
for (scope in topLevelScopes) {
topLevelScopeLoop@ for (scope in topLevelScopes) {
// Top-level extensions via implicit receiver
// fun Foo.bar() {}
// class Foo {
// fun test() { bar() }
// }
for (implicitReceiverValue in implicitReceiverValues) {
if (towerDataConsumer.consume(
TOWER_LEVEL,
ScopeTowerLevel(session, components, scope, implicitExtensionReceiver = implicitReceiverValue),
group++
) == NONE
) {
continue@topLevelScopeLoop
}
}
// Member of top-level scope & importing scope
// val x = 0
// fun test() { x }
towerDataConsumer.consume(TOWER_LEVEL, ScopeTowerLevel(session, components, scope), group++)
}