diff --git a/packages/babel-generator/test/fixtures/flow/declare-statements/input.js b/packages/babel-generator/test/fixtures/flow/declare-statements/input.js index a0874c4d44a4..3a2d2aa6a74e 100644 --- a/packages/babel-generator/test/fixtures/flow/declare-statements/input.js +++ b/packages/babel-generator/test/fixtures/flow/declare-statements/input.js @@ -11,13 +11,13 @@ declare class A { static [ indexer: number]: string } declare class A { static () : number } declare class B { (): number } declare class A mixins B, C {} -declare type A = string +declare type A1 = string declare type T = { [k:string]: U } -declare type B = { +declare type B1 = { fn?: (foo: string) => void, } -declare interface I { foo: string } -declare interface I { foo: T } +declare interface I1 { foo: string } +declare interface I2 { foo: T } declare module.exports: { foo: string } declare opaque type Foo: Bar; declare opaque type ID; diff --git a/packages/babel-generator/test/fixtures/flow/declare-statements/output.js b/packages/babel-generator/test/fixtures/flow/declare-statements/output.js index 7be6ae40cec7..c5f087d49ab0 100644 --- a/packages/babel-generator/test/fixtures/flow/declare-statements/output.js +++ b/packages/babel-generator/test/fixtures/flow/declare-statements/output.js @@ -22,17 +22,17 @@ declare class B { (): number } declare class A mixins B, C {} -declare type A = string; +declare type A1 = string; declare type T = { [k: string]: U }; -declare type B = { +declare type B1 = { fn?: (foo: string) => void }; -declare interface I { +declare interface I1 { foo: string } -declare interface I { +declare interface I2 { foo: T } declare module.exports: { diff --git a/packages/babel-generator/test/fixtures/flow/def-site-variance/input.js b/packages/babel-generator/test/fixtures/flow/def-site-variance/input.js index 9f00e80993d1..0891ba212de5 100644 --- a/packages/babel-generator/test/fixtures/flow/def-site-variance/input.js +++ b/packages/babel-generator/test/fixtures/flow/def-site-variance/input.js @@ -5,10 +5,10 @@ type T2 = { +p: T }; type T3 = { -p: T }; type T4 = { +[k:K]: V }; type T5 = { -[k:K]: V }; -interface I { +p: T } -interface I { -p: T } -interface I { +[k:K]: V } -interface I { -[k:K]: V } +interface I1 { +p: T } +interface I2 { -p: T } +interface I3 { +[k:K]: V } +interface I4 { -[k:K]: V } declare class I { +p: T } declare class I { -p: T } declare class I { +[k:K]: V } diff --git a/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js b/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js index 5c2b69d1a6dd..66dd195d22e1 100644 --- a/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js +++ b/packages/babel-generator/test/fixtures/flow/def-site-variance/output.js @@ -15,16 +15,16 @@ type T4 = { type T5 = { -[k: K]: V }; -interface I { +interface I1 { +p: T } -interface I { +interface I2 { -p: T } -interface I { +interface I3 { +[k: K]: V } -interface I { +interface I4 { -[k: K]: V } declare class I { diff --git a/packages/babel-generator/test/fixtures/flow/internal-slot/input.js b/packages/babel-generator/test/fixtures/flow/internal-slot/input.js index b00d3bd76f22..6056da54458a 100644 --- a/packages/babel-generator/test/fixtures/flow/internal-slot/input.js +++ b/packages/babel-generator/test/fixtures/flow/internal-slot/input.js @@ -1,7 +1,7 @@ declare class C { static [[foo]]: T } declare class C { [[foo]]: T } -interface I { [[foo]]: X } -interface I { [[foo]](): X } +interface I1 { [[foo]]: X } +interface I2 { [[foo]](): X } type T1 = { [[foo]]: X } type T2 = { [[foo]](): X } type T3 = { [[foo]]?: X } diff --git a/packages/babel-generator/test/fixtures/flow/internal-slot/output.js b/packages/babel-generator/test/fixtures/flow/internal-slot/output.js index 2a48fb9f186a..3b2b5ece1a23 100644 --- a/packages/babel-generator/test/fixtures/flow/internal-slot/output.js +++ b/packages/babel-generator/test/fixtures/flow/internal-slot/output.js @@ -4,10 +4,10 @@ declare class C { declare class C { [[foo]]: T } -interface I { +interface I1 { [[foo]]: X } -interface I { +interface I2 { [[foo]]() => X } type T1 = { diff --git a/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/input.js b/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/input.js index dab9a962acf7..7e5fb6309d97 100644 --- a/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/input.js +++ b/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/input.js @@ -1,7 +1,7 @@ -interface A { +interface A1 { @@iterator(): Iterator; } -interface A { +interface A2 { @@asyncIterator(): Iterator; } diff --git a/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/output.js b/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/output.js index ef726ab2fc5b..57b22ad84495 100644 --- a/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/output.js +++ b/packages/babel-generator/test/fixtures/flow/iterator-inside-interface/output.js @@ -1,6 +1,6 @@ -interface A { +interface A1 { @@iterator(): Iterator } -interface A { +interface A2 { @@asyncIterator(): Iterator } \ No newline at end of file diff --git a/packages/babel-parser/src/plugins/flow.js b/packages/babel-parser/src/plugins/flow.js index 06c3d857c123..b355289df1fb 100644 --- a/packages/babel-parser/src/plugins/flow.js +++ b/packages/babel-parser/src/plugins/flow.js @@ -14,8 +14,9 @@ import { type BindingTypes, BIND_NONE, BIND_LEXICAL, + BIND_VAR, SCOPE_ARROW, - SCOPE_OTHER, + SCOPE_VAR, } from "../util/scopeflags"; const reservedTypes = [ @@ -182,7 +183,7 @@ export default (superClass: Class): Class => flowParseDeclareClass(node: N.FlowDeclareClass): N.FlowDeclareClass { this.next(); - this.flowParseInterfaceish(node, /*isClass*/ true); + this.flowParseInterfaceish(node, /*isClass*/ true, BIND_VAR); return this.finishNode(node, "DeclareClass"); } @@ -275,7 +276,7 @@ export default (superClass: Class): Class => } flowParseDeclareModule(node: N.FlowDeclareModule): N.FlowDeclareModule { - this.scope.enter(SCOPE_OTHER); + this.scope.enter(SCOPE_VAR); if (this.match(tt.string)) { node.id = this.parseExprAtom(); @@ -459,9 +460,10 @@ export default (superClass: Class): Class => flowParseInterfaceish( node: N.FlowDeclare, isClass?: boolean = false, + bindKind?: BindingTypes = BIND_LEXICAL, ): void { node.id = this.flowParseRestrictedIdentifier(/*liberal*/ !isClass); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); + this.scope.declareName(node.id.name, bindKind, node.id.start); if (this.isRelational("<")) { node.typeParameters = this.flowParseTypeParameterDeclaration(); diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-10044/input.js b/packages/babel-parser/test/fixtures/flow/regression/issue-10044/input.js index 56b6af08ad4b..4d3e8c48a837 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-10044/input.js +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-10044/input.js @@ -1,3 +1,8 @@ -interface Foo {} +declare class C1 {} +declare interface I1 {} +declare type T1 = number; -export type { Foo } +interface I2 {} +type T2 = number; + +export type { C1, I1, I2, T1, T2 } diff --git a/packages/babel-parser/test/fixtures/flow/regression/issue-10044/output.json b/packages/babel-parser/test/fixtures/flow/regression/issue-10044/output.json index 15c57d370772..5df63e757a77 100644 --- a/packages/babel-parser/test/fixtures/flow/regression/issue-10044/output.json +++ b/packages/babel-parser/test/fixtures/flow/regression/issue-10044/output.json @@ -1,38 +1,38 @@ { "type": "File", "start": 0, - "end": 37, + "end": 140, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 3, - "column": 19 + "line": 8, + "column": 34 } }, "program": { "type": "Program", "start": 0, - "end": 37, + "end": 140, "loc": { "start": { "line": 1, "column": 0 }, "end": { - "line": 3, - "column": 19 + "line": 8, + "column": 34 } }, "sourceType": "module", "interpreter": null, "body": [ { - "type": "InterfaceDeclaration", + "type": "DeclareClass", "start": 0, - "end": 16, + "end": 19, "loc": { "start": { "line": 1, @@ -40,25 +40,25 @@ }, "end": { "line": 1, - "column": 16 + "column": 19 } }, "id": { "type": "Identifier", - "start": 10, - "end": 13, + "start": 14, + "end": 16, "loc": { "start": { "line": 1, - "column": 10 + "column": 14 }, "end": { "line": 1, - "column": 13 + "column": 16 }, - "identifierName": "Foo" + "identifierName": "C1" }, - "name": "Foo" + "name": "C1" }, "typeParameters": null, "extends": [], @@ -66,16 +66,16 @@ "mixins": [], "body": { "type": "ObjectTypeAnnotation", - "start": 14, - "end": 16, + "start": 17, + "end": 19, "loc": { "start": { "line": 1, - "column": 14 + "column": 17 }, "end": { "line": 1, - "column": 16 + "column": 19 } }, "callProperties": [], @@ -86,9 +86,65 @@ } }, { - "type": "ExportNamedDeclaration", - "start": 18, - "end": 37, + "type": "DeclareInterface", + "start": 20, + "end": 43, + "loc": { + "start": { + "line": 2, + "column": 0 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "id": { + "type": "Identifier", + "start": 38, + "end": 40, + "loc": { + "start": { + "line": 2, + "column": 18 + }, + "end": { + "line": 2, + "column": 20 + }, + "identifierName": "I1" + }, + "name": "I1" + }, + "typeParameters": null, + "extends": [], + "implements": [], + "mixins": [], + "body": { + "type": "ObjectTypeAnnotation", + "start": 41, + "end": 43, + "loc": { + "start": { + "line": 2, + "column": 21 + }, + "end": { + "line": 2, + "column": 23 + } + }, + "callProperties": [], + "properties": [], + "indexers": [], + "internalSlots": [], + "exact": false + } + }, + { + "type": "DeclareTypeAlias", + "start": 44, + "end": 69, "loc": { "start": { "line": 3, @@ -96,57 +152,405 @@ }, "end": { "line": 3, - "column": 19 + "column": 25 + } + }, + "id": { + "type": "Identifier", + "start": 57, + "end": 59, + "loc": { + "start": { + "line": 3, + "column": 13 + }, + "end": { + "line": 3, + "column": 15 + }, + "identifierName": "T1" + }, + "name": "T1" + }, + "typeParameters": null, + "right": { + "type": "NumberTypeAnnotation", + "start": 62, + "end": 68, + "loc": { + "start": { + "line": 3, + "column": 18 + }, + "end": { + "line": 3, + "column": 24 + } + } + } + }, + { + "type": "InterfaceDeclaration", + "start": 71, + "end": 86, + "loc": { + "start": { + "line": 5, + "column": 0 + }, + "end": { + "line": 5, + "column": 15 + } + }, + "id": { + "type": "Identifier", + "start": 81, + "end": 83, + "loc": { + "start": { + "line": 5, + "column": 10 + }, + "end": { + "line": 5, + "column": 12 + }, + "identifierName": "I2" + }, + "name": "I2" + }, + "typeParameters": null, + "extends": [], + "implements": [], + "mixins": [], + "body": { + "type": "ObjectTypeAnnotation", + "start": 84, + "end": 86, + "loc": { + "start": { + "line": 5, + "column": 13 + }, + "end": { + "line": 5, + "column": 15 + } + }, + "callProperties": [], + "properties": [], + "indexers": [], + "internalSlots": [], + "exact": false + } + }, + { + "type": "TypeAlias", + "start": 87, + "end": 104, + "loc": { + "start": { + "line": 6, + "column": 0 + }, + "end": { + "line": 6, + "column": 17 + } + }, + "id": { + "type": "Identifier", + "start": 92, + "end": 94, + "loc": { + "start": { + "line": 6, + "column": 5 + }, + "end": { + "line": 6, + "column": 7 + }, + "identifierName": "T2" + }, + "name": "T2" + }, + "typeParameters": null, + "right": { + "type": "NumberTypeAnnotation", + "start": 97, + "end": 103, + "loc": { + "start": { + "line": 6, + "column": 10 + }, + "end": { + "line": 6, + "column": 16 + } + } + } + }, + { + "type": "ExportNamedDeclaration", + "start": 106, + "end": 140, + "loc": { + "start": { + "line": 8, + "column": 0 + }, + "end": { + "line": 8, + "column": 34 } }, "specifiers": [ { "type": "ExportSpecifier", - "start": 32, - "end": 35, + "start": 120, + "end": 122, "loc": { "start": { - "line": 3, + "line": 8, "column": 14 }, "end": { - "line": 3, - "column": 17 + "line": 8, + "column": 16 } }, "local": { "type": "Identifier", - "start": 32, - "end": 35, + "start": 120, + "end": 122, "loc": { "start": { - "line": 3, + "line": 8, "column": 14 }, "end": { - "line": 3, - "column": 17 + "line": 8, + "column": 16 }, - "identifierName": "Foo" + "identifierName": "C1" }, - "name": "Foo" + "name": "C1" }, "exported": { "type": "Identifier", - "start": 32, - "end": 35, + "start": 120, + "end": 122, "loc": { "start": { - "line": 3, + "line": 8, "column": 14 }, "end": { - "line": 3, - "column": 17 + "line": 8, + "column": 16 + }, + "identifierName": "C1" + }, + "name": "C1" + } + }, + { + "type": "ExportSpecifier", + "start": 124, + "end": 126, + "loc": { + "start": { + "line": 8, + "column": 18 + }, + "end": { + "line": 8, + "column": 20 + } + }, + "local": { + "type": "Identifier", + "start": 124, + "end": 126, + "loc": { + "start": { + "line": 8, + "column": 18 + }, + "end": { + "line": 8, + "column": 20 + }, + "identifierName": "I1" + }, + "name": "I1" + }, + "exported": { + "type": "Identifier", + "start": 124, + "end": 126, + "loc": { + "start": { + "line": 8, + "column": 18 + }, + "end": { + "line": 8, + "column": 20 + }, + "identifierName": "I1" + }, + "name": "I1" + } + }, + { + "type": "ExportSpecifier", + "start": 128, + "end": 130, + "loc": { + "start": { + "line": 8, + "column": 22 + }, + "end": { + "line": 8, + "column": 24 + } + }, + "local": { + "type": "Identifier", + "start": 128, + "end": 130, + "loc": { + "start": { + "line": 8, + "column": 22 + }, + "end": { + "line": 8, + "column": 24 + }, + "identifierName": "I2" + }, + "name": "I2" + }, + "exported": { + "type": "Identifier", + "start": 128, + "end": 130, + "loc": { + "start": { + "line": 8, + "column": 22 + }, + "end": { + "line": 8, + "column": 24 + }, + "identifierName": "I2" + }, + "name": "I2" + } + }, + { + "type": "ExportSpecifier", + "start": 132, + "end": 134, + "loc": { + "start": { + "line": 8, + "column": 26 + }, + "end": { + "line": 8, + "column": 28 + } + }, + "local": { + "type": "Identifier", + "start": 132, + "end": 134, + "loc": { + "start": { + "line": 8, + "column": 26 + }, + "end": { + "line": 8, + "column": 28 + }, + "identifierName": "T1" + }, + "name": "T1" + }, + "exported": { + "type": "Identifier", + "start": 132, + "end": 134, + "loc": { + "start": { + "line": 8, + "column": 26 + }, + "end": { + "line": 8, + "column": 28 + }, + "identifierName": "T1" + }, + "name": "T1" + } + }, + { + "type": "ExportSpecifier", + "start": 136, + "end": 138, + "loc": { + "start": { + "line": 8, + "column": 30 + }, + "end": { + "line": 8, + "column": 32 + } + }, + "local": { + "type": "Identifier", + "start": 136, + "end": 138, + "loc": { + "start": { + "line": 8, + "column": 30 + }, + "end": { + "line": 8, + "column": 32 + }, + "identifierName": "T2" + }, + "name": "T2" + }, + "exported": { + "type": "Identifier", + "start": 136, + "end": 138, + "loc": { + "start": { + "line": 8, + "column": 30 + }, + "end": { + "line": 8, + "column": 32 }, - "identifierName": "Foo" + "identifierName": "T2" }, - "name": "Foo" + "name": "T2" } } ], diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/input.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/input.js index e9ca299ae87e..666d38e3a4ed 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/input.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/input.js @@ -1,2 +1,2 @@ declare class foo {} -const foo = 1; +const foo1 = 1; diff --git a/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/output.js b/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/output.js index 9375fc4abd22..0332cc0604b1 100644 --- a/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/output.js +++ b/packages/babel-plugin-transform-block-scoping/test/fixtures/const-violations/flow-declar/output.js @@ -1 +1 @@ -var foo = 1; +var foo1 = 1; diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/input.js b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/input.js index 7c2826479454..64db78b233dc 100644 --- a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/input.js +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/input.js @@ -4,13 +4,13 @@ declare function foo(): void declare function foo(): void; declare function foo(): void; declare function foo(x: number, y: string): void; -declare class A {} -declare class A extends B { x: number } -declare class A { static foo(): number, static x : string } -declare class A { static [ indexer: number]: string } -declare class A { static () : number } -declare class A mixins B, C {} -declare type A = string +declare class A1 {} +declare class A1 extends B { x: number } +declare class A1 { static foo(): number, static x : string } +declare class A1 { static [ indexer: number]: string } +declare class A1 { static () : number } +declare class A1 mixins B, C {} +declare type A2 = string declare type T = { [k:string]: U } -declare interface I { foo: string } -declare interface I { foo: T } +declare interface I1 { foo: string } +declare interface I2 { foo: T } diff --git a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/output.js b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/output.js index 3be48955c146..3feecb2a9347 100644 --- a/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/output.js +++ b/packages/babel-plugin-transform-flow-comments/test/fixtures/flow-comments/declare-statements/output.js @@ -10,22 +10,22 @@ /*:: declare function foo(x: number, y: string): void;*/ -/*:: declare class A {}*/ +/*:: declare class A1 {}*/ -/*:: declare class A extends B { x: number }*/ +/*:: declare class A1 extends B { x: number }*/ -/*:: declare class A { static foo(): number, static x : string }*/ +/*:: declare class A1 { static foo(): number, static x : string }*/ -/*:: declare class A { static [ indexer: number]: string }*/ +/*:: declare class A1 { static [ indexer: number]: string }*/ -/*:: declare class A { static () : number }*/ +/*:: declare class A1 { static () : number }*/ -/*:: declare class A mixins B, C {}*/ +/*:: declare class A1 mixins B, C {}*/ -/*:: declare type A = string*/ +/*:: declare type A2 = string*/ /*:: declare type T = { [k:string]: U }*/ -/*:: declare interface I { foo: string }*/ +/*:: declare interface I1 { foo: string }*/ -/*:: declare interface I { foo: T }*/ +/*:: declare interface I2 { foo: T }*/ diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/def-site-variance/input.js b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/def-site-variance/input.js index eb188c5c908a..9cc374a5d523 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/def-site-variance/input.js +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/def-site-variance/input.js @@ -5,10 +5,10 @@ type T1 = { +p: T } type T2 = { -p: T } type T3 = { +[k:K]: V } type T4 = { -[k:K]: V } -interface I { +p: T } -interface I { -p: T } -interface I { +[k:K]: V } -interface I { -[k:K]: V } +interface I1 { +p: T } +interface I2 { -p: T } +interface I3 { +[k:K]: V } +interface I4 { -[k:K]: V } declare class I { +p: T } declare class I { -p: T } declare class I { +[k:K]: V } diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-declare-statements/input.js b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-declare-statements/input.js index 75b24828392c..10cce21e41f8 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-declare-statements/input.js +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-declare-statements/input.js @@ -4,14 +4,14 @@ declare function foo(): void declare function foo(): void; declare function foo(): void; declare function foo(x: number, y: string): void; -declare class A {} -declare class A extends B { x: number } -declare class A { static foo(): number; static x : string } -declare class A { static [ indexer: number]: string } -declare class A { static () : number } -declare class A mixins B, C {} -declare type A = string +declare class A1 {} +declare class A1 extends B { x: number } +declare class A1 { static foo(): number; static x : string } +declare class A1 { static [ indexer: number]: string } +declare class A1 { static () : number } +declare class A1 mixins B, C {} +declare type A2 = string declare type T = { [k:string]: U } -declare interface I { foo: string } -declare interface I { foo: T } +declare interface I1 { foo: string } +declare interface I2 { foo: T } declare module.exports: string; diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-interfaces-module-and-script/input.js b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-interfaces-module-and-script/input.js index 2e37dfaf618d..1ee5de6c9ea3 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-interfaces-module-and-script/input.js +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-interfaces-module-and-script/input.js @@ -1,7 +1,7 @@ -interface A {} -interface A extends B {} -interface A extends B, C {} -interface A { foo: () => number; } +interface A1 {} +interface A2 extends B {} +interface A3 extends B, C {} +interface A4 { foo: () => number; } interface Dictionary { [index: string]: string; length: number; } class Foo implements Bar {} class Foo2 extends Bar implements Bat, Man {} diff --git a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-iterator/input.js b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-iterator/input.js index 741c23987d23..7a1d4011b35a 100644 --- a/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-iterator/input.js +++ b/packages/babel-plugin-transform-flow-strip-types/test/fixtures/strip-types/strip-iterator/input.js @@ -6,10 +6,10 @@ declare class A { @@asyncIterator(): Iterator; } -interface A { +interface A1 { @@iterator(): Iterator; } -interface A { +interface A2 { @@asyncIterator(): Iterator; }