Do not run partial body resolve if full body resolve already cached

This commit is contained in:
Valentin Kipyatkov
2015-03-23 19:57:50 +03:00
parent 6aad2b2d65
commit 7a414336c1
5 changed files with 25 additions and 6 deletions
@@ -61,6 +61,10 @@ public abstract class ElementResolver {
return elementAdditionalResolve(jetElement, jetElement, BodyResolveMode.FULL);
}
public boolean hasElementAdditionalResolveCached(@NotNull JetElement jetElement) {
return false;
}
@NotNull
public BindingContext resolveToElement(@NotNull JetElement jetElement) {
return resolveToElement(jetElement, BodyResolveMode.FULL);
@@ -95,8 +99,7 @@ public abstract class ElementResolver {
elementOfAdditionalResolve = jetElement;
}
if (bodyResolveMode != BodyResolveMode.FULL) {
//TODO: do not resolve with filter if whole body resolve cached already
if (bodyResolveMode != BodyResolveMode.FULL && !hasElementAdditionalResolveCached(jetElement)) {
return elementAdditionalResolve(elementOfAdditionalResolve, jetElement, bodyResolveMode);
}