Add JetInvokeFunctionReference for JetCallExpression
This commit is contained in:
@@ -326,7 +326,10 @@ public final class ExpressionVisitor extends TranslatorVisitor<JsNode> {
|
||||
@NotNull
|
||||
public JsNode visitThisExpression(@NotNull JetThisExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
return context.getThisObject(getDescriptorForReferenceExpression(context.bindingContext(), expression.getInstanceReference()));
|
||||
DeclarationDescriptor thisExpression =
|
||||
getDescriptorForReferenceExpression(context.bindingContext(), expression.getInstanceReference());
|
||||
assert thisExpression != null : "This expression must reference a descriptor: " + expression.getText();
|
||||
return context.getThisObject(thisExpression);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+1
@@ -37,6 +37,7 @@ public final class ReferenceAccessTranslator extends AbstractTranslator implemen
|
||||
/*package*/ static ReferenceAccessTranslator newInstance(@NotNull JetSimpleNameExpression expression,
|
||||
@NotNull TranslationContext context) {
|
||||
DeclarationDescriptor referenceDescriptor = getDescriptorForReferenceExpression(context.bindingContext(), expression);
|
||||
assert referenceDescriptor != null : "JetSimpleName expression must reference a descriptor " + expression.getText();
|
||||
return new ReferenceAccessTranslator(referenceDescriptor, context);
|
||||
}
|
||||
|
||||
|
||||
@@ -123,13 +123,16 @@ public final class BindingUtils {
|
||||
return context.get(BindingContext.PRIMARY_CONSTRUCTOR_PARAMETER, parameter);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Nullable
|
||||
public static DeclarationDescriptor getDescriptorForReferenceExpression(@NotNull BindingContext context,
|
||||
@NotNull JetReferenceExpression reference) {
|
||||
DeclarationDescriptor referencedDescriptor = getNullableDescriptorForReferenceExpression(context, reference);
|
||||
assert referencedDescriptor != null
|
||||
: message(reference, "Reference expression must reference a descriptor for reference " + reference.getText());
|
||||
return referencedDescriptor;
|
||||
if (BindingContextUtils.isExpressionWithValidReference(reference, context)) {
|
||||
assert referencedDescriptor != null
|
||||
: message(reference, "Reference expression must reference a descriptor for reference " + reference.getText());
|
||||
return referencedDescriptor;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user