From ca78da65013d36d53da8843534c64561c6bdde35 Mon Sep 17 00:00:00 2001 From: Daniel Tschinder Date: Wed, 15 Feb 2017 22:37:19 +0100 Subject: [PATCH] Fix variance (#5320) --- packages/babel-generator/src/generators/flow.js | 10 ++++++---- packages/babel-generator/src/generators/types.js | 8 ++------ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index 5d15dd379a..0d90aa3e1c 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -146,10 +146,12 @@ export function _interfaceish(node: Object) { } export function _variance(node) { - if (node.variance === "plus") { - this.token("+"); - } else if (node.variance === "minus") { - this.token("-"); + if (node.variance) { + if (node.variance.kind === "plus") { + this.token("+"); + } else if (node.variance.kind === "minus") { + this.token("-"); + } } } diff --git a/packages/babel-generator/src/generators/types.js b/packages/babel-generator/src/generators/types.js index 5fada08e79..b61b53e142 100644 --- a/packages/babel-generator/src/generators/types.js +++ b/packages/babel-generator/src/generators/types.js @@ -2,14 +2,10 @@ import * as t from "babel-types"; import jsesc from "jsesc"; 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) { - if (node.variance === "plus") { + if (node.variance.kind === "plus") { this.token("+"); - } else if (node.variance === "minus") { + } else if (node.variance.kind === "minus") { this.token("-"); } }