From d82681bcf69ccc544dbb8c449f8be08305bd67a1 Mon Sep 17 00:00:00 2001 From: Sam Goldman Date: Fri, 14 Oct 2016 12:16:02 -0700 Subject: [PATCH] Add EmptyTypeAnnotation (#4724) Added to Flow in facebook/flow#c603505583993aa953904005f91c350f4b65d6bd Parser support added in babel/babylon#171. --- packages/babel-generator/src/generators/flow.js | 4 ++++ packages/babel-traverse/src/path/inference/index.js | 2 ++ packages/babel-types/README.md | 5 +++++ packages/babel-types/src/definitions/flow.js | 4 ++++ 4 files changed, 15 insertions(+) diff --git a/packages/babel-generator/src/generators/flow.js b/packages/babel-generator/src/generators/flow.js index 57a9aedc9cd63..4a2b8ff0f6cc1 100644 --- a/packages/babel-generator/src/generators/flow.js +++ b/packages/babel-generator/src/generators/flow.js @@ -167,6 +167,10 @@ export function MixedTypeAnnotation() { this.word("mixed"); } +export function EmptyTypeAnnotation() { + this.word("empty"); +} + export function NullableTypeAnnotation(node: Object) { this.token("?"); this.print(node.typeAnnotation, node); diff --git a/packages/babel-traverse/src/path/inference/index.js b/packages/babel-traverse/src/path/inference/index.js index d6b9c878f3372..55a52911a655a 100644 --- a/packages/babel-traverse/src/path/inference/index.js +++ b/packages/babel-traverse/src/path/inference/index.js @@ -73,6 +73,8 @@ function _isBaseType(baseName: string, type?, soft?): boolean { return t.isAnyTypeAnnotation(type); } else if (baseName === "mixed") { return t.isMixedTypeAnnotation(type); + } else if (baseName === "empty") { + return t.isEmptyTypeAnnotation(type); } else if (baseName === "void") { return t.isVoidTypeAnnotation(type); } else { diff --git a/packages/babel-types/README.md b/packages/babel-types/README.md index a8dc4f2728053..884aae17d6eac 100644 --- a/packages/babel-types/README.md +++ b/packages/babel-types/README.md @@ -755,6 +755,11 @@ See also `t.isMixedTypeAnnotation(node, opts)` and `t.assertMixedTypeAnnotation( Aliases: `Flow`, `FlowBaseAnnotation` +### t.emptyTypeAnnotation() + +See also `t.isEmptyTypeAnnotation(node, opts)` and `t.assertEmptyTypeAnnotation(node, opts)`. + +Aliases: `Flow`, `FlowBaseAnnotation` ### t.newExpression(callee, arguments) diff --git a/packages/babel-types/src/definitions/flow.js b/packages/babel-types/src/definitions/flow.js index 0a8a965e40420..308defb12fee6 100644 --- a/packages/babel-types/src/definitions/flow.js +++ b/packages/babel-types/src/definitions/flow.js @@ -167,6 +167,10 @@ defineType("MixedTypeAnnotation", { aliases: ["Flow", "FlowBaseAnnotation"] }); +defineType("EmptyTypeAnnotation", { + aliases: ["Flow", "FlowBaseAnnotation"] +}); + defineType("NullableTypeAnnotation", { visitor: ["typeAnnotation"], aliases: ["Flow"],