diff --git a/.idea/inspectionProfiles/idea_default.xml b/.idea/inspectionProfiles/idea_default.xml index 8f1255ea7a3..ddba23709a4 100644 --- a/.idea/inspectionProfiles/idea_default.xml +++ b/.idea/inspectionProfiles/idea_default.xml @@ -112,6 +112,7 @@ + diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt index 784e2e1f13b..acf6a4a6170 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/FunctionDescriptorResolver.kt @@ -17,7 +17,6 @@ package org.jetbrains.kotlin.resolve import com.intellij.psi.PsiElement -import com.intellij.util.AstLoadingFilter import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.builtins.getReceiverTypeFromFunctionType import org.jetbrains.kotlin.builtins.getValueParameterTypesFromFunctionType @@ -68,6 +67,7 @@ import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils.isFunctionExpression import org.jetbrains.kotlin.types.expressions.ExpressionTypingUtils.isFunctionLiteral import org.jetbrains.kotlin.types.typeUtil.replaceAnnotations +import org.jetbrains.kotlin.util.AstLoadingFilter import java.util.* class FunctionDescriptorResolver( @@ -264,7 +264,7 @@ class FunctionDescriptorResolver( if (!isContractsEnabled || !function.mayHaveContract()) return null return LazyContractProvider { - AstLoadingFilter.forceEnableTreeLoading(function.containingFile) { + AstLoadingFilter.forceAllowTreeLoading(function.containingFile) { expressionTypingServices.getBodyExpressionType(trace, scope, dataFlowInfo, function, functionDescriptor) } } diff --git a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.kt b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.kt index 9d0e740529c..0d0d5be14f0 100644 --- a/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.kt +++ b/compiler/frontend/src/org/jetbrains/kotlin/resolve/calls/CallExpressionResolver.kt @@ -20,7 +20,6 @@ import com.intellij.lang.ASTNode import com.intellij.openapi.util.ThrowableComputable import com.intellij.psi.PsiElement import com.intellij.psi.util.PsiTreeUtil -import com.intellij.util.AstLoadingFilter import org.jetbrains.kotlin.builtins.KotlinBuiltIns import org.jetbrains.kotlin.config.LanguageFeature import org.jetbrains.kotlin.config.LanguageVersionSettings @@ -66,6 +65,7 @@ import org.jetbrains.kotlin.types.expressions.ExpressionTypingServices import org.jetbrains.kotlin.types.expressions.KotlinTypeInfo import org.jetbrains.kotlin.types.expressions.typeInfoFactory.createTypeInfo import org.jetbrains.kotlin.types.expressions.typeInfoFactory.noTypeInfo +import org.jetbrains.kotlin.util.AstLoadingFilter import javax.inject.Inject class CallExpressionResolver( @@ -350,7 +350,7 @@ class CallExpressionResolver( val receiverCanBeNull = receiverDataFlowValue != null && initialDataFlowInfoForArguments.getStableNullability(receiverDataFlowValue).canBeNull() - val callOperationNode = AstLoadingFilter.forceEnableTreeLoading(element.qualified.containingFile, ThrowableComputable { + val callOperationNode = AstLoadingFilter.forceAllowTreeLoading(element.qualified.containingFile, ThrowableComputable { element.node }) diff --git a/compiler/psi/src/org/jetbrains/kotlin/psi/KtProperty.java b/compiler/psi/src/org/jetbrains/kotlin/psi/KtProperty.java index 78f8ffc9e64..0a47f7533cf 100644 --- a/compiler/psi/src/org/jetbrains/kotlin/psi/KtProperty.java +++ b/compiler/psi/src/org/jetbrains/kotlin/psi/KtProperty.java @@ -25,7 +25,6 @@ import com.intellij.psi.PsiModifiableCodeBlock; import com.intellij.psi.tree.IElementType; import com.intellij.psi.tree.TokenSet; import com.intellij.psi.util.PsiTreeUtil; -import com.intellij.util.AstLoadingFilter; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.jetbrains.kotlin.KtNodeTypes; @@ -33,6 +32,7 @@ import org.jetbrains.kotlin.lexer.KtTokens; import org.jetbrains.kotlin.psi.stubs.KotlinPropertyStub; import org.jetbrains.kotlin.psi.stubs.elements.KtStubElementTypes; import org.jetbrains.kotlin.psi.typeRefHelpers.TypeRefHelpersKt; +import org.jetbrains.kotlin.util.AstLoadingFilter; import java.util.Collections; import java.util.List; @@ -252,7 +252,7 @@ public class KtProperty extends KtTypeParameterListOwnerStub return null; } - return AstLoadingFilter.forceEnableTreeLoading(this.getContainingFile(), () -> + return AstLoadingFilter.forceAllowTreeLoading(this.getContainingFile(), () -> PsiTreeUtil.getNextSiblingOfType(findChildByType(EQ), KtExpression.class) ); } diff --git a/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt b/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt new file mode 100644 index 00000000000..99dae84a78a --- /dev/null +++ b/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.util + +import com.intellij.openapi.util.ThrowableComputable +import com.intellij.psi.PsiFile +import com.intellij.util.AstLoadingFilter + +/** + * Absent in 181. Methods were renamed in 183. + * + * BUNCH: 183 + */ +@Suppress("IncompatibleAPI") +object AstLoadingFilter { + @JvmStatic + fun forceAllowTreeLoading(psiFile: PsiFile, computable: ThrowableComputable): T { + return AstLoadingFilter.forceEnableTreeLoading(psiFile, computable) + } +} \ No newline at end of file diff --git a/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt.181 b/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt.181 new file mode 100644 index 00000000000..83a3758c2a3 --- /dev/null +++ b/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt.181 @@ -0,0 +1,22 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.util + +import com.intellij.openapi.util.ThrowableComputable +import com.intellij.psi.PsiFile + +/** + * Absent in 181. Methods were renamed in 183. + * + * BUNCH: 183 + */ +@Suppress("IncompatibleAPI") +object AstLoadingFilter { + @JvmStatic + fun forceAllowTreeLoading(psiFile: PsiFile, computable: ThrowableComputable): T { + return computable.compute() + } +} \ No newline at end of file diff --git a/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt.183 b/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt.183 new file mode 100644 index 00000000000..f1f6d59ddbe --- /dev/null +++ b/compiler/psi/src/org/jetbrains/kotlin/util/AstLoadingUtil.kt.183 @@ -0,0 +1,23 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license + * that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.util + +import com.intellij.openapi.util.ThrowableComputable +import com.intellij.psi.PsiFile +import com.intellij.util.AstLoadingFilter + +/** + * Absent in 181. Methods were renamed in 183. + * + * BUNCH: 183 + */ +@Suppress("IncompatibleAPI") +object AstLoadingFilter { + @JvmStatic + fun forceAllowTreeLoading(psiFile: PsiFile, computable: ThrowableComputable): T { + return AstLoadingFilter.forceAllowTreeLoading(psiFile, computable) + } +} \ No newline at end of file