message: Fix contextual function call transform cubic complexity
diff: @@ -3971,10 +3971,6 @@ export class LuaTransformer {
  );
  } else {
  const parameters = this.transformArguments(node.arguments, signature);
  - let table = this.transformExpression(node.expression.expression);
  - if (tstl.isTableExpression(table)) {
  - table = tstl.createParenthesizedExpression(table);
  - }
  const signatureDeclaration = signature && signature.getDeclaration();
  if (
  !signatureDeclaration ||
  @@ -3983,6 +3979,11 @@ export class LuaTransformer {
  // table:name()
  return this.transformContextualCallExpression(node, parameters);
  } else {
  + let table = this.transformExpression(node.expression.expression);
  + if (tstl.isTableExpression(table)) {
  + table = tstl.createParenthesizedExpression(table);
  + }
  +
  // table.name()
  const callPath = tstl.createTableIndexExpression(
  table,
  @@ -4024,7 +4025,6 @@ export class LuaTransformer {
  transformedArguments: tstl.Expression[]
  ): ExpressionVisitResult {
  const left = ts.isCallExpression(node) ? node.expression : node.tag;
  - const leftHandSideExpression = this.transformExpression(left);
  if (
  ts.isPropertyAccessExpression(left) &&
  !luaKeywords.has(left.name.text) &&
  @@ -4064,7 +4064,8 @@ export class LuaTransformer {
  } else if (ts.isIdentifier(left)) {
  const context = this.isStrict ? tstl.createNilLiteral() : tstl.createIdentifier("_G");
  transformedArguments.unshift(context);
  - return tstl.createCallExpression(leftHandSideExpression, transformedArguments, node);
  + const expression = this.transformExpression(left);
  + return tstl.createCallExpression(expression, transformedArguments, node);
  } else {
  throw TSTLErrors.UnsupportedKind("Left Hand Side Call Expression", left.kind, left);
  }
  