[FE 1.0] Provide an API to clean compile time initializer cache for variable descriptor

This commit is contained in:
Victor Petukhov
2021-12-08 15:50:09 +03:00
parent f197fc93db
commit 0e6762acc3
13 changed files with 56 additions and 17 deletions
@@ -148,8 +148,8 @@ public class JavaPropertyDescriptor extends PropertyDescriptorImpl implements Ja
enhanced.initialize(newGetter, newSetter, getBackingField(), getDelegateField());
enhanced.setSetterProjectedOut(isSetterProjectedOut());
if (compileTimeInitializer != null) {
enhanced.setCompileTimeInitializer(compileTimeInitializer);
if (compileTimeInitializerFactory != null) {
enhanced.setCompileTimeInitializer(compileTimeInitializer, compileTimeInitializerFactory);
}
enhanced.setOverriddenDescriptors(getOverriddenDescriptors());
@@ -307,11 +307,11 @@ abstract class LazyJavaScope(
)
if (DescriptorUtils.shouldRecordInitializerForProperty(propertyDescriptor, propertyDescriptor.type)) {
propertyDescriptor.setCompileTimeInitializer(
propertyDescriptor.setCompileTimeInitializerFactory {
c.storageManager.createNullableLazyValue {
c.components.javaPropertyInitializerEvaluator.getInitializerConstant(field, propertyDescriptor)
}
)
}
}
c.components.javaResolverCache.recordField(field, propertyDescriptor)