FIR: Explicitlty separate static and member scopes

For Java, they have rather different semantics considering "overrides"
and obtaining functions/properties from supertypes

See the Java statics implementation
This commit is contained in:
Denis Zharkov
2020-06-25 12:28:16 +03:00
parent e058c578a8
commit 9668a60151
15 changed files with 363 additions and 129 deletions
@@ -5,12 +5,6 @@ FILE fqName:<root> fileName:/fakeOverridesForJavaStaticMembers.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in a.Base'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Test modality:FINAL visibility:public superTypes:[a.Base]'
FUN FAKE_OVERRIDE name:publicStaticMethod visibility:public modality:OPEN <> () returnType:kotlin.Unit [fake_override]
overridden:
public open fun publicStaticMethod (): kotlin.Unit declared in a.Base
FUN FAKE_OVERRIDE name:protectedStaticMethod visibility:protected/*protected static*/ modality:OPEN <> () returnType:kotlin.Unit [fake_override]
overridden:
protected/*protected static*/ open fun protectedStaticMethod (): kotlin.Unit declared in a.Base
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any