Fix flow babel-generator function parantheses (#9523)

This commit is contained in:
Tan Li Hau 2019-02-18 07:17:52 +08:00 committed by Nicolò Ribaudo
parent 058f057426
commit 5bb1bb080f
6 changed files with 20 additions and 5 deletions

View File

@ -35,7 +35,16 @@ export function NullableTypeAnnotation(node: Object, parent: Object): boolean {
return t.isArrayTypeAnnotation(parent);
}
export { NullableTypeAnnotation as FunctionTypeAnnotation };
export function FunctionTypeAnnotation(node: Object, parent: Object): boolean {
return (
// (() => A) | (() => B)
t.isUnionTypeAnnotation(parent) ||
// (() => A) & (() => B)
t.isIntersectionTypeAnnotation(parent) ||
// (() => A)[]
t.isArrayTypeAnnotation(parent)
);
}
export function UpdateExpression(node: Object, parent: Object): boolean {
return (

View File

@ -7,4 +7,4 @@ opaque type union = {
} | {
type: "B"
};
opaque type overloads = (x: string) => number & (x: number) => string;
opaque type overloads = ((x: string) => number) & ((x: number) => string);

View File

@ -0,0 +1,3 @@
type A = (<T>(T) => $Foo<T>) & (<T>(T) => $Foo<T>);
type B = (<T>(T) => $Foo<T>) | (<T>(T) => $Foo<T>);
type C = (<T>(T) => $Foo<T>)[];

View File

@ -0,0 +1,3 @@
type A = (<T>(T) => $Foo<T>) & (<T>(T) => $Foo<T>);
type B = (<T>(T) => $Foo<T>) | (<T>(T) => $Foo<T>);
type C = (<T>(T) => $Foo<T>)[];

View File

@ -7,6 +7,6 @@ type union = {
} | {
type: "B"
};
type overloads = (x: string) => number & (x: number) => string;
type overloads = ((x: string) => number) & ((x: number) => string);
type func = (string) => string;
type D = X.Y<Z>;

View File

@ -180,7 +180,7 @@ class Array {
}
var x: () => number | () => string = fn;
var x: () => number | (() => string) = fn;
var x: typeof Y = Y;
var x: typeof Y | number = Y;
var {