From 4e159a4a4eb209d0469ac66f552eec751ef0030b Mon Sep 17 00:00:00 2001 From: svtk Date: Fri, 4 Nov 2011 18:57:34 +0400 Subject: [PATCH] little fixes --- .../jet/lang/resolve/BindingContextUtils.java | 1 + .../calls/autocasts/DataFlowValueFactory.java | 14 -------------- .../types/expressions/ExpressionTypingUtils.java | 3 ++- .../ExpressionTypingVisitorForStatements.java | 3 +-- 4 files changed, 4 insertions(+), 17 deletions(-) diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java index 6720b025ea4..af0491dc005 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/BindingContextUtils.java @@ -13,6 +13,7 @@ public class BindingContextUtils { private BindingContextUtils() { } + @Nullable public static PsiElement resolveToDeclarationPsiElement(BindingContext bindingContext, JetReferenceExpression referenceExpression) { DeclarationDescriptor declarationDescriptor = bindingContext.get(BindingContext.REFERENCE_TARGET, referenceExpression); if (declarationDescriptor == null) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java index 334321bfaf2..4b7a7b77b4e 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/calls/autocasts/DataFlowValueFactory.java @@ -101,20 +101,6 @@ public class DataFlowValueFactory { return Pair.create(null, false); } - @Nullable - public static VariableDescriptor getVariableDescriptorFromSimpleName(@NotNull BindingContext bindingContext, @NotNull JetExpression expression) { - JetExpression receiver = JetPsiUtil.deparenthesize(expression); - VariableDescriptor variableDescriptor = null; - if (receiver instanceof JetSimpleNameExpression) { - JetSimpleNameExpression nameExpression = (JetSimpleNameExpression) receiver; - DeclarationDescriptor declarationDescriptor = bindingContext.get(REFERENCE_TARGET, nameExpression); - if (declarationDescriptor instanceof VariableDescriptor) { - variableDescriptor = (VariableDescriptor) declarationDescriptor; - } - } - return variableDescriptor; - } - public static boolean isStableVariable(@NotNull VariableDescriptor variableDescriptor) { if (variableDescriptor.isVar()) return false; if (variableDescriptor instanceof PropertyDescriptor) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java index b95fe53a31c..129f63bbf09 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingUtils.java @@ -11,6 +11,7 @@ import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.psi.JetExpression; import org.jetbrains.jet.lang.psi.JetSimpleNameExpression; +import org.jetbrains.jet.lang.resolve.BindingContextUtils; import org.jetbrains.jet.lang.resolve.TraceBasedRedeclarationHandler; import org.jetbrains.jet.lang.resolve.calls.autocasts.DataFlowValueFactory; import org.jetbrains.jet.lang.resolve.scopes.WritableScopeImpl; @@ -102,7 +103,7 @@ public class ExpressionTypingUtils { public static void checkWrappingInRef(JetExpression expression, ExpressionTypingContext context) { if (!(expression instanceof JetSimpleNameExpression)) return; JetSimpleNameExpression simpleName = (JetSimpleNameExpression) expression; - VariableDescriptor variable = DataFlowValueFactory.getVariableDescriptorFromSimpleName(context.trace.getBindingContext(), simpleName); + VariableDescriptor variable = BindingContextUtils.extractVariableDescriptorIfAny(context.trace.getBindingContext(), simpleName, true); if (variable != null) { DeclarationDescriptor containingDeclaration = variable.getContainingDeclaration(); if (context.scope.getContainingDeclaration() != containingDeclaration && containingDeclaration instanceof CallableDescriptor) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java index 9686d71c786..f9010c9689b 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorForStatements.java @@ -146,8 +146,7 @@ public class ExpressionTypingVisitorForStatements extends BasicExpressionTypingV JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left; return resolveArrayAccessToLValue(arrayAccessExpression, right, expression.getOperationReference(), context); } - JetType leftType = left == null ? ErrorUtils.createErrorType("No expression") - : facade.getType(left, context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE).replaceScope(scope)); + JetType leftType = facade.getType(expression.getLeft(), context.replaceExpectedType(TypeUtils.NO_EXPECTED_TYPE).replaceScope(scope)); if (right != null) { JetType rightType = facade.getType(right, context.replaceExpectedType(leftType).replaceScope(scope)); }