diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/QualifiedExpressionTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/QualifiedExpressionTranslator.java index 158cedcb036..56b547723ec 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/QualifiedExpressionTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/QualifiedExpressionTranslator.java @@ -59,7 +59,7 @@ public final class QualifiedExpressionTranslator { @NotNull CallType callType, @NotNull TranslationContext context ) { - if (ReferenceTranslator.canBePropertyGetterCall(selector, context)) { + if (ReferenceTranslator.canBePropertyAccess(selector, context)) { assert selector instanceof JetSimpleNameExpression : "Selectors for properties must be simple names."; return new SimpleWrappedVariableAccessTranslator(context, (JetSimpleNameExpression)selector, receiver).translateAsGet(); } diff --git a/js/js.translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java b/js/js.translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java index 3151c90e500..08d2cdfaf5e 100644 --- a/js/js.translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java +++ b/js/js.translator/src/org/jetbrains/k2js/translate/reference/ReferenceTranslator.java @@ -84,34 +84,16 @@ public final class ReferenceTranslator { return ReferenceAccessTranslator.newInstance(referenceExpression, context); } - // TODO: drop this - private static boolean canBePropertyGetterCall(@NotNull JetQualifiedExpression expression, - @NotNull TranslationContext context) { - JetSimpleNameExpression selector = getSelectorAsSimpleName(expression); - assert selector != null : "Only names are allowed after the dot"; - return canBePropertyGetterCall(selector, context); - } - - private static boolean canBePropertyGetterCall(@NotNull JetSimpleNameExpression expression, - @NotNull TranslationContext context) { - return (getDescriptorForReferenceExpression - (context.bindingContext(), expression) instanceof PropertyDescriptor); - } - - public static boolean canBePropertyGetterCall(@NotNull JetExpression expression, - @NotNull TranslationContext context) { + public static boolean canBePropertyAccess(@NotNull JetExpression expression, @NotNull TranslationContext context) { + JetSimpleNameExpression simpleNameExpression = null; if (expression instanceof JetQualifiedExpression) { - return canBePropertyGetterCall((JetQualifiedExpression) expression, context); + simpleNameExpression = getSelectorAsSimpleName((JetQualifiedExpression) expression); } - if (expression instanceof JetSimpleNameExpression) { - return canBePropertyGetterCall((JetSimpleNameExpression) expression, context); + else if (expression instanceof JetSimpleNameExpression) { + simpleNameExpression = (JetSimpleNameExpression) expression; } - return false; - } - - public static boolean canBePropertyAccess(@NotNull JetExpression expression, - @NotNull TranslationContext context) { - return canBePropertyGetterCall(expression, context); + return simpleNameExpression != null && + (getDescriptorForReferenceExpression(context.bindingContext(), simpleNameExpression) instanceof PropertyDescriptor); } }