[JS BE] Support contracts in JS Fix KT-27946

This commit is contained in:
Roman Artemev
2018-11-07 20:56:10 +03:00
committed by romanart
parent b010d9eef8
commit 8f2117685f
5 changed files with 35 additions and 10 deletions
@@ -198,10 +198,14 @@ public class BindingContextUtils {
return expression instanceof KtReferenceExpression;
}
public static boolean isVarCapturedInClosure(BindingContext bindingContext, DeclarationDescriptor descriptor) {
public static boolean isCapturedInClosure(BindingContext bindingContext, DeclarationDescriptor descriptor) {
if (!(descriptor instanceof VariableDescriptor) || descriptor instanceof PropertyDescriptor) return false;
VariableDescriptor variableDescriptor = (VariableDescriptor) descriptor;
return bindingContext.get(CAPTURED_IN_CLOSURE, variableDescriptor) != null && variableDescriptor.isVar();
return bindingContext.get(CAPTURED_IN_CLOSURE, variableDescriptor) != null;
}
public static boolean isVarCapturedInClosure(BindingContext bindingContext, DeclarationDescriptor descriptor) {
return isCapturedInClosure(bindingContext, descriptor) && ((VariableDescriptor) descriptor).isVar();
}
@NotNull
@@ -86,7 +86,7 @@ internal fun VariableDescriptor.variableKind(
}
private fun hasNoWritersInClosures(
fun hasNoWritersInClosures(
variableContainingDeclaration: DeclarationDescriptor,
writers: Set<AssignedVariablesSearcher.Writer>,
bindingContext: BindingContext