Skip to content

Commit 2112cd4

Browse files
committed
Make TableExpression.fields not optional
1 parent 0d0e17a commit 2112cd4

File tree

4 files changed

+13
-25
lines changed

4 files changed

+13
-25
lines changed

src/LuaAST.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -687,15 +687,15 @@ export function createTableFieldExpression(
687687

688688
export interface TableExpression extends Expression {
689689
kind: SyntaxKind.TableExpression;
690-
fields?: TableFieldExpression[];
690+
fields: TableFieldExpression[];
691691
}
692692

693693
export function isTableExpression(node: Node): node is TableExpression {
694694
return node.kind === SyntaxKind.TableExpression;
695695
}
696696

697697
export function createTableExpression(
698-
fields?: TableFieldExpression[],
698+
fields: TableFieldExpression[] = [],
699699
tsOriginal?: ts.Node,
700700
parent?: Node
701701
): TableExpression {

src/LuaPrinter.ts

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -571,17 +571,7 @@ export class LuaPrinter {
571571
}
572572

573573
public printTableExpression(expression: tstl.TableExpression): SourceNode {
574-
const chunks: SourceChunk[] = [];
575-
576-
chunks.push("{");
577-
578-
if (expression.fields) {
579-
chunks.push(...this.printExpressionList(expression.fields));
580-
}
581-
582-
chunks.push("}");
583-
584-
return this.createSourceNode(expression, chunks);
574+
return this.createSourceNode(expression, ["{", ...this.printExpressionList(expression.fields), "}"]);
585575
}
586576

587577
public printUnaryExpression(expression: tstl.UnaryExpression): SourceNode {

src/LuaTransformer.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -785,7 +785,7 @@ export class LuaTransformer {
785785
const result: tstl.Statement[] = [];
786786

787787
// [____exports.]className = {}
788-
const classTable: tstl.Expression = tstl.createTableExpression([]);
788+
const classTable: tstl.Expression = tstl.createTableExpression();
789789

790790
const classVar = this.createLocalOrExportedOrGlobalDeclaration(className, classTable, statement);
791791
result.push(...classVar);
@@ -4830,16 +4830,14 @@ export class LuaTransformer {
48304830
const stringTableLiteral = tstl.createTableExpression(
48314831
strings.map(partialString => tstl.createTableFieldExpression(tstl.createStringLiteral(partialString)))
48324832
);
4833-
if (stringTableLiteral.fields) {
4834-
const rawStringArray = tstl.createTableExpression(
4835-
rawStrings.map(stringLiteral =>
4836-
tstl.createTableFieldExpression(tstl.createStringLiteral(stringLiteral))
4837-
)
4838-
);
4839-
stringTableLiteral.fields.push(
4840-
tstl.createTableFieldExpression(rawStringArray, tstl.createStringLiteral("raw"))
4841-
);
4842-
}
4833+
const rawStringArray = tstl.createTableExpression(
4834+
rawStrings.map(stringLiteral =>
4835+
tstl.createTableFieldExpression(tstl.createStringLiteral(stringLiteral))
4836+
)
4837+
);
4838+
stringTableLiteral.fields.push(
4839+
tstl.createTableFieldExpression(rawStringArray, tstl.createStringLiteral("raw"))
4840+
);
48434841

48444842
// Evaluate if there is a self parameter to be used.
48454843
const signature = this.checker.getResolvedSignature(expression);

src/TSHelper.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,7 @@ export function isSimpleExpression(expression: tstl.Expression): boolean {
869869

870870
case tstl.SyntaxKind.TableExpression:
871871
const tableExpression = expression as tstl.TableExpression;
872-
return !tableExpression.fields || tableExpression.fields.every(e => isSimpleExpression(e));
872+
return tableExpression.fields.every(e => isSimpleExpression(e));
873873

874874
case tstl.SyntaxKind.TableFieldExpression:
875875
const fieldExpression = expression as tstl.TableFieldExpression;

0 commit comments

Comments
 (0)