From d4e045ac2432e47c85976d4ea15806b9758bc547 Mon Sep 17 00:00:00 2001 From: Brian Ng Date: Wed, 23 Jan 2019 15:19:17 -0600 Subject: [PATCH] Fix support for Flow's QualifiedTypeIdentifier (#9396) --- .../test/fixtures/flow/interface-types/input.js | 1 + .../test/fixtures/flow/interface-types/output.js | 5 ++++- .../babel-generator/test/fixtures/flow/type-alias/input.js | 2 ++ .../babel-generator/test/fixtures/flow/type-alias/output.js | 1 + packages/babel-types/src/definitions/flow.js | 4 ++-- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/babel-generator/test/fixtures/flow/interface-types/input.js b/packages/babel-generator/test/fixtures/flow/interface-types/input.js index e475f614c9..77d12fad91 100644 --- a/packages/babel-generator/test/fixtures/flow/interface-types/input.js +++ b/packages/babel-generator/test/fixtures/flow/interface-types/input.js @@ -1,3 +1,4 @@ type A = interface { p: string }; type B = interface extends X { p: string }; type C = interface extends X, Y { p: string }; +type D = interface extends X.Y { p: string }; diff --git a/packages/babel-generator/test/fixtures/flow/interface-types/output.js b/packages/babel-generator/test/fixtures/flow/interface-types/output.js index 6fa9a97f7a..5f648bf747 100644 --- a/packages/babel-generator/test/fixtures/flow/interface-types/output.js +++ b/packages/babel-generator/test/fixtures/flow/interface-types/output.js @@ -6,4 +6,7 @@ type B = interface extends X { }; type C = interface extends X, Y { p: string -}; \ No newline at end of file +}; +type D = interface extends X.Y { + p: string +}; diff --git a/packages/babel-generator/test/fixtures/flow/type-alias/input.js b/packages/babel-generator/test/fixtures/flow/type-alias/input.js index ed16c5d28d..f71342c526 100644 --- a/packages/babel-generator/test/fixtures/flow/type-alias/input.js +++ b/packages/babel-generator/test/fixtures/flow/type-alias/input.js @@ -14,3 +14,5 @@ type overloads = ; type func = string => string; + +type D = X.Y; diff --git a/packages/babel-generator/test/fixtures/flow/type-alias/output.js b/packages/babel-generator/test/fixtures/flow/type-alias/output.js index dc12829d21..d08a5ee094 100644 --- a/packages/babel-generator/test/fixtures/flow/type-alias/output.js +++ b/packages/babel-generator/test/fixtures/flow/type-alias/output.js @@ -9,3 +9,4 @@ type union = { }; type overloads = (x: string) => number & (x: number) => string; type func = (string) => string; +type D = X.Y; diff --git a/packages/babel-types/src/definitions/flow.js b/packages/babel-types/src/definitions/flow.js index bb08e9112a..0bfa0ee128 100644 --- a/packages/babel-types/src/definitions/flow.js +++ b/packages/babel-types/src/definitions/flow.js @@ -191,7 +191,7 @@ defineType("GenericTypeAnnotation", { visitor: ["id", "typeParameters"], aliases: ["Flow", "FlowType"], fields: { - id: validateType("Identifier"), + id: validateType(["Identifier", "QualifiedTypeIdentifier"]), typeParameters: validateOptionalType("TypeParameterInstantiation"), }, }); @@ -204,7 +204,7 @@ defineType("InterfaceExtends", { visitor: ["id", "typeParameters"], aliases: ["Flow"], fields: { - id: validateType("Identifier"), + id: validateType(["Identifier", "QualifiedTypeIdentifier"]), typeParameters: validateOptionalType("TypeParameterInstantiation"), }, });