isBackingFieldReference moved to JetPsiUtil

This commit is contained in:
Svetlana Isakova
2012-12-18 16:40:53 +04:00
parent 67d0d8b1a9
commit a85519c3db
6 changed files with 14 additions and 14 deletions
@@ -271,7 +271,7 @@ public class JetFlowInformationProvider {
@NotNull Collection<VariableDescriptor> varWithValReassignErrorGenerated @NotNull Collection<VariableDescriptor> varWithValReassignErrorGenerated
) { ) {
VariableDescriptor variableDescriptor = ctxt.variableDescriptor; VariableDescriptor variableDescriptor = ctxt.variableDescriptor;
if (isBackingFieldReference(expression) && variableDescriptor instanceof PropertyDescriptor) { if (JetPsiUtil.isBackingFieldReference(expression) && variableDescriptor instanceof PropertyDescriptor) {
PropertyDescriptor propertyDescriptor = (PropertyDescriptor) variableDescriptor; PropertyDescriptor propertyDescriptor = (PropertyDescriptor) variableDescriptor;
JetPropertyAccessor accessor = PsiTreeUtil.getParentOfType(expression, JetPropertyAccessor.class); JetPropertyAccessor accessor = PsiTreeUtil.getParentOfType(expression, JetPropertyAccessor.class);
if (accessor != null) { if (accessor != null) {
@@ -412,7 +412,7 @@ public class JetFlowInformationProvider {
private boolean isCorrectBackingFieldReference(@Nullable JetElement element, VariableContext ctxt, boolean[] error, boolean reportError) { private boolean isCorrectBackingFieldReference(@Nullable JetElement element, VariableContext ctxt, boolean[] error, boolean reportError) {
error[0] = false; error[0] = false;
if (isBackingFieldReference(element)) { if (JetPsiUtil.isBackingFieldReference(element)) {
return true; return true;
} }
if (element instanceof JetDotQualifiedExpression && isCorrectBackingFieldReference( if (element instanceof JetDotQualifiedExpression && isCorrectBackingFieldReference(
@@ -428,10 +428,6 @@ public class JetFlowInformationProvider {
return false; return false;
} }
public static boolean isBackingFieldReference(@Nullable JetElement element) {
return element instanceof JetSimpleNameExpression && ((JetSimpleNameExpression) element).getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER;
}
private void recordInitializedVariables(@NotNull Pseudocode pseudocode, @NotNull Map<Instruction, Edges<Map<VariableDescriptor,PseudocodeVariablesData.VariableInitState>>> initializersMap) { private void recordInitializedVariables(@NotNull Pseudocode pseudocode, @NotNull Map<Instruction, Edges<Map<VariableDescriptor,PseudocodeVariablesData.VariableInitState>>> initializersMap) {
Edges<Map<VariableDescriptor, VariableInitState>> initializers = initializersMap.get(pseudocode.getExitInstruction()); Edges<Map<VariableDescriptor, VariableInitState>> initializers = initializersMap.get(pseudocode.getExitInstruction());
Set<VariableDescriptor> usedVariables = pseudocodeVariablesData.getUsedVariables(pseudocode); Set<VariableDescriptor> usedVariables = pseudocodeVariablesData.getUsedVariables(pseudocode);
@@ -462,4 +462,12 @@ public class JetPsiUtil {
public static boolean isAbstract(@NotNull JetDeclarationWithBody declaration) { public static boolean isAbstract(@NotNull JetDeclarationWithBody declaration) {
return declaration.getBodyExpression() == null; return declaration.getBodyExpression() == null;
} }
public static boolean isBackingFieldReference(@NotNull JetSimpleNameExpression expression) {
return expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER;
}
public static boolean isBackingFieldReference(@Nullable JetElement element) {
return element instanceof JetSimpleNameExpression && isBackingFieldReference((JetSimpleNameExpression)element);
}
} }
@@ -20,11 +20,11 @@ import com.google.dart.compiler.backend.js.ast.JsExpression;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.PropertyDescriptor; import org.jetbrains.jet.lang.descriptors.PropertyDescriptor;
import org.jetbrains.jet.lang.psi.JetPsiUtil;
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.k2js.translate.context.TemporaryVariable; import org.jetbrains.k2js.translate.context.TemporaryVariable;
import org.jetbrains.k2js.translate.context.TranslationContext; import org.jetbrains.k2js.translate.context.TranslationContext;
import org.jetbrains.k2js.translate.general.AbstractTranslator; import org.jetbrains.k2js.translate.general.AbstractTranslator;
import org.jetbrains.k2js.translate.utils.PsiUtils;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
@@ -44,7 +44,7 @@ public final class BackingFieldAccessTranslator extends AbstractTranslator imple
/*package*/ /*package*/
static BackingFieldAccessTranslator newInstance(@NotNull JetSimpleNameExpression expression, static BackingFieldAccessTranslator newInstance(@NotNull JetSimpleNameExpression expression,
@NotNull TranslationContext context) { @NotNull TranslationContext context) {
assert PsiUtils.isBackingFieldReference(expression); assert JetPsiUtil.isBackingFieldReference(expression);
DeclarationDescriptor referencedProperty = getDescriptorForReferenceExpression(context.bindingContext(), expression); DeclarationDescriptor referencedProperty = getDescriptorForReferenceExpression(context.bindingContext(), expression);
assert referencedProperty instanceof PropertyDescriptor; assert referencedProperty instanceof PropertyDescriptor;
return new BackingFieldAccessTranslator((PropertyDescriptor) referencedProperty, context); return new BackingFieldAccessTranslator((PropertyDescriptor) referencedProperty, context);
@@ -32,7 +32,7 @@ import static org.jetbrains.k2js.translate.utils.AnnotationsUtils.isNativeObject
import static org.jetbrains.k2js.translate.utils.BindingUtils.getDescriptorForReferenceExpression; import static org.jetbrains.k2js.translate.utils.BindingUtils.getDescriptorForReferenceExpression;
import static org.jetbrains.k2js.translate.utils.BindingUtils.getResolvedCallForProperty; import static org.jetbrains.k2js.translate.utils.BindingUtils.getResolvedCallForProperty;
import static org.jetbrains.k2js.translate.utils.PsiUtils.getSelectorAsSimpleName; import static org.jetbrains.k2js.translate.utils.PsiUtils.getSelectorAsSimpleName;
import static org.jetbrains.k2js.translate.utils.PsiUtils.isBackingFieldReference; import static org.jetbrains.jet.lang.psi.JetPsiUtil.isBackingFieldReference;
/** /**
* @author Pavel Talanov * @author Pavel Talanov
@@ -25,7 +25,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; import org.jetbrains.jet.lang.psi.JetSimpleNameExpression;
import org.jetbrains.k2js.translate.context.TranslationContext; import org.jetbrains.k2js.translate.context.TranslationContext;
import static org.jetbrains.k2js.translate.utils.PsiUtils.isBackingFieldReference; import static org.jetbrains.jet.lang.psi.JetPsiUtil.isBackingFieldReference;
/** /**
* @author Pavel Talanov * @author Pavel Talanov
@@ -81,10 +81,6 @@ public final class PsiUtils {
return (token == JetTokens.EQ); return (token == JetTokens.EQ);
} }
public static boolean isBackingFieldReference(@NotNull JetSimpleNameExpression expression) {
return expression.getReferencedNameElementType() == JetTokens.FIELD_IDENTIFIER;
}
public static boolean isInOrNotInOperation(@NotNull JetBinaryExpression binaryExpression) { public static boolean isInOrNotInOperation(@NotNull JetBinaryExpression binaryExpression) {
return isInOperation(binaryExpression) || isNotInOperation(binaryExpression); return isInOperation(binaryExpression) || isNotInOperation(binaryExpression);
} }