11import * as ts from "typescript" ;
22import * as lua from "../../../LuaAST" ;
3- import { cast } from "../../../utils" ;
43import { TransformationContext } from "../../context" ;
54import { validateAssignment } from "../../utils/assignment-validation" ;
65import { createExportedIdentifier , getDependenciesOfSymbol , isSymbolExported } from "../../utils/export" ;
@@ -9,7 +8,7 @@ import { LuaLibFeature, transformLuaLibFunction } from "../../utils/lualib";
98import { isArrayType , isDestructuringAssignment } from "../../utils/typescript" ;
109import { isArrayLength , transformDestructuringAssignment } from "./destructuring-assignments" ;
1110import { isMultiReturnCall } from "../language-extensions/multi" ;
12- import { notAllowedOptionalAssignment } from "../../utils/diagnostics" ;
11+ import { cannotAssignToNodeOfKind , notAllowedOptionalAssignment } from "../../utils/diagnostics" ;
1312import { transformElementAccessArgument } from "../access" ;
1413import { moveToPrecedingTemp , transformExpressionList } from "../expression-list" ;
1514import { transformInPrecedingStatementScope } from "../../utils/preceding-statements" ;
@@ -37,9 +36,16 @@ export function transformAssignmentLeftHandSideExpression(
3736 const symbol = context . checker . getSymbolAtLocation ( node ) ;
3837 const left = context . transformExpression ( node ) ;
3938
40- return lua . isIdentifier ( left ) && symbol && isSymbolExported ( context , symbol )
41- ? createExportedIdentifier ( context , left )
42- : cast ( left , lua . isAssignmentLeftHandSideExpression ) ;
39+ if ( lua . isIdentifier ( left ) && symbol && isSymbolExported ( context , symbol ) ) {
40+ return createExportedIdentifier ( context , left ) ;
41+ }
42+
43+ if ( lua . isAssignmentLeftHandSideExpression ( left ) ) {
44+ return left ;
45+ } else {
46+ context . diagnostics . push ( cannotAssignToNodeOfKind ( node , left . kind ) ) ;
47+ return lua . createAnonymousIdentifier ( ) ;
48+ }
4349}
4450
4551export function transformAssignment (
0 commit comments