Files
Nikolay Lunyak f9c6af4d2a [FIR] Properly assign <local> packages to symbols
This prevents `FirConflictsExpressionChecker.kt`
from missing conflicting local functions. It used
to due to inconsistencies in assigning `<local>`,
and this commit makes it a bit more
straightforward.

The change in KtClassTypeQualifierRenderer
prevents `FirOverrideImplementTest.testLocalClass`
from failing in `intellij`. It didn't fail for
callables, because `KtCallableSignatureRenderer`
doesn't try to render packages.

^KT-59186 Fixed
2023-08-18 13:31:04 +00:00

107 lines
3.6 KiB
Plaintext
Vendored

FILE: first.kt
private final fun foo(): R|kotlin/Unit| {
}
private final class Private : R|kotlin/Any| {
public constructor(): R|Private| {
super<R|kotlin/Any|>()
}
private final fun bar(): R|kotlin/Unit| {
}
public final fun baz(): R|kotlin/Unit| {
this@R|/Private|.R|/Private.bar|()
R|/Private.Nested.Nested|()
this@R|/Private.Companion|.R|/Private.Companion.fromCompanion|()
Q|Private.NotCompanion|.R|/Private.NotCompanion.foo<HIDDEN: /Private.NotCompanion.foo is invisible>#|()
}
public final inner class Inner : R|kotlin/Any| {
public Private.constructor(): R|Private.Inner| {
super<R|kotlin/Any|>()
}
public final fun foo(): R|kotlin/Unit| {
this@R|/Private|.R|/Private.bar|()
this@R|/Private.Companion|.R|/Private.Companion.fromCompanion|()
Q|Private.NotCompanion|.R|/Private.NotCompanion.foo<HIDDEN: /Private.NotCompanion.foo is invisible>#|()
}
}
private final class Nested : R|kotlin/Any| {
public constructor(): R|Private.Nested| {
super<R|kotlin/Any|>()
}
public final fun foo(): R|kotlin/Unit| {
this@R|/Private.Companion|.R|/Private.Companion.fromCompanion|()
Q|Private.NotCompanion|.R|/Private.NotCompanion.foo<HIDDEN: /Private.NotCompanion.foo is invisible>#|()
}
}
public final companion object Companion : R|kotlin/Any| {
private constructor(): R|Private.Companion| {
super<R|kotlin/Any|>()
}
private final fun fromCompanion(): R|kotlin/Unit| {
}
}
public final object NotCompanion : R|kotlin/Any| {
private constructor(): R|Private.NotCompanion| {
super<R|kotlin/Any|>()
}
private final fun foo(): R|kotlin/Unit| {
}
}
}
public final fun withLocals(): R|kotlin/Unit| {
local final class Local : R|kotlin/Any| {
public constructor(): R|<local>/Local| {
super<R|kotlin/Any|>()
}
private final fun bar(): R|kotlin/Unit|
public final fun baz(): R|kotlin/Unit| {
this@R|<local>/Local|.R|<local>/bar|()
this@R|<local>/Local|.R|<local>/Local.Inner.Inner|()
}
local final inner class Inner : R|kotlin/Any| {
public <local>/Local.constructor(): R|<local>/Local.Inner| {
super<R|kotlin/Any|>()
}
public final fun foo(): R|kotlin/Unit| {
this@R|<local>/Local|.R|<local>/bar|()
}
}
}
R|<local>/Local.Local|().R|<local>/baz|()
R|<local>/Local.Local|().R|<local>/bar<HIDDEN: <local>/bar is invisible>#|()
}
public final fun test(): R|kotlin/Unit| {
R|/foo|()
R|/Private.Private|().R|/Private.baz|()
R|/Private.Private|().R|/Private.Inner.Inner|()
R|/Private.Private|().R|/Private.bar<HIDDEN: /Private.bar is invisible>#|()
Q|Private|.R|/Private.Nested.Nested<HIDDEN: Private.Nested is invisible>#|()
Q|Private|.R|/Private.Companion.fromCompanion<HIDDEN: /Private.Companion.fromCompanion is invisible>#|()
}
FILE: second.kt
public final fun secondTest(): R|kotlin/Unit| {
R|/foo<HIDDEN: /foo is invisible>#|()
R|/Private.Private<HIDDEN: Private is invisible>#|()
}