mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-10 08:31:29 +00:00
- All refinement-related methods are incapsulated in ModuleAwareClassDescriptor - most of classes implement it trivially by retning unchanged scope - LazyClassDescriptor and DeserializedClassDescriptor have non-trivial implementations of the refinement-related methods - General idea is to return new scope which captures refiner and will later use it to get correct content of itself (currently, refiner is unused, and will be used for that in later commits) - In order to not repeat similar work, those new instances of scopes are cached in ScopeHolderForClass, which is essentially a cache of form KotlinTypeRefiner -> MemberScope