Fix import & export bracket spacing (fixes #24)
This commit is contained in:
1 parent
3f949907a0
commit
7c21dd037f
40 files changed
+164
-164
No files matched your search
+3
-3
@@ -481,7 +481,7 @@ function genericPrintNoParens(path, options, print) {
|
||||
if (!foundImportSpecifier) {
|
||||
foundImportSpecifier = true;
|
||||
|
||||
parts.push(options.objectCurlySpacing ? "{ " : "{");
|
||||
parts.push(options.bracketSpacing ? "{ " : "{");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -491,7 +491,7 @@ function genericPrintNoParens(path, options, print) {
|
||||
);
|
||||
|
||||
if (foundImportSpecifier) {
|
||||
parts.push(options.objectCurlySpacing ? " }" : "}");
|
||||
parts.push(options.bracketSpacing ? " }" : "}");
|
||||
}
|
||||
|
||||
parts.push(" from ");
|
||||
@@ -1789,7 +1789,7 @@ function printReturnType(path, print) {
|
||||
function printExportDeclaration(path, options, print) {
|
||||
var decl = path.getValue();
|
||||
var parts = [ "export " ];
|
||||
var shouldPrintSpaces = options.objectCurlySpacing;
|
||||
var shouldPrintSpaces = options.bracketSpacing;
|
||||
|
||||
namedTypes.Declaration.assert(decl);
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ var b: string = test; // Error: number ~> string
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {test} from \"testmodule\";
|
||||
import { test } from \"testmodule\";
|
||||
|
||||
var a: number = test;
|
||||
var b: string = test; // Error: number ~> string"
|
||||
|
||||
@@ -6,6 +6,6 @@ import {doesntExist} from \"./SomeCSSFile.css\"; // Error: \`doestExist\` isn\'t
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {className} from \"./SomeCSSFile.css\";
|
||||
import {doesntExist} from \"./SomeCSSFile.css\"; // Error: \`doestExist\` isn\'t an export"
|
||||
import { className } from \"./SomeCSSFile.css\";
|
||||
import { doesntExist } from \"./SomeCSSFile.css\"; // Error: \`doestExist\` isn\'t an export"
|
||||
`;
|
||||
@@ -16,7 +16,7 @@ import {numVal as numVal2} from \'3DoesntExist\'; // Error
|
||||
/* @flow */
|
||||
|
||||
var m1 = require(\"1DoesntExist\");
|
||||
import {numVal as numVal1} from \"1DoesntExist\";
|
||||
import { numVal as numVal1 } from \"1DoesntExist\";
|
||||
var a_1: number = m1.numVal;
|
||||
var a_2: number = numVal1;
|
||||
|
||||
@@ -26,7 +26,7 @@ var a_2: number = numVal1;
|
||||
// match the given module name string is picked.
|
||||
var m2 = require(\"2DoesntExist\");
|
||||
// Error
|
||||
import {numVal as numVal2} from \"3DoesntExist\"; // Error"
|
||||
import { numVal as numVal2 } from \"3DoesntExist\"; // Error"
|
||||
`;
|
||||
|
||||
exports[`test Exists.js 1`] = `
|
||||
|
||||
@@ -31,7 +31,7 @@ var m1 = require(\"./1DoesntExist\");
|
||||
var a_1: number = m1.numVal;
|
||||
var a_2: string = m1.numVal;
|
||||
// Error: number ~> string
|
||||
import {numVal} from \"./1DoesntExist\";
|
||||
import { numVal } from \"./1DoesntExist\";
|
||||
var a_3: number = numVal;
|
||||
var a_4: string = numVal;
|
||||
// Error: number ~> string
|
||||
@@ -41,7 +41,7 @@ var m2 = require(\"./2DoesntExist\");
|
||||
var b_1: number = m2.numVal;
|
||||
var b_2: string = m2.numVal;
|
||||
// Error: number ~> string
|
||||
import {numVal as numVal2} from \"./3DoesntExist\";
|
||||
import { numVal as numVal2 } from \"./3DoesntExist\";
|
||||
var b_3: number = numVal2;
|
||||
var b_4: string = numVal2;
|
||||
// Error: number ~> string
|
||||
@@ -50,7 +50,7 @@ var m3 = require(\"4DoesntExist\");
|
||||
var c_1: number = m3.numVal;
|
||||
var c_2: string = m3.numVal;
|
||||
// Error: number ~> string
|
||||
import {numVal as numVal3} from \"5DoesntExist\";
|
||||
import { numVal as numVal3 } from \"5DoesntExist\";
|
||||
var c_3: number = numVal3;
|
||||
var c_4: string = numVal3; // Error: number ~> string"
|
||||
`;
|
||||
|
||||
@@ -8,7 +8,7 @@ import {name} from \"testproj\";
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {name} from \"testproj\";
|
||||
import { name } from \"testproj\";
|
||||
|
||||
(name: \"node_modules/testproj\");
|
||||
(name: \"custom_resolve_dir/testproj\"); // Error: Resolve from node_modules first!"
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ import {name} from \"testproj2\";
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {name} from \"testproj2\";
|
||||
import { name } from \"testproj2\";
|
||||
|
||||
(name: \"node_modules/testproj2\");
|
||||
// Error: Resolve from sibling \'custom_resolve_dir\' first!
|
||||
|
||||
@@ -95,5 +95,5 @@ import {_p} from \"./commonjs_export\";
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/* @flow */
|
||||
|
||||
import {_p} from \"./commonjs_export\";"
|
||||
import { _p } from \"./commonjs_export\";"
|
||||
`;
|
||||
@@ -99,7 +99,7 @@ exports[`test test_relative.js 1`] = `
|
||||
|
||||
(foo(): boolean); // Error: either Implementation ~> boolean or Definition ~> boolean
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
import {foo} from \"./A\";
|
||||
import { foo } from \"./A\";
|
||||
|
||||
(foo(): boolean); // Error: either Implementation ~> boolean or Definition ~> boolean"
|
||||
`;
|
||||
@@ -178,7 +178,7 @@ declare export default class FooImpl { givesANum(): number }
|
||||
// Regression test for https://github.com/facebook/flow/issues/511
|
||||
//
|
||||
// Default-exported class should also be available in local scope
|
||||
declare export {FooImpl as Foo}
|
||||
declare export { FooImpl as Foo }
|
||||
declare export function getAFoo(): FooImpl;"
|
||||
`;
|
||||
|
||||
@@ -335,7 +335,7 @@ declare export {
|
||||
* @flow
|
||||
*/
|
||||
|
||||
declare export {numberValue1, numberValue2 as numberValue2_renamed} from \"ES6_ExportFrom_Source1\""
|
||||
declare export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\""
|
||||
`;
|
||||
|
||||
exports[`test ES6_ExportFrom_Intermediary2.js 1`] = `
|
||||
@@ -354,7 +354,7 @@ declare export {
|
||||
* @flow
|
||||
*/
|
||||
|
||||
declare export {numberValue1, numberValue2 as numberValue2_renamed2} from \"ES6_ExportFrom_Source2\""
|
||||
declare export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\""
|
||||
`;
|
||||
|
||||
exports[`test ES6_ExportFrom_Source1.js 1`] = `
|
||||
@@ -427,10 +427,10 @@ var specifierNumber3 = 3;
|
||||
var groupedSpecifierNumber1 = 1;
|
||||
var groupedSpecifierNumber2 = 2;
|
||||
|
||||
declare export {specifierNumber1}
|
||||
declare export {specifierNumber2 as specifierNumber2Renamed}
|
||||
declare export {specifierNumber3}
|
||||
declare export {groupedSpecifierNumber1, groupedSpecifierNumber2}
|
||||
declare export { specifierNumber1 }
|
||||
declare export { specifierNumber2 as specifierNumber2Renamed }
|
||||
declare export { specifierNumber3 }
|
||||
declare export { groupedSpecifierNumber1, groupedSpecifierNumber2 }
|
||||
|
||||
declare export function givesANumber(): number;
|
||||
declare export class NumberGenerator { givesANumber(): number }
|
||||
@@ -470,9 +470,9 @@ var specifierNumber5 = 2;
|
||||
var groupedSpecifierNumber3 = 1;
|
||||
var groupedSpecifierNumber4 = 2;
|
||||
|
||||
declare export {specifierNumber4}
|
||||
declare export {specifierNumber5 as specifierNumber5Renamed}
|
||||
declare export {groupedSpecifierNumber3, groupedSpecifierNumber4}
|
||||
declare export { specifierNumber4 }
|
||||
declare export { specifierNumber5 as specifierNumber5Renamed }
|
||||
declare export { groupedSpecifierNumber3, groupedSpecifierNumber4 }
|
||||
|
||||
declare export function givesANumber2(): number;
|
||||
declare export class NumberGenerator2 { givesANumber(): number }
|
||||
@@ -871,13 +871,13 @@ import DefaultD from \"./D\";
|
||||
// ================================================ //
|
||||
// == CommonJS Clobbering Literal Exports -> ES6 == //
|
||||
// ================================================ //
|
||||
import {doesntExist1} from \"CommonJS_Clobbering_Lit\";
|
||||
import { doesntExist1 } from \"CommonJS_Clobbering_Lit\";
|
||||
// Error: Not an exported binding
|
||||
import {numberValue1} from \"CommonJS_Clobbering_Lit\";
|
||||
import { numberValue1 } from \"CommonJS_Clobbering_Lit\";
|
||||
var c1: number = numberValue1;
|
||||
var c2: string = numberValue1;
|
||||
// Error: number ~> string
|
||||
import {numberValue2 as numVal1} from \"CommonJS_Clobbering_Lit\";
|
||||
import { numberValue2 as numVal1 } from \"CommonJS_Clobbering_Lit\";
|
||||
var d1: number = numVal1;
|
||||
var d2: string = numVal1;
|
||||
// Error: number ~> string
|
||||
@@ -899,13 +899,13 @@ var f4: string = CJS_Clobb_Lit_NS.default.numberValue5;
|
||||
// ============================================== //
|
||||
// == CommonJS Clobbering Class Exports -> ES6 == //
|
||||
// ============================================== //
|
||||
import {doesntExist2} from \"CommonJS_Clobbering_Class\";
|
||||
import { doesntExist2 } from \"CommonJS_Clobbering_Class\";
|
||||
// Error: Not an exported binding
|
||||
// The following import should error because class statics are not turned into
|
||||
// named exports for now. This avoids complexities with polymorphic static
|
||||
// members (where the polymophism is defined on the class itself rather than the
|
||||
// method).
|
||||
import {staticNumber1, baseProp, childProp} from \"CommonJS_Clobbering_Class\";
|
||||
import { staticNumber1, baseProp, childProp } from \"CommonJS_Clobbering_Class\";
|
||||
// Error
|
||||
import CJS_Clobb_Class from \"CommonJS_Clobbering_Class\";
|
||||
new CJS_Clobb_Class();
|
||||
@@ -928,13 +928,13 @@ var i3: string = new CJS_Clobb_Class_NS.default().instNumber2();
|
||||
// =================================== //
|
||||
// == CommonJS Named Exports -> ES6 == //
|
||||
// =================================== //
|
||||
import {doesntExist3} from \"CommonJS_Named\";
|
||||
import { doesntExist3 } from \"CommonJS_Named\";
|
||||
// Error: Not an exported binding
|
||||
import {numberValue2} from \"CommonJS_Named\";
|
||||
import { numberValue2 } from \"CommonJS_Named\";
|
||||
var j1: number = numberValue2;
|
||||
var j2: string = numberValue2;
|
||||
// Error: number ~> string
|
||||
import {numberValue3 as numVal3} from \"CommonJS_Named\";
|
||||
import { numberValue3 as numVal3 } from \"CommonJS_Named\";
|
||||
var k1: number = numVal3;
|
||||
var k2: string = numVal3;
|
||||
// Error: number ~> string
|
||||
@@ -953,7 +953,7 @@ var m3: string = CJS_Named_NS.numberValue4;
|
||||
//////////////////////////////
|
||||
// == ES6 Default -> ES6 == //
|
||||
//////////////////////////////
|
||||
import {doesntExist4} from \"ES6_Default_AnonFunction1\";
|
||||
import { doesntExist4 } from \"ES6_Default_AnonFunction1\";
|
||||
// Error: Not an exported binding
|
||||
import ES6_Def_AnonFunc1 from \"ES6_Default_AnonFunction1\";
|
||||
var n1: number = ES6_Def_AnonFunc1();
|
||||
@@ -972,49 +972,49 @@ var q2: string = new ES6_Def_NamedClass1().givesANum();
|
||||
////////////////////////////
|
||||
import doesntExist5 from \"ES6_Named1\";
|
||||
// Error: Not an exported binding
|
||||
import {specifierNumber1 as specifierNumber1_1} from \"ES6_Named1\";
|
||||
import { specifierNumber1 as specifierNumber1_1 } from \"ES6_Named1\";
|
||||
var r1: number = specifierNumber1_1;
|
||||
var r2: string = specifierNumber1_1;
|
||||
// Error: number ~> string
|
||||
import {specifierNumber2Renamed} from \"ES6_Named1\";
|
||||
import { specifierNumber2Renamed } from \"ES6_Named1\";
|
||||
var s1: number = specifierNumber2Renamed;
|
||||
var s2: string = specifierNumber2Renamed;
|
||||
// Error: number ~> string
|
||||
import {specifierNumber3 as specifierNumber3Renamed} from \"ES6_Named1\";
|
||||
import { specifierNumber3 as specifierNumber3Renamed } from \"ES6_Named1\";
|
||||
var t1: number = specifierNumber3Renamed;
|
||||
var t2: string = specifierNumber3Renamed;
|
||||
// Error: number ~> string
|
||||
import {groupedSpecifierNumber1, groupedSpecifierNumber2} from \"ES6_Named1\";
|
||||
import { groupedSpecifierNumber1, groupedSpecifierNumber2 } from \"ES6_Named1\";
|
||||
var u1: number = groupedSpecifierNumber1;
|
||||
var u2: number = groupedSpecifierNumber2;
|
||||
var u3: string = groupedSpecifierNumber1;
|
||||
// Error: number ~> string
|
||||
var u4: string = groupedSpecifierNumber2;
|
||||
// Error: number ~> string
|
||||
import {givesANumber} from \"ES6_Named1\";
|
||||
import { givesANumber } from \"ES6_Named1\";
|
||||
var v1: number = givesANumber();
|
||||
var v2: string = givesANumber();
|
||||
// Error: number ~> string
|
||||
import {NumberGenerator} from \"ES6_Named1\";
|
||||
import { NumberGenerator } from \"ES6_Named1\";
|
||||
var w1: number = new NumberGenerator().givesANumber();
|
||||
var w2: string = new NumberGenerator().givesANumber();
|
||||
// Error: number ~> string
|
||||
import {varDeclNumber1, varDeclNumber2} from \"ES6_Named1\";
|
||||
import { varDeclNumber1, varDeclNumber2 } from \"ES6_Named1\";
|
||||
var x1: number = varDeclNumber1;
|
||||
var x2: number = varDeclNumber2;
|
||||
var x3: string = varDeclNumber1;
|
||||
// Error: number ~> string
|
||||
var x4: string = varDeclNumber2;
|
||||
// Error: number ~> string
|
||||
import {numberValue1 as numberValue4} from \"ES6_ExportFrom_Intermediary1\";
|
||||
import { numberValue1 as numberValue4 } from \"ES6_ExportFrom_Intermediary1\";
|
||||
var aa1: number = numberValue4;
|
||||
var aa2: string = numberValue4;
|
||||
// Error: number ~> string
|
||||
import {numberValue2_renamed} from \"ES6_ExportFrom_Intermediary1\";
|
||||
import { numberValue2_renamed } from \"ES6_ExportFrom_Intermediary1\";
|
||||
var ab1: number = numberValue2_renamed;
|
||||
var ab2: string = numberValue2_renamed;
|
||||
// Error: number ~> string
|
||||
import {numberValue1 as numberValue5} from \"ES6_ExportAllFrom_Intermediary1\";
|
||||
import { numberValue1 as numberValue5 } from \"ES6_ExportAllFrom_Intermediary1\";
|
||||
var ac1: number = numberValue5;
|
||||
var ac2: string = numberValue5;
|
||||
// Error: number ~> string
|
||||
@@ -1087,7 +1087,7 @@ var ar2: string = numberValue7;
|
||||
////////////////////////////////////////////////////////
|
||||
// == ES6 Default+Named -> ES6 import Default+Named== //
|
||||
////////////////////////////////////////////////////////
|
||||
import defaultNum, {str as namedStr} from \"./ES6_DefaultAndNamed\";
|
||||
import defaultNum, { str as namedStr } from \"./ES6_DefaultAndNamed\";
|
||||
|
||||
var as1: number = defaultNum;
|
||||
var as2: string = defaultNum;
|
||||
@@ -1105,12 +1105,12 @@ import \"./SideEffects\";
|
||||
//////////////////////////////////////////////
|
||||
import specifierNumber1 from \"ES6_Named1\";
|
||||
// Error: Did you mean \`import {specifierNumber1} from ...\`?
|
||||
import {specifierNumber} from \"ES6_Named1\";
|
||||
import { specifierNumber } from \"ES6_Named1\";
|
||||
// Error: Did you mean \`specifierNumber1\`?
|
||||
///////////////////////////////////////////////////
|
||||
// == Multi \`export *\` should combine exports == //
|
||||
///////////////////////////////////////////////////
|
||||
import {numberValue1 as numberValue8, numberValue2 as numberValue9} from \"./ES6_ExportAllFromMulti\";
|
||||
import { numberValue1 as numberValue8, numberValue2 as numberValue9 } from \"./ES6_ExportAllFromMulti\";
|
||||
|
||||
var at1: number = numberValue8;
|
||||
var at2: string = numberValue8;
|
||||
|
||||
@@ -32,9 +32,9 @@ import declare_module_exports from \"declare_module_exports\";
|
||||
(declare_module_exports: string);
|
||||
// Error: number ~> string
|
||||
// Error: Has no named export \"str\"!
|
||||
import {str} from \"declare_m_e_with_other_value_declares\";
|
||||
import { str } from \"declare_m_e_with_other_value_declares\";
|
||||
|
||||
import type {str2} from \"declare_m_e_with_other_type_declares\";
|
||||
import type { str2 } from \"declare_m_e_with_other_type_declares\";
|
||||
(\"asdf\": str2);
|
||||
(42: str2);
|
||||
// Error: number ~> string
|
||||
|
||||
@@ -37,21 +37,21 @@ blah(0, 0);
|
||||
////////////////////////////////////////////////////////////
|
||||
// == Import Declared Type Alias From Declared Module == //
|
||||
//////////////////////////////////////////////////////////
|
||||
import type {baz} from \"ModuleAliasFoo\";
|
||||
import {foo} from \"ModuleAliasFoo\";
|
||||
import type { baz } from \"ModuleAliasFoo\";
|
||||
import { foo } from \"ModuleAliasFoo\";
|
||||
var k1: baz = 42;
|
||||
var k2: baz = \"shab\";
|
||||
// Error: string to int
|
||||
var k3: toz = foo(k1);
|
||||
// works
|
||||
import type {toz} from \"ModuleAliasFoo\";
|
||||
import type { toz } from \"ModuleAliasFoo\";
|
||||
var k4: toz = foo(k1);
|
||||
// works
|
||||
//////////////////////////////////////////////////////////
|
||||
// == Declared Module with exports prop (issue 880) == //
|
||||
////////////////////////////////////////////////////////
|
||||
import blah from \"foo\";
|
||||
import type {Foo, Bar, Id} from \"foo\";
|
||||
import type { Foo, Bar, Id } from \"foo\";
|
||||
|
||||
blah(0, 0);
|
||||
|
||||
|
||||
@@ -232,7 +232,7 @@ import * as t from \"./jsAst\";
|
||||
|
||||
const b = t.builders;
|
||||
|
||||
import type {TypedNode} from \"./ast\";
|
||||
import type { TypedNode } from \"./ast\";
|
||||
|
||||
function getBinaryOp(
|
||||
op: \"plus\" | \"minus\" | \"divide\" | \"multiply\"
|
||||
|
||||
@@ -409,7 +409,7 @@ export {
|
||||
* @flow
|
||||
*/
|
||||
|
||||
export {numberValue1, numberValue2 as numberValue2_renamed} from \"ES6_ExportFrom_Source1\""
|
||||
export { numberValue1, numberValue2 as numberValue2_renamed } from \"ES6_ExportFrom_Source1\""
|
||||
`;
|
||||
|
||||
exports[`test ES6_ExportFrom_Intermediary2.js 1`] = `
|
||||
@@ -428,7 +428,7 @@ export {
|
||||
* @flow
|
||||
*/
|
||||
|
||||
export {numberValue1, numberValue2 as numberValue2_renamed2} from \"ES6_ExportFrom_Source2\""
|
||||
export { numberValue1, numberValue2 as numberValue2_renamed2 } from \"ES6_ExportFrom_Source2\""
|
||||
`;
|
||||
|
||||
exports[`test ES6_ExportFrom_Source1.js 1`] = `
|
||||
@@ -498,10 +498,10 @@ var specifierNumber3 = 3;
|
||||
var groupedSpecifierNumber1 = 1;
|
||||
var groupedSpecifierNumber2 = 2;
|
||||
|
||||
export {specifierNumber1}
|
||||
export {specifierNumber2 as specifierNumber2Renamed}
|
||||
export {specifierNumber3}
|
||||
export {groupedSpecifierNumber1, groupedSpecifierNumber2}
|
||||
export { specifierNumber1 }
|
||||
export { specifierNumber2 as specifierNumber2Renamed }
|
||||
export { specifierNumber3 }
|
||||
export { groupedSpecifierNumber1, groupedSpecifierNumber2 }
|
||||
|
||||
export function givesANumber(): number {
|
||||
return 42;
|
||||
@@ -550,9 +550,9 @@ var specifierNumber5 = 2;
|
||||
var groupedSpecifierNumber3 = 1;
|
||||
var groupedSpecifierNumber4 = 2;
|
||||
|
||||
export {specifierNumber4}
|
||||
export {specifierNumber5 as specifierNumber5Renamed}
|
||||
export {groupedSpecifierNumber3, groupedSpecifierNumber4}
|
||||
export { specifierNumber4 }
|
||||
export { specifierNumber5 as specifierNumber5Renamed }
|
||||
export { groupedSpecifierNumber3, groupedSpecifierNumber4 }
|
||||
|
||||
export function givesANumber2(): number {
|
||||
return 42;
|
||||
@@ -974,13 +974,13 @@ import DefaultD from \"./D\";
|
||||
// ================================================ //
|
||||
// == CommonJS Clobbering Literal Exports -> ES6 == //
|
||||
// ================================================ //
|
||||
import {doesntExist1} from \"CommonJS_Clobbering_Lit\";
|
||||
import { doesntExist1 } from \"CommonJS_Clobbering_Lit\";
|
||||
// Error: Not an exported binding
|
||||
import {numberValue1} from \"CommonJS_Clobbering_Lit\";
|
||||
import { numberValue1 } from \"CommonJS_Clobbering_Lit\";
|
||||
var c1: number = numberValue1;
|
||||
var c2: string = numberValue1;
|
||||
// Error: number ~> string
|
||||
import {numberValue2 as numVal1} from \"CommonJS_Clobbering_Lit\";
|
||||
import { numberValue2 as numVal1 } from \"CommonJS_Clobbering_Lit\";
|
||||
var d1: number = numVal1;
|
||||
var d2: string = numVal1;
|
||||
// Error: number ~> string
|
||||
@@ -1002,13 +1002,13 @@ var f4: string = CJS_Clobb_Lit_NS.default.numberValue5;
|
||||
// ============================================== //
|
||||
// == CommonJS Clobbering Class Exports -> ES6 == //
|
||||
// ============================================== //
|
||||
import {doesntExist2} from \"CommonJS_Clobbering_Class\";
|
||||
import { doesntExist2 } from \"CommonJS_Clobbering_Class\";
|
||||
// Error: Not an exported binding
|
||||
// The following import should error because class statics are not turned into
|
||||
// named exports for now. This avoids complexities with polymorphic static
|
||||
// members (where the polymophism is defined on the class itself rather than the
|
||||
// method).
|
||||
import {staticNumber1, baseProp, childProp} from \"CommonJS_Clobbering_Class\";
|
||||
import { staticNumber1, baseProp, childProp } from \"CommonJS_Clobbering_Class\";
|
||||
// Error
|
||||
import CJS_Clobb_Class from \"CommonJS_Clobbering_Class\";
|
||||
new CJS_Clobb_Class();
|
||||
@@ -1031,13 +1031,13 @@ var i3: string = new CJS_Clobb_Class_NS.default().instNumber2();
|
||||
// =================================== //
|
||||
// == CommonJS Named Exports -> ES6 == //
|
||||
// =================================== //
|
||||
import {doesntExist3} from \"CommonJS_Named\";
|
||||
import { doesntExist3 } from \"CommonJS_Named\";
|
||||
// Error: Not an exported binding
|
||||
import {numberValue2} from \"CommonJS_Named\";
|
||||
import { numberValue2 } from \"CommonJS_Named\";
|
||||
var j1: number = numberValue2;
|
||||
var j2: string = numberValue2;
|
||||
// Error: number ~> string
|
||||
import {numberValue3 as numVal3} from \"CommonJS_Named\";
|
||||
import { numberValue3 as numVal3 } from \"CommonJS_Named\";
|
||||
var k1: number = numVal3;
|
||||
var k2: string = numVal3;
|
||||
// Error: number ~> string
|
||||
@@ -1056,7 +1056,7 @@ var m3: string = CJS_Named_NS.numberValue4;
|
||||
//////////////////////////////
|
||||
// == ES6 Default -> ES6 == //
|
||||
//////////////////////////////
|
||||
import {doesntExist4} from \"ES6_Default_AnonFunction1\";
|
||||
import { doesntExist4 } from \"ES6_Default_AnonFunction1\";
|
||||
// Error: Not an exported binding
|
||||
import ES6_Def_AnonFunc1 from \"ES6_Default_AnonFunction1\";
|
||||
var n1: number = ES6_Def_AnonFunc1();
|
||||
@@ -1079,57 +1079,57 @@ var q2: string = new ES6_Def_NamedClass1().givesANum();
|
||||
////////////////////////////
|
||||
import doesntExist5 from \"ES6_Named1\";
|
||||
// Error: Not an exported binding
|
||||
import {specifierNumber1 as specifierNumber1_1} from \"ES6_Named1\";
|
||||
import { specifierNumber1 as specifierNumber1_1 } from \"ES6_Named1\";
|
||||
var r1: number = specifierNumber1_1;
|
||||
var r2: string = specifierNumber1_1;
|
||||
// Error: number ~> string
|
||||
import {specifierNumber2Renamed} from \"ES6_Named1\";
|
||||
import { specifierNumber2Renamed } from \"ES6_Named1\";
|
||||
var s1: number = specifierNumber2Renamed;
|
||||
var s2: string = specifierNumber2Renamed;
|
||||
// Error: number ~> string
|
||||
import {specifierNumber3 as specifierNumber3Renamed} from \"ES6_Named1\";
|
||||
import { specifierNumber3 as specifierNumber3Renamed } from \"ES6_Named1\";
|
||||
var t1: number = specifierNumber3Renamed;
|
||||
var t2: string = specifierNumber3Renamed;
|
||||
// Error: number ~> string
|
||||
import {groupedSpecifierNumber1, groupedSpecifierNumber2} from \"ES6_Named1\";
|
||||
import { groupedSpecifierNumber1, groupedSpecifierNumber2 } from \"ES6_Named1\";
|
||||
var u1: number = groupedSpecifierNumber1;
|
||||
var u2: number = groupedSpecifierNumber2;
|
||||
var u3: string = groupedSpecifierNumber1;
|
||||
// Error: number ~> string
|
||||
var u4: string = groupedSpecifierNumber2;
|
||||
// Error: number ~> string
|
||||
import {givesANumber} from \"ES6_Named1\";
|
||||
import { givesANumber } from \"ES6_Named1\";
|
||||
var v1: number = givesANumber();
|
||||
var v2: string = givesANumber();
|
||||
// Error: number ~> string
|
||||
import {NumberGenerator} from \"ES6_Named1\";
|
||||
import { NumberGenerator } from \"ES6_Named1\";
|
||||
var w1: number = new NumberGenerator().givesANumber();
|
||||
var w2: string = new NumberGenerator().givesANumber();
|
||||
// Error: number ~> string
|
||||
import {varDeclNumber1, varDeclNumber2} from \"ES6_Named1\";
|
||||
import { varDeclNumber1, varDeclNumber2 } from \"ES6_Named1\";
|
||||
var x1: number = varDeclNumber1;
|
||||
var x2: number = varDeclNumber2;
|
||||
var x3: string = varDeclNumber1;
|
||||
// Error: number ~> string
|
||||
var x4: string = varDeclNumber2;
|
||||
// Error: number ~> string
|
||||
import {destructuredObjNumber} from \"ES6_Named1\";
|
||||
import { destructuredObjNumber } from \"ES6_Named1\";
|
||||
var y1: number = destructuredObjNumber;
|
||||
var y2: string = destructuredObjNumber;
|
||||
// Error: number ~> string
|
||||
import {destructuredArrNumber} from \"ES6_Named1\";
|
||||
import { destructuredArrNumber } from \"ES6_Named1\";
|
||||
var z1: number = destructuredArrNumber;
|
||||
var z2: string = destructuredArrNumber;
|
||||
// Error: number ~> string
|
||||
import {numberValue1 as numberValue4} from \"ES6_ExportFrom_Intermediary1\";
|
||||
import { numberValue1 as numberValue4 } from \"ES6_ExportFrom_Intermediary1\";
|
||||
var aa1: number = numberValue4;
|
||||
var aa2: string = numberValue4;
|
||||
// Error: number ~> string
|
||||
import {numberValue2_renamed} from \"ES6_ExportFrom_Intermediary1\";
|
||||
import { numberValue2_renamed } from \"ES6_ExportFrom_Intermediary1\";
|
||||
var ab1: number = numberValue2_renamed;
|
||||
var ab2: string = numberValue2_renamed;
|
||||
// Error: number ~> string
|
||||
import {numberValue1 as numberValue5} from \"ES6_ExportAllFrom_Intermediary1\";
|
||||
import { numberValue1 as numberValue5 } from \"ES6_ExportAllFrom_Intermediary1\";
|
||||
var ac1: number = numberValue5;
|
||||
var ac2: string = numberValue5;
|
||||
// Error: number ~> string
|
||||
@@ -1214,7 +1214,7 @@ var ar2: string = numberValue7;
|
||||
////////////////////////////////////////////////////////
|
||||
// == ES6 Default+Named -> ES6 import Default+Named== //
|
||||
////////////////////////////////////////////////////////
|
||||
import defaultNum, {str as namedStr} from \"./ES6_DefaultAndNamed\";
|
||||
import defaultNum, { str as namedStr } from \"./ES6_DefaultAndNamed\";
|
||||
|
||||
var as1: number = defaultNum;
|
||||
var as2: string = defaultNum;
|
||||
@@ -1232,12 +1232,12 @@ import \"./SideEffects\";
|
||||
//////////////////////////////////////////////
|
||||
import specifierNumber1 from \"ES6_Named1\";
|
||||
// Error: Did you mean \`import {specifierNumber1} from ...\`?
|
||||
import {specifierNumber} from \"ES6_Named1\";
|
||||
import { specifierNumber } from \"ES6_Named1\";
|
||||
// Error: Did you mean \`specifierNumber1\`?
|
||||
///////////////////////////////////////////////////
|
||||
// == Multi \`export *\` should combine exports == //
|
||||
///////////////////////////////////////////////////
|
||||
import {numberValue1 as numberValue8, numberValue2 as numberValue9} from \"./ES6_ExportAllFromMulti\";
|
||||
import { numberValue1 as numberValue8, numberValue2 as numberValue9 } from \"./ES6_ExportAllFromMulti\";
|
||||
|
||||
var at1: number = numberValue8;
|
||||
var at2: string = numberValue8;
|
||||
@@ -1248,7 +1248,7 @@ var at4: string = numberValue9;
|
||||
/////////////////////////////////////////////////////////////
|
||||
// == Vanilla \`import\` cannot import a type-only export == //
|
||||
/////////////////////////////////////////////////////////////
|
||||
import {typeAlias} from \"./ExportType\"; // Error: Cannot vanilla-import a type alias!"
|
||||
import { typeAlias } from \"./ExportType\"; // Error: Cannot vanilla-import a type alias!"
|
||||
`;
|
||||
|
||||
exports[`test test_imports_are_frozen.js 1`] = `
|
||||
|
||||
@@ -43,7 +43,7 @@ import {exports as nope} from \"ES\"; // Error: Not an export
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {num1, str1} from \"CJS_Named\";
|
||||
import { num1, str1 } from \"CJS_Named\";
|
||||
import CJS_Named from \"CJS_Named\";
|
||||
(num1: number);
|
||||
(num1: string);
|
||||
@@ -54,39 +54,39 @@ import CJS_Named from \"CJS_Named\";
|
||||
(CJS_Named: { num1: number, str1: string });
|
||||
(CJS_Named: number);
|
||||
// Error: Module ~> number
|
||||
import {num2} from \"CJS_Clobbered\";
|
||||
import { num2 } from \"CJS_Clobbered\";
|
||||
// Error: No such export!
|
||||
import {numExport} from \"CJS_Clobbered\";
|
||||
import { numExport } from \"CJS_Clobbered\";
|
||||
(numExport: number);
|
||||
(numExport: string);
|
||||
// Error: number ~> string
|
||||
import type {numType} from \"CJS_Clobbered\";
|
||||
import type { numType } from \"CJS_Clobbered\";
|
||||
(42: numType);
|
||||
(\"asdf\": numType);
|
||||
// Error: string ~> number
|
||||
import {strHidden} from \"ES\";
|
||||
import { strHidden } from \"ES\";
|
||||
// Error: No such export!
|
||||
import {str3} from \"ES\";
|
||||
import { str3 } from \"ES\";
|
||||
(str3: string);
|
||||
(str3: number);
|
||||
// Error: string ~> number
|
||||
import {num3} from \"ES\";
|
||||
import { num3 } from \"ES\";
|
||||
(num3: number);
|
||||
(num3: string);
|
||||
// Error: number ~> string
|
||||
import {C} from \"ES\";
|
||||
import type {C as CType} from \"ES\";
|
||||
import { C } from \"ES\";
|
||||
import type { C as CType } from \"ES\";
|
||||
(new C(): C);
|
||||
(42: C);
|
||||
// Error: number ~> C
|
||||
(new C(): CType);
|
||||
(42: CType);
|
||||
// Error: number ~> CType
|
||||
import {T} from \"ES\";
|
||||
import { T } from \"ES\";
|
||||
// Error: T is a type import, not a value
|
||||
import type {T as T2} from \"ES\";
|
||||
import type { T as T2 } from \"ES\";
|
||||
(42: T2);
|
||||
(\"asdf\": T2);
|
||||
// Error: string ~> number
|
||||
import {exports as nope} from \"ES\"; // Error: Not an export"
|
||||
import { exports as nope } from \"ES\"; // Error: Not an export"
|
||||
`;
|
||||
@@ -32,7 +32,7 @@ declare module \"CJS_Clobbered\" {
|
||||
}
|
||||
declare module \"ES\" {
|
||||
declare var strHidden: string;
|
||||
declare export {strHidden as str3}
|
||||
declare export { strHidden as str3 }
|
||||
declare export var num3: number;
|
||||
declare export class C {}
|
||||
declare export type T = number;
|
||||
|
||||
@@ -11,7 +11,7 @@ var d: number = source.str; // Error: num ~> string
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {source} from \"./test\";
|
||||
import { source } from \"./test\";
|
||||
|
||||
var a: number = source.num;
|
||||
var b: string = source.num;
|
||||
|
||||
@@ -11,7 +11,7 @@ var d: number = source.str; // Ignored error: num ~> string
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {source} from \"./test\";
|
||||
import { source } from \"./test\";
|
||||
|
||||
var a: number = source.num;
|
||||
var b: string = source.num;
|
||||
|
||||
@@ -50,7 +50,7 @@ var n: IFoo2 = {prop: 42}; // Error: {prop:number} ~> {prop:string}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/* @flow */
|
||||
|
||||
import type {inlinedType1, standaloneType1, talias1, talias3} from \"./types_only\";
|
||||
import type { inlinedType1, standaloneType1, talias1, talias3 } from \"./types_only\";
|
||||
|
||||
var a: inlinedType1 = 42;
|
||||
var b: inlinedType1 = \"asdf\";
|
||||
@@ -64,11 +64,11 @@ var f: talias1 = \"asdf\";
|
||||
var g: talias3 = 42;
|
||||
var h: talias3 = \"asdf\";
|
||||
// Error: string ~> number
|
||||
import type {talias4} from \"./cjs_with_types\";
|
||||
import type { talias4 } from \"./cjs_with_types\";
|
||||
var i: talias4 = 42;
|
||||
var j: talias4 = \"asdf\";
|
||||
// Error: string ~> number
|
||||
import {IFoo, IFoo2} from \"./types_only\";
|
||||
import { IFoo, IFoo2 } from \"./types_only\";
|
||||
|
||||
var k: IFoo = { prop: 42 };
|
||||
var l: IFoo = { prop: \"asdf\" };
|
||||
@@ -101,12 +101,12 @@ var a: inlinedType1 = 42;
|
||||
var b: inlinedType1 = \"asdf\";
|
||||
// Error: string ~> number
|
||||
type standaloneType1 = number;
|
||||
export type {standaloneType1}
|
||||
export type { standaloneType1 }
|
||||
|
||||
type standaloneType2 = number;
|
||||
export {standaloneType2}
|
||||
export { standaloneType2 }
|
||||
// Error: Missing \`type\` keyword
|
||||
export type {talias1, talias2 as talias3, IFoo2} from \"./types_only2\"
|
||||
export type { talias1, talias2 as talias3, IFoo2 } from \"./types_only2\"
|
||||
|
||||
export interface IFoo { prop: number }
|
||||
"
|
||||
|
||||
@@ -50,7 +50,7 @@ things;
|
||||
import thing from \"./helpers/exports_default.js\";
|
||||
thing;
|
||||
|
||||
import {foo, bar as baz} from \"./helpers/exports_named.js\";
|
||||
import { foo, bar as baz } from \"./helpers/exports_named.js\";
|
||||
foo;
|
||||
baz;
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ ParentFoo3;
|
||||
let foo = require(\"./Parent\").ParentFoo.foo;
|
||||
foo;
|
||||
|
||||
import type {Foo} from \"./types\";"
|
||||
import type { Foo } from \"./types\";"
|
||||
`;
|
||||
|
||||
exports[`test override.js 1`] = `
|
||||
|
||||
@@ -155,7 +155,7 @@ class ClassFoo2 {
|
||||
}
|
||||
}
|
||||
|
||||
export {ClassFoo2}
|
||||
export { ClassFoo2 }
|
||||
export var foo2Inst = new ClassFoo2();"
|
||||
`;
|
||||
|
||||
@@ -262,7 +262,7 @@ function foo() {
|
||||
/////////////////////////////////////////////////
|
||||
|
||||
import type ClassFoo1 from \"./ExportDefault_Class\";
|
||||
import {foo1Inst} from \"./ExportDefault_Class\";
|
||||
import { foo1Inst } from \"./ExportDefault_Class\";
|
||||
|
||||
var a1: ClassFoo1 = foo1Inst;
|
||||
var a2: number = foo1Inst;
|
||||
@@ -272,8 +272,8 @@ new ClassFoo1();
|
||||
///////////////////////////////////////////////
|
||||
// == Importing Class Type (Named Export) == //
|
||||
///////////////////////////////////////////////
|
||||
import type {ClassFoo2} from \"./ExportNamed_Class\";
|
||||
import {foo2Inst} from \"./ExportNamed_Class\";
|
||||
import type { ClassFoo2 } from \"./ExportNamed_Class\";
|
||||
import { foo2Inst } from \"./ExportNamed_Class\";
|
||||
|
||||
var b1: ClassFoo2 = foo2Inst;
|
||||
var b2: number = foo2Inst;
|
||||
@@ -291,8 +291,8 @@ new ClassFoo3T();
|
||||
///////////////////////////////////////////////////
|
||||
// == Importing Class Type (CJS Named Export) == //
|
||||
///////////////////////////////////////////////////
|
||||
import type {ClassFoo4, ClassFoo5} from \"./ExportCJSNamed_Class\";
|
||||
import {foo4Inst, foo5Inst} from \"./ExportCJSNamed_Class\";
|
||||
import type { ClassFoo4, ClassFoo5 } from \"./ExportCJSNamed_Class\";
|
||||
import { foo4Inst, foo5Inst } from \"./ExportCJSNamed_Class\";
|
||||
|
||||
var d1: ClassFoo4 = foo4Inst;
|
||||
var d2: number = foo4Inst;
|
||||
@@ -305,8 +305,8 @@ var d3: typeof ClassFoo5 = foo5Inst;
|
||||
////////////////////////////////////////////
|
||||
// == Import Type Alias (Named Export) == //
|
||||
////////////////////////////////////////////
|
||||
import type {AliasFoo3} from \"./ExportNamed_Alias\";
|
||||
import {givesAFoo3Obj} from \"./ExportNamed_Alias\";
|
||||
import type { AliasFoo3 } from \"./ExportNamed_Alias\";
|
||||
import { givesAFoo3Obj } from \"./ExportNamed_Alias\";
|
||||
var e1: AliasFoo3 = givesAFoo3Obj();
|
||||
var e2: number = givesAFoo3Obj();
|
||||
// Error: AliasFoo3 ~> number
|
||||
@@ -321,7 +321,7 @@ var e3: typeof AliasFoo3 = givesAFoo3Obj();
|
||||
///////////////////////////////////////////////////////
|
||||
// == Import Type With Non-Alias Compatible Value == //
|
||||
///////////////////////////////////////////////////////
|
||||
import type {numValue} from \"./ExportsANumber\";
|
||||
import type { numValue } from \"./ExportsANumber\";
|
||||
// Error: Cannot import-type a number value
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// == Regression Test: https://github.com/facebook/flow/issues/359 == //
|
||||
|
||||
@@ -150,7 +150,7 @@ class ClassFoo2 {
|
||||
}
|
||||
}
|
||||
|
||||
export {ClassFoo2}"
|
||||
export { ClassFoo2 }"
|
||||
`;
|
||||
|
||||
exports[`test ExportNamed_Multi.js 1`] = `
|
||||
@@ -299,8 +299,8 @@ new ClassFoo1T();
|
||||
/////////////////////////////////////////////////
|
||||
// == Importing Class Typeof (Named Export) == //
|
||||
/////////////////////////////////////////////////
|
||||
import typeof {ClassFoo2 as ClassFoo2T} from \"./ExportNamed_Class\";
|
||||
import {ClassFoo2} from \"./ExportNamed_Class\";
|
||||
import typeof { ClassFoo2 as ClassFoo2T } from \"./ExportNamed_Class\";
|
||||
import { ClassFoo2 } from \"./ExportNamed_Class\";
|
||||
|
||||
var b1: ClassFoo2T = ClassFoo2;
|
||||
var b2: ClassFoo2T = new ClassFoo2();
|
||||
@@ -319,8 +319,8 @@ var c2: ClassFoo3T = new ClassFoo3();
|
||||
/////////////////////////////////////////////////////
|
||||
// == Importing Class Typeof (CJS Named Export) == //
|
||||
/////////////////////////////////////////////////////
|
||||
import typeof {ClassFoo4 as ClassFoo4T} from \"./ExportCJSNamed_Class\";
|
||||
import {ClassFoo4} from \"./ExportCJSNamed_Class\";
|
||||
import typeof { ClassFoo4 as ClassFoo4T } from \"./ExportCJSNamed_Class\";
|
||||
import { ClassFoo4 } from \"./ExportCJSNamed_Class\";
|
||||
|
||||
var d1: ClassFoo4T = ClassFoo4;
|
||||
var d2: ClassFoo4T = new ClassFoo4();
|
||||
@@ -328,7 +328,7 @@ var d2: ClassFoo4T = new ClassFoo4();
|
||||
//////////////////////////////////////////////
|
||||
// == Import Typeof Alias (Named Export) == //
|
||||
//////////////////////////////////////////////
|
||||
import typeof {AliasFoo3} from \"./ExportNamed_Alias\";
|
||||
import typeof { AliasFoo3 } from \"./ExportNamed_Alias\";
|
||||
// Error: Can\'t \`import typeof\` type aliases!
|
||||
////////////////////////////////////////////////
|
||||
// == Import Typeof Alias (Default Export) == //
|
||||
@@ -347,7 +347,7 @@ var f2: num_default = \"asdf\";
|
||||
/////////////////////////////////////////////////////////////
|
||||
// == Import Typeof With Non-Class Value (Named Export) == //
|
||||
/////////////////////////////////////////////////////////////
|
||||
import typeof {num as num_named} from \"./ExportNamed_Number\";
|
||||
import typeof { num as num_named } from \"./ExportNamed_Number\";
|
||||
|
||||
var g1: num_named = 42;
|
||||
var g2: num_named = \"asdf\";
|
||||
@@ -363,7 +363,7 @@ var h2: num_cjs_default = \"asdf\";
|
||||
/////////////////////////////////////////////////////////////////
|
||||
// == Import Typeof With Non-Class Value (CJS Named Export) == //
|
||||
/////////////////////////////////////////////////////////////////
|
||||
import typeof {num as num_cjs_named} from \"./ExportCJSNamed_Number\";
|
||||
import typeof { num as num_cjs_named } from \"./ExportCJSNamed_Number\";
|
||||
|
||||
var i1: num_cjs_named = 42;
|
||||
var i2: num_cjs_named = \"asdf\";
|
||||
|
||||
@@ -25,7 +25,7 @@ module.exports = C;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
var A = require(\"./A\");
|
||||
import type {B} from \"./B\";
|
||||
import type { B } from \"./B\";
|
||||
|
||||
class C extends A {
|
||||
b: B;
|
||||
|
||||
@@ -121,7 +121,7 @@ type M = { y: string } & J & { z: boolean }
|
||||
|
||||
function bar(m: M) { m.x; m.y; m.z; } // OK
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
import type {J} from \"./import\";
|
||||
import type { J } from \"./import\";
|
||||
interface K {}
|
||||
interface L extends J, K { y: string }
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ export {Foo};
|
||||
|
||||
declare class Foo { bar?: () => string }
|
||||
|
||||
export {Foo}"
|
||||
export { Foo }"
|
||||
`;
|
||||
|
||||
exports[`test test.js 1`] = `
|
||||
@@ -46,7 +46,7 @@ C.x;
|
||||
new C().foo.x;
|
||||
C.bar.x;
|
||||
|
||||
import {Foo} from \"./exports_optional_prop\";
|
||||
import { Foo } from \"./exports_optional_prop\";
|
||||
const foo = new Foo();
|
||||
(foo.bar(): string);
|
||||
// error, could be undefined
|
||||
|
||||
@@ -7,7 +7,7 @@ bar(5);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {bar} from \"foo\";
|
||||
import { bar } from \"foo\";
|
||||
|
||||
bar(5);"
|
||||
`;
|
||||
@@ -17,7 +17,7 @@ import type { ObjectType } from \'./test\';
|
||||
function subtypeCheck(x: Interface): ObjectType { return x; }
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
interface Interface { m(): void }
|
||||
import type {ObjectType} from \"./test\";
|
||||
import type { ObjectType } from \"./test\";
|
||||
|
||||
function subtypeCheck(x: Interface): ObjectType {
|
||||
return x;
|
||||
|
||||
@@ -108,7 +108,7 @@ var b: number = new react.Component(); // Error: ReactComponent ~> number
|
||||
/* @flow */
|
||||
|
||||
import react from \"react\";
|
||||
import {Component} from \"react\";
|
||||
import { Component } from \"react\";
|
||||
|
||||
var a: Component<*, *, *> = new react.Component();
|
||||
var b: number = new react.Component(); // Error: ReactComponent ~> number"
|
||||
|
||||
@@ -79,7 +79,7 @@ module.exports = { C, D };
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {C, E} from \"./b0\";
|
||||
import { C, E } from \"./b0\";
|
||||
function foo() {
|
||||
return C;
|
||||
}
|
||||
@@ -111,7 +111,7 @@ import { C, D } from \"./b2\";
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {C, D} from \"./b2\";
|
||||
import { C, D } from \"./b2\";
|
||||
|
||||
(new D(): C);"
|
||||
`;
|
||||
@@ -137,7 +137,7 @@ export function bar(props: { x: number }) {
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {foo} from \"./c1\";
|
||||
import { foo } from \"./c1\";
|
||||
|
||||
export function bar(props: { x: number }) {
|
||||
foo({ x: 0 });
|
||||
@@ -153,7 +153,7 @@ bar({ x: 0 });
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {bar} from \"./c2\";
|
||||
import { bar } from \"./c2\";
|
||||
|
||||
bar({ x: 0 });"
|
||||
`;
|
||||
@@ -180,7 +180,7 @@ export var y: A = x;
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {A, x} from \"./d1\";
|
||||
import { A, x } from \"./d1\";
|
||||
export var y: A = x;"
|
||||
`;
|
||||
|
||||
@@ -216,13 +216,13 @@ import { LIFE } from \'./e1\';
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import type {Action} from \"./e1\";
|
||||
import type { Action } from \"./e1\";
|
||||
|
||||
const f = (): Action => {
|
||||
return { type: \"FOO\" };
|
||||
};
|
||||
|
||||
import {LIFE} from \"./e1\";
|
||||
import { LIFE } from \"./e1\";
|
||||
|
||||
(LIFE: 42);"
|
||||
`;
|
||||
@@ -284,7 +284,7 @@ module.exports = { D };
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {C} from \"./g1\";
|
||||
import { C } from \"./g1\";
|
||||
|
||||
class D extends C {}
|
||||
|
||||
@@ -301,8 +301,8 @@ import { D } from \'./g2\';
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {C} from \"./g1\";
|
||||
import {D} from \"./g2\";
|
||||
import { C } from \"./g1\";
|
||||
import { D } from \"./g2\";
|
||||
|
||||
(new D(): C);"
|
||||
`;
|
||||
@@ -324,5 +324,5 @@ import type { Foo } from \'./h1\';
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import type {Foo} from \"./h1\";"
|
||||
import type { Foo } from \"./h1\";"
|
||||
`;
|
||||
@@ -11,7 +11,7 @@ module.exports = { C, D };
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {C, E} from \"./b0\";
|
||||
import { C, E } from \"./b0\";
|
||||
function foo() {
|
||||
return C;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ export function bar(props: { y: number }) {
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import {foo} from \"./c1\";
|
||||
import { foo } from \"./c1\";
|
||||
|
||||
export function bar(props: { y: number }) {
|
||||
foo({ y: 0 });
|
||||
|
||||
@@ -13,13 +13,13 @@ import { LIFE } from \'./e1\';
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import type {Action} from \"./e1\";
|
||||
import type { Action } from \"./e1\";
|
||||
|
||||
const f = (): Action => {
|
||||
return { type: \"QUX\" };
|
||||
};
|
||||
|
||||
import {LIFE} from \"./e1\";
|
||||
import { LIFE } from \"./e1\";
|
||||
|
||||
(LIFE: 42);"
|
||||
`;
|
||||
@@ -30,13 +30,13 @@ import { LIFE } from \'./e1\';
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// @flow
|
||||
|
||||
import type {Action} from \"./e1\";
|
||||
import type { Action } from \"./e1\";
|
||||
|
||||
const f = (): Action => {
|
||||
return { type: \"QUX\" };
|
||||
};
|
||||
|
||||
import {LIFE} from \"./e1\";
|
||||
import { LIFE } from \"./e1\";
|
||||
|
||||
(LIFE: 0);"
|
||||
`;
|
||||
@@ -2422,7 +2422,7 @@ function getTypeASTName(typeAST: Type): string {
|
||||
}
|
||||
|
||||
// example 2
|
||||
import type {ASTNode} from \"./ast_node\";
|
||||
import type { ASTNode } from \"./ast_node\";
|
||||
var Node = require(\"./node1\");
|
||||
// Node = \"Node1\"
|
||||
function foo(x: ASTNode) {
|
||||
@@ -2696,7 +2696,7 @@ function handleStatus(status: Success | Error) {
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/* @flow */
|
||||
|
||||
import {SUCCESS, ERROR} from \"./constants\";
|
||||
import { SUCCESS, ERROR } from \"./constants\";
|
||||
|
||||
type Success = { type: typeof SUCCESS, message: string };
|
||||
|
||||
|
||||
@@ -14,6 +14,6 @@ exports[`test qux.js 1`] = `
|
||||
"import type { Foo } from \'./bar.js\';
|
||||
({ x: \"\" }: Foo);
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
import type {Foo} from \"./bar.js\";
|
||||
import type { Foo } from \"./bar.js\";
|
||||
({ x: \"\" }: Foo);"
|
||||
`;
|
||||
@@ -227,9 +227,9 @@ class B3<X> extends A3<X> {
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
// Check that imports are handled properly with this types
|
||||
|
||||
import {A1} from \"./export\";
|
||||
import type {A2} from \"./export\";
|
||||
import {A3} from \"./export\";
|
||||
import { A1 } from \"./export\";
|
||||
import type { A2 } from \"./export\";
|
||||
import { A3 } from \"./export\";
|
||||
|
||||
class B1 extends A1 {
|
||||
foo(): B1 {
|
||||
|
||||
@@ -29,7 +29,7 @@ module.exports = printBinaryExpression;
|
||||
* This source code is licensed under the license found in the LICENSE file in
|
||||
* the root directory of this source tree.
|
||||
*/
|
||||
import type {BinaryExpression} from \"./types\";
|
||||
import type { BinaryExpression } from \"./types\";
|
||||
|
||||
function printBinaryExpression(node: BinaryExpression) {
|
||||
console.log(node);
|
||||
|
||||
@@ -50,7 +50,7 @@ var duck: string = \"quack\";
|
||||
*/
|
||||
|
||||
import typeof A from \"./A.js\";
|
||||
import type {Foo, Bar as Baz} from \"./A.js\";
|
||||
import type { Foo, Bar as Baz } from \"./A.js\";
|
||||
|
||||
type duck = { quack(): string };
|
||||
|
||||
@@ -90,7 +90,7 @@ var b: Foo = new A.Foo();
|
||||
*/
|
||||
|
||||
import typeof A from \"./A.js\";
|
||||
import type {Foo, Bar as Baz} from \"./A.js\";
|
||||
import type { Foo, Bar as Baz } from \"./A.js\";
|
||||
|
||||
var A = require(\"./A.js\");
|
||||
var Foo = A.Foo;
|
||||
@@ -131,7 +131,7 @@ var a: Foo = new actualA.Foo();
|
||||
*/
|
||||
|
||||
import typeof A from \"./A.js\";
|
||||
import type {Foo, Bar as Baz} from \"./A.js\";
|
||||
import type { Foo, Bar as Baz } from \"./A.js\";
|
||||
|
||||
var actualA = require(\"./A.js\");
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@ export default class A {
|
||||
}
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
import {B, C} from \"./issue-824-helper\";
|
||||
import { B, C } from \"./issue-824-helper\";
|
||||
|
||||
type K = B | C;
|
||||
|
||||
@@ -150,7 +150,7 @@ function node(content: ?Foobar | String | Array<String>) {
|
||||
}
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
/* @flow */
|
||||
import type {Foobar} from \"./issue-1455-helper\";
|
||||
import type { Foobar } from \"./issue-1455-helper\";
|
||||
|
||||
function create(content: ?Foobar | String | Array<String>) {}
|
||||
|
||||
|
||||
Reference in new issue
Block a user