diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java index 9d5d8a013e5..110399b765e 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java @@ -17,6 +17,7 @@ package org.jetbrains.jet.lang.resolve.java; import com.google.common.collect.Sets; +import com.intellij.openapi.progress.ProgressIndicatorProvider; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiModifier; import com.intellij.psi.PsiPackage; @@ -27,7 +28,6 @@ import org.jetbrains.jet.lang.resolve.name.Name; import org.jetbrains.jet.lang.resolve.scopes.JetScopeImpl; import java.util.Collection; -import java.util.Set; /** * @author Stepan Koltsov @@ -74,8 +74,11 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl { allDescriptors = Sets.newHashSet(); if (resolverScopeData.psiClass != null) { + + ProgressIndicatorProvider.checkCanceled(); allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveMethods(resolverScopeData)); + ProgressIndicatorProvider.checkCanceled(); allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveFieldGroup(resolverScopeData)); // TODO: Trying to hack the situation when we produce namespace descriptor for java class and still want to see inner classes @@ -83,7 +86,7 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl { allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses( resolverScopeData.classOrNamespaceDescriptor, resolverScopeData.psiClass, false)); } - else { + else { allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveInnerClasses( resolverScopeData.classOrNamespaceDescriptor, resolverScopeData.psiClass, resolverScopeData.staticMembers)); @@ -117,6 +120,7 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl { } if (psiClass.hasModifierProperty(PsiModifier.PUBLIC)) { + ProgressIndicatorProvider.checkCanceled(); ClassDescriptor classDescriptor = descriptorResolver .resolveClass(new FqName(psiClass.getQualifiedName()), DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN); if (classDescriptor != null) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java index 75fc8857b2f..f4ebb8673ba 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/CallResolver.java @@ -21,6 +21,7 @@ import com.google.common.base.Predicate; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import com.google.common.collect.Sets; +import com.intellij.openapi.progress.ProgressIndicatorProvider; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -137,6 +138,9 @@ public class CallResolver { @NotNull public OverloadResolutionResults resolveFunctionCall(@NotNull BasicResolutionContext context) { + + ProgressIndicatorProvider.checkCanceled(); + List> prioritizedTasks; JetExpression calleeExpression = context.call.getCalleeExpression(); diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java index fc6adc182b8..03ff29fdcb6 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/TaskPrioritizer.java @@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.resolve.calls; import com.google.common.base.Predicate; import com.google.common.collect.Lists; +import com.intellij.openapi.progress.ProgressIndicatorProvider; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.*; @@ -107,6 +108,9 @@ import static org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor private static void doComputeTasks(@NotNull JetScope scope, @NotNull ReceiverDescriptor receiver, @NotNull Name name, @NotNull ResolutionTaskHolder result, @NotNull BasicResolutionContext context, @NotNull CallableDescriptorCollector callableDescriptorCollector) { + + ProgressIndicatorProvider.checkCanceled(); + AutoCastServiceImpl autoCastService = new AutoCastServiceImpl(context.dataFlowInfo, context.trace.getBindingContext()); List implicitReceivers = Lists.newArrayList(); scope.getImplicitReceiversHierarchy(implicitReceivers);