From 599444fe7fc24511b34ae431fff4fc893ba0d9b7 Mon Sep 17 00:00:00 2001 From: Lucas Azzola Date: Mon, 22 May 2017 01:10:04 +1000 Subject: [PATCH] fix(typescript): add TSInterfaceHeritage to ast-types (#1644) --- src/typescript-ast-nodes.js | 7 ++++++- .../compiler/__snapshots__/jsfmt.spec.js.snap | 20 +++++++++++++++++++ .../compiler/anyIsAssignableToObject.ts | 7 +++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 tests/typescript/compiler/anyIsAssignableToObject.ts diff --git a/src/typescript-ast-nodes.js b/src/typescript-ast-nodes.js index f27ccb6e..f1ecf2fb 100644 --- a/src/typescript-ast-nodes.js +++ b/src/typescript-ast-nodes.js @@ -155,7 +155,7 @@ module.exports = function(fork) { .field("heritage", def("TSHeritageClause")) .field("id", def("Identifier")) .bases("Node"); - + def("TSInterfaceBody") .build("body") .field("body",[ def("TSPropertySignature")]) @@ -176,6 +176,11 @@ module.exports = function(fork) { def("TSAbstractClassDeclaration").build().bases("Node"); + def("TSInterfaceHeritage") + .build("id", "typeParameters") + .field("id", def("Identifier")) + .field("typeParameters", def("TSType")); + def("TSDecorator") .build("expression") .field("expression", def("Identifier")) diff --git a/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap b/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap index d6f6fdf1..3f4fb579 100644 --- a/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap +++ b/tests/typescript/compiler/__snapshots__/jsfmt.spec.js.snap @@ -13,6 +13,26 @@ class C { `; +exports[`anyIsAssignableToObject.ts 1`] = ` +interface P { + p: {}; +} + +interface Q extends P { // Check assignability here. Any is assignable to {} + p: any; +} +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +interface P { + p: {}; +} + +interface Q extends P { + // Check assignability here. Any is assignable to {} + p: any; +} + +`; + exports[`badArrayIndex.ts 1`] = ` var results = number[]; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ diff --git a/tests/typescript/compiler/anyIsAssignableToObject.ts b/tests/typescript/compiler/anyIsAssignableToObject.ts new file mode 100644 index 00000000..535ee9ba --- /dev/null +++ b/tests/typescript/compiler/anyIsAssignableToObject.ts @@ -0,0 +1,7 @@ +interface P { + p: {}; +} + +interface Q extends P { // Check assignability here. Any is assignable to {} + p: any; +}