@@ -61,7 +61,7 @@ function transformMultiHelperCallArguments(
6161 return context . transformExpression ( expression ) ;
6262 }
6363
64- if ( expression . arguments . length < 1 ) {
64+ if ( expression . arguments . length === 0 ) {
6565 return lua . createNilLiteral ( expression ) ;
6666 }
6767
@@ -88,27 +88,17 @@ export function transformMultiHelperVariableDeclaration(
8888 const leftIdentifiers : lua . Identifier [ ] = [ ] ;
8989
9090 for ( const element of declaration . name . elements ) {
91- let expression : lua . Identifier | undefined ;
92-
93- if ( ts . isBindingElement ( element ) && ts . isIdentifier ( element . name ) ) {
91+ if ( ts . isBindingElement ( element ) ) {
9492 if ( element . initializer ) {
9593 context . diagnostics . push ( invalidMultiReturnArrayBindingPatternElementInitializer ( element ) ) ;
96- continue ;
94+ } else if ( ts . isIdentifier ( element . name ) ) {
95+ leftIdentifiers . push ( transformIdentifier ( context , element . name ) ) ;
9796 } else {
98- expression = transformIdentifier ( context , element . name ) ;
97+ context . diagnostics . push ( unsupportedMultiFunctionAssignment ( element ) ) ;
9998 }
99+ } else if ( ts . isOmittedExpression ( element ) ) {
100+ leftIdentifiers . push ( lua . createAnonymousIdentifier ( element ) ) ;
100101 }
101-
102- if ( ts . isOmittedExpression ( element ) ) {
103- expression = lua . createAnonymousIdentifier ( element ) ;
104- }
105-
106- if ( ! expression ) {
107- context . diagnostics . push ( unsupportedMultiFunctionAssignment ( element ) ) ;
108- continue ;
109- }
110-
111- leftIdentifiers . push ( expression ) ;
112102 }
113103
114104 const rightExpressions = transformMultiHelperCallArguments ( context , declaration . initializer ) ;
@@ -138,13 +128,10 @@ export function transformMultiHelperDestructuringAssignmentStatement(
138128 return [ ] ;
139129 }
140130
141- const transformLeft = ( expression : ts . Expression ) : lua . AssignmentLeftHandSideExpression => {
142- if ( ts . isOmittedExpression ( expression ) ) {
143- return lua . createAnonymousIdentifier ( expression ) ;
144- } else {
145- return transformAssignmentLeftHandSideExpression ( context , expression ) ;
146- }
147- } ;
131+ const transformLeft = ( expression : ts . Expression ) : lua . AssignmentLeftHandSideExpression =>
132+ ts . isOmittedExpression ( expression )
133+ ? lua . createAnonymousIdentifier ( expression )
134+ : transformAssignmentLeftHandSideExpression ( context , expression ) ;
148135
149136 const leftIdentifiers = statement . expression . left . elements . map ( transformLeft ) ;
150137
0 commit comments