From e6420ad610d0820b2df68cb84076f2cd615b3d54 Mon Sep 17 00:00:00 2001 From: Perryvw Date: Tue, 9 Oct 2018 19:39:02 +0200 Subject: [PATCH] Support for NonNullExpression --- src/Transpiler.ts | 2 ++ test/unit/expressions.spec.ts | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/Transpiler.ts b/src/Transpiler.ts index 60d11f767..94070209e 100644 --- a/src/Transpiler.ts +++ b/src/Transpiler.ts @@ -803,6 +803,8 @@ export abstract class LuaTranspiler { return ""; case ts.SyntaxKind.SpreadElement: return this.transpileSpreadElement(node as ts.SpreadElement); + case ts.SyntaxKind.NonNullExpression: + return this.transpileExpression((node as ts.NonNullExpression).expression); case ts.SyntaxKind.Block: this.pushIndent(); const ret = "do \n" + this.transpileBlock(node as ts.Block) + "end\n"; diff --git a/test/unit/expressions.spec.ts b/test/unit/expressions.spec.ts index b868716f6..892b6186b 100644 --- a/test/unit/expressions.spec.ts +++ b/test/unit/expressions.spec.ts @@ -290,6 +290,14 @@ export class ExpressionTests { const result = util.transpileAndExecute(`let a = 4; {let a = 42; } return a;`); Expect(result).toBe(4); } + + @Test("Non-null expression") + public nonNullExpression(): void { + const result = util.transpileAndExecute(`function abc(): number | undefined { return 3; } + const a: number = abc()!; + return a;`); + Expect(result).toBe(3); + } // ==================================== // Test expected errors // ====================================