File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -99,6 +99,7 @@ export function getExtensionKindForSymbol(
9999export enum IterableExtensionKind {
100100 Iterable = "Iterable" ,
101101 Pairs = "Pairs" ,
102+ IPairs = "IPairs" ,
102103 PairsKey = "PairsKey" ,
103104}
104105
Original file line number Diff line number Diff line change @@ -101,6 +101,23 @@ export function transformForOfPairsIterableStatement(
101101 ) ;
102102}
103103
104+ export function transformForOfIPairsIterableStatement (
105+ context : TransformationContext ,
106+ statement : ts . ForOfStatement ,
107+ block : lua . Block
108+ ) : lua . Statement {
109+ const pairsCall = lua . createCallExpression ( lua . createIdentifier ( "ipairs" ) , [
110+ context . transformExpression ( statement . expression ) ,
111+ ] ) ;
112+ return transformForOfMultiIterableStatement (
113+ context ,
114+ statement ,
115+ block ,
116+ pairsCall ,
117+ invalidPairsIterableWithoutDestructuring
118+ ) ;
119+ }
120+
104121export function transformForOfPairsKeyIterableStatement (
105122 context : TransformationContext ,
106123 statement : ts . ForOfStatement ,
Original file line number Diff line number Diff line change @@ -6,6 +6,7 @@ import { isArrayType } from "../../utils/typescript";
66import {
77 transformForOfIterableStatement ,
88 transformForOfPairsIterableStatement ,
9+ transformForOfIPairsIterableStatement ,
910 transformForOfPairsKeyIterableStatement ,
1011} from "../language-extensions/iterable" ;
1112import { isRangeFunction , transformRangeStatement } from "../language-extensions/range" ;
@@ -54,6 +55,8 @@ export const transformForOfStatement: FunctionVisitor<ts.ForOfStatement> = (node
5455 return transformForOfIterableStatement ( context , node , body ) ;
5556 } else if ( iterableExtensionType === IterableExtensionKind . Pairs ) {
5657 return transformForOfPairsIterableStatement ( context , node , body ) ;
58+ } else if ( iterableExtensionType === IterableExtensionKind . IPairs ) {
59+ return transformForOfIPairsIterableStatement ( context , node , body ) ;
5760 } else if ( iterableExtensionType === IterableExtensionKind . PairsKey ) {
5861 return transformForOfPairsKeyIterableStatement ( context , node , body ) ;
5962 } else {
You can’t perform that action at this time.
0 commit comments