Do not force resolve from type constructor
In case of creating context for something like 'class Foo(f: Bar)' there is no need in resolving supertypes/annotations of Bar type
This commit is contained in:
+1
-21
@@ -561,7 +561,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
return parameters.invoke();
|
||||
}
|
||||
|
||||
private class LazyClassTypeConstructor extends AbstractClassTypeConstructor implements LazyEntity {
|
||||
private class LazyClassTypeConstructor extends AbstractClassTypeConstructor {
|
||||
private final NotNullLazyValue<List<TypeParameterDescriptor>> parameters = c.getStorageManager().createLazyValue(new Function0<List<TypeParameterDescriptor>>() {
|
||||
@Override
|
||||
public List<TypeParameterDescriptor> invoke() {
|
||||
@@ -569,15 +569,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
}
|
||||
});
|
||||
|
||||
private final NullableLazyValue<Void> forceResolveAllContents =
|
||||
c.getStorageManager().createRecursionTolerantNullableLazyValue(new Function0<Void>() {
|
||||
@Override
|
||||
public Void invoke() {
|
||||
doForceResolveAllContents();
|
||||
return null;
|
||||
}
|
||||
}, null);
|
||||
|
||||
public LazyClassTypeConstructor() {
|
||||
super(LazyClassDescriptor.this.c.getStorageManager());
|
||||
}
|
||||
@@ -660,17 +651,6 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
public String toString() {
|
||||
return LazyClassDescriptor.this.getName().toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void forceResolveAllContents() {
|
||||
forceResolveAllContents.invoke();
|
||||
}
|
||||
|
||||
private void doForceResolveAllContents() {
|
||||
ForceResolveUtil.forceResolveAllContents(getAnnotations());
|
||||
ForceResolveUtil.forceResolveAllContents(getSupertypes());
|
||||
ForceResolveUtil.forceResolveAllContents(getParameters());
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
Reference in New Issue
Block a user