diff --git a/ts2panda/src/compiler.ts b/ts2panda/src/compiler.ts index 38596ff38f7a6462911af4b6569b046211a4022f..62418384154bee1174a4c92ef688bb9434756c96 100644 --- a/ts2panda/src/compiler.ts +++ b/ts2panda/src/compiler.ts @@ -533,6 +533,9 @@ export class Compiler { case ts.SyntaxKind.ExportDeclaration: case ts.SyntaxKind.NotEmittedStatement: case ts.SyntaxKind.InterfaceDeclaration: + case ts.SyntaxKind.EndOfDeclarationMarker: + case ts.SyntaxKind.ModuleDeclaration: + case ts.SyntaxKind.TypeAliasDeclaration: break; default: throw new Error("Statement " + this.getNodeName(stmt) + " is unimplemented"); diff --git a/ts2panda/src/compilerDriver.ts b/ts2panda/src/compilerDriver.ts index 66747fbe58bf73dd6c64988d265ee005de8509d1..7c98513005836b81d25722772a6770c8d58776ea 100644 --- a/ts2panda/src/compilerDriver.ts +++ b/ts2panda/src/compilerDriver.ts @@ -148,8 +148,11 @@ export class CompilerDriver { } compileForSyntaxCheck(node: ts.SourceFile): void { - let recorder = this.compilePrologue(node, false, true); - checkDuplicateDeclaration(recorder); + if (CompilerDriver.isTypeScriptSourceFile(node)) { + return; + } + let recorder = this.compilePrologue(node, false, true); + checkDuplicateDeclaration(recorder); } compile(node: ts.SourceFile): void { diff --git a/ts2panda/src/statement/classStatement.ts b/ts2panda/src/statement/classStatement.ts index 7bbe9b877020ed634ea40123d38c8ffb2b68a124..ace78ccba5dac0c932900b0dabb51245a86a631c 100644 --- a/ts2panda/src/statement/classStatement.ts +++ b/ts2panda/src/statement/classStatement.ts @@ -626,6 +626,7 @@ function generatePropertyFromExpr(node: ts.ClassLikeDeclaration, classFields: Ar break; } case ts.SyntaxKind.SemicolonClassElement: + case ts.SyntaxKind.IndexSignature: break; default: throw new Error("Unreachable Kind"); diff --git a/ts2panda/src/typeChecker.ts b/ts2panda/src/typeChecker.ts index 420c8b482bf4be74024024b158ab3faec6a1ccd3..3fd9c5518cf452cabb149936480d8f8d0125bb6c 100644 --- a/ts2panda/src/typeChecker.ts +++ b/ts2panda/src/typeChecker.ts @@ -351,7 +351,9 @@ export class TypeChecker { switch (node.kind) { case ts.SyntaxKind.VariableStatement: let variableStatementNode = ts.getOriginalNode(node); - this.formatVariableStatement(variableStatementNode); + if (variableStatementNode.kind == ts.SyntaxKind.VariableStatement) { + this.formatVariableStatement(variableStatementNode); + } break; case ts.SyntaxKind.FunctionDeclaration: let functionDeclNode = ts.getOriginalNode(node);