From ad0e1ba6decacca48a567b91001a3848fc32ab2f Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Wed, 8 Jun 2016 13:07:54 -0400 Subject: [PATCH] Support changes in flow parsing --- packages/babel-generator/src/generators/flow.js | 14 ++++++++++++++ packages/babel-generator/src/generators/types.js | 10 ---------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index d886840e27..cceef1c9f0 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -187,6 +187,20 @@ export function TypeAnnotation(node: Object) { this.print(node.typeAnnotation, node); } +export function TypeParameter(node: Object) { + if (node.variance === "plus") { + this.push("+"); + } else if (node.variance === "minus") { + this.push("-"); + } + + this.push(node.name); + + if (node.bound) { + this.print(node.bound, node); + } +} + export function TypeParameterInstantiation(node: Object) { this.push("<"); this.printJoin(node.params, node, { diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index 6ca86a74e1..aed1c3f35c 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -4,16 +4,6 @@ import * as t from "babel-types"; export function Identifier(node: Object) { - // FIXME: We hang variance off Identifer to support Flow's def-site variance. - // This is a terrible hack, but changing type annotations to use a new, - // dedicated node would be a breaking change. This should be cleaned up in - // the next major. - if (node.variance === "plus") { - this.push("+"); - } else if (node.variance === "minus") { - this.push("-"); - } - this.push(node.name); }