@@ -6,7 +6,7 @@ import { isTupleReturnCall } from "../utils/annotations";
66import { validateAssignment } from "../utils/assignment-validation" ;
77import { unsupportedVarDeclaration } from "../utils/diagnostics" ;
88import { addExportToIdentifier } from "../utils/export" ;
9- import { createLocalOrExportedOrGlobalDeclaration , createUnpackCall } from "../utils/lua-ast" ;
9+ import { createLocalOrExportedOrGlobalDeclaration , createUnpackCall , wrapInTable } from "../utils/lua-ast" ;
1010import { LuaLibFeature , transformLuaLibFunction } from "../utils/lualib" ;
1111import { transformIdentifier } from "./identifier" ;
1212import { isMultiReturnCall } from "./language-extensions/multi" ;
@@ -158,9 +158,11 @@ export function transformBindingVariableDeclaration(
158158 // Contain the expression in a temporary variable
159159 table = lua . createAnonymousIdentifier ( ) ;
160160 if ( initializer ) {
161- statements . push (
162- lua . createVariableDeclarationStatement ( table , context . transformExpression ( initializer ) )
163- ) ;
161+ let expression = context . transformExpression ( initializer ) ;
162+ if ( isTupleReturnCall ( context , initializer ) || isMultiReturnCall ( context , initializer ) ) {
163+ expression = wrapInTable ( expression ) ;
164+ }
165+ statements . push ( lua . createVariableDeclarationStatement ( table , expression ) ) ;
164166 }
165167 }
166168 statements . push ( ...transformBindingPattern ( context , bindingPattern , table ) ) ;
0 commit comments