2016-12-23 22:31:38 +03:00
|
|
|
exports[`test B.js 1`] = `
|
|
|
|
"/* @flow */
|
|
|
|
|
|
|
|
exports.numberValue = 42;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/* @flow */
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
exports.numberValue = 42;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test C.js 1`] = `
|
|
|
|
"/* @flow */
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2017-01-11 18:16:38 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test CommonJS_Clobbering_Class.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule CommonJS_Clobbering_Class
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
class Base {
|
|
|
|
static baseProp: number;
|
|
|
|
}
|
|
|
|
|
|
|
|
class Test extends Base {
|
|
|
|
static childProp: number;
|
|
|
|
|
|
|
|
static staticNumber1():number { return 1; }
|
|
|
|
static staticNumber2():number { return 2; }
|
|
|
|
static staticNumber3():number { return 3; }
|
|
|
|
|
|
|
|
instNumber1():number { return 1; }
|
|
|
|
instNumber2():number { return 2; }
|
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = Test;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule CommonJS_Clobbering_Class
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
class Base {
|
|
|
|
static baseProp: number;
|
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
class Test extends Base {
|
|
|
|
static childProp: number;
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
static staticNumber1(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 1;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
2016-12-27 21:29:31 +03:00
|
|
|
static staticNumber2(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 2;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
2016-12-27 21:29:31 +03:00
|
|
|
static staticNumber3(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 3;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
instNumber1(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 1;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
instNumber2(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 2;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
module.exports = Test;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test CommonJS_Clobbering_Frozen.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule CommonJS_Clobbering_Frozen
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
module.exports = Object.freeze({
|
|
|
|
numberValue1: 1,
|
|
|
|
});
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule CommonJS_Clobbering_Frozen
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
module.exports = Object.freeze({ numberValue1: 1 });
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test CommonJS_Clobbering_Lit.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule CommonJS_Clobbering_Lit
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
numberValue1: 1,
|
|
|
|
numberValue2: 2,
|
|
|
|
numberValue3: 3,
|
|
|
|
numberValue4: 4,
|
|
|
|
numberValue5: 5
|
|
|
|
};
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule CommonJS_Clobbering_Lit
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
module.exports = {
|
2016-12-28 05:40:04 +03:00
|
|
|
numberValue1: 1,
|
|
|
|
numberValue2: 2,
|
|
|
|
numberValue3: 3,
|
|
|
|
numberValue4: 4,
|
|
|
|
numberValue5: 5
|
2017-01-11 18:16:38 +03:00
|
|
|
};
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test CommonJS_Named.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule CommonJS_Named
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
exports.numberValue1 = 1;
|
|
|
|
exports.numberValue2 = 2;
|
|
|
|
exports.numberValue3 = 3;
|
|
|
|
exports.numberValue4 = 4;
|
|
|
|
exports.numberValue5 = 5;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule CommonJS_Named
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-28 05:40:04 +03:00
|
|
|
exports.numberValue1 = 1;
|
|
|
|
exports.numberValue2 = 2;
|
|
|
|
exports.numberValue3 = 3;
|
|
|
|
exports.numberValue4 = 4;
|
2017-01-11 18:16:38 +03:00
|
|
|
exports.numberValue5 = 5;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_AnonClass1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_AnonClass1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default class { givesANum(): number { return 42; }};
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_AnonClass1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default class {
|
|
|
|
givesANum(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_AnonClass2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_AnonClass2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default class { givesANum(): number { return 42; }};
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_AnonClass2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default class {
|
|
|
|
givesANum(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_AnonFunction1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_AnonFunction1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default function():number { return 42; }
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_AnonFunction1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default function(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2017-01-11 18:16:38 +03:00
|
|
|
}
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_AnonFunction2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_AnonFunction2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default function():number { return 42; }
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_AnonFunction2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default function(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2017-01-11 18:16:38 +03:00
|
|
|
}
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_NamedClass1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_NamedClass1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default class Foo { givesANum(): number { return 42; }};
|
|
|
|
|
|
|
|
// Regression test for https://github.com/facebook/flow/issues/511
|
|
|
|
//
|
|
|
|
// Default-exported class should also be available in local scope
|
|
|
|
new Foo();
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_NamedClass1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default class Foo {
|
|
|
|
givesANum(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
|
|
|
// Regression test for https://github.com/facebook/flow/issues/511
|
|
|
|
//
|
|
|
|
// Default-exported class should also be available in local scope
|
2017-01-11 18:16:38 +03:00
|
|
|
new Foo();
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_NamedClass2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_NamedClass2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default class Foo { givesANum(): number { return 42; }};
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_NamedClass2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default class Foo {
|
|
|
|
givesANum(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-23 22:31:38 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_NamedFunction1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_NamedFunction1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default function foo():number { return 42; }
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_NamedFunction1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default function foo(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2017-01-11 18:16:38 +03:00
|
|
|
}
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Default_NamedFunction2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Default_NamedFunction2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export default function foo():number { return 42; }
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_Default_NamedFunction2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
export default function foo(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2017-01-11 18:16:38 +03:00
|
|
|
}
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_DefaultAndNamed.js 1`] = `
|
|
|
|
"/* @flow */
|
|
|
|
|
|
|
|
export default 42;
|
2016-12-30 19:56:42 +03:00
|
|
|
export var str = \'asdf\';
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/* @flow */
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-28 05:40:04 +03:00
|
|
|
export default 42
|
2017-01-11 18:16:38 +03:00
|
|
|
export var str = \"asdf\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportAllFrom_Intermediary1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Intermediary1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
export * from \"ES6_ExportAllFrom_Source1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Intermediary1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export * from \"ES6_ExportAllFrom_Source1\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportAllFrom_Intermediary2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Intermediary2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
export * from \"ES6_ExportAllFrom_Source2\";
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Intermediary2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export * from \"ES6_ExportAllFrom_Source2\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportAllFrom_Source1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Source1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export var numberValue1 = 1;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Source1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export var numberValue1 = 1;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportAllFrom_Source2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Source2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export var numberValue2 = 1;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportAllFrom_Source2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export var numberValue2 = 1;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportAllFromMulti.js 1`] = `
|
|
|
|
"// @flow
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
export * from \"./ES6_ExportAllFrom_Source1\";
|
|
|
|
export * from \"./ES6_ExportAllFrom_Source2\";
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
// @flow
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 15:43:27 +03:00
|
|
|
export * from \"./ES6_ExportAllFrom_Source1\";
|
2017-01-11 18:16:38 +03:00
|
|
|
export * from \"./ES6_ExportAllFrom_Source2\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportFrom_Intermediary1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportFrom_Intermediary1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export {
|
|
|
|
numberValue1,
|
|
|
|
numberValue2 as numberValue2_renamed
|
2016-12-30 19:56:42 +03:00
|
|
|
} from \"ES6_ExportFrom_Source1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2016-12-27 21:29:31 +03:00
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportFrom_Intermediary1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 16:56:10 +03:00
|
|
|
export {
|
|
|
|
numberValue1,
|
|
|
|
numberValue2 as numberValue2_renamed
|
2017-01-12 22:53:12 +03:00
|
|
|
} from \"ES6_ExportFrom_Source1\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportFrom_Intermediary2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportFrom_Intermediary2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export {
|
|
|
|
numberValue1,
|
|
|
|
numberValue2 as numberValue2_renamed2
|
2016-12-30 19:56:42 +03:00
|
|
|
} from \"ES6_ExportFrom_Source2\";
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2016-12-27 21:29:31 +03:00
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportFrom_Intermediary2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 16:56:10 +03:00
|
|
|
export {
|
|
|
|
numberValue1,
|
|
|
|
numberValue2 as numberValue2_renamed2
|
2017-01-12 22:53:12 +03:00
|
|
|
} from \"ES6_ExportFrom_Source2\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportFrom_Source1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportFrom_Source1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export var numberValue1 = 1, numberValue2 = 2;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportFrom_Source1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export var numberValue1 = 1, numberValue2 = 2;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_ExportFrom_Source2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_ExportFrom_Source2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
export var numberValue1 = 1, numberValue2 = 2;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule ES6_ExportFrom_Source2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export var numberValue1 = 1, numberValue2 = 2;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Named1.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Named1
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
var specifierNumber1 = 1;
|
|
|
|
var specifierNumber2 = 2;
|
|
|
|
var specifierNumber3 = 3;
|
|
|
|
var groupedSpecifierNumber1 = 1;
|
|
|
|
var groupedSpecifierNumber2 = 2;
|
|
|
|
|
|
|
|
export {specifierNumber1};
|
|
|
|
export {specifierNumber2 as specifierNumber2Renamed};
|
|
|
|
export {specifierNumber3};
|
|
|
|
export {groupedSpecifierNumber1, groupedSpecifierNumber2};
|
|
|
|
|
|
|
|
export function givesANumber(): number { return 42; };
|
|
|
|
export class NumberGenerator { givesANumber(): number { return 42; }};
|
|
|
|
|
|
|
|
export var varDeclNumber1 = 1, varDeclNumber2 = 2;
|
|
|
|
export var {destructuredObjNumber} = {destructuredObjNumber: 1};
|
|
|
|
export var [destructuredArrNumber] = [1]
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2016-12-27 21:29:31 +03:00
|
|
|
/**
|
|
|
|
* @providesModule ES6_Named1
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-28 05:40:04 +03:00
|
|
|
var specifierNumber1 = 1;
|
|
|
|
var specifierNumber2 = 2;
|
|
|
|
var specifierNumber3 = 3;
|
|
|
|
var groupedSpecifierNumber1 = 1;
|
|
|
|
var groupedSpecifierNumber2 = 2;
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 15:43:27 +03:00
|
|
|
export { specifierNumber1 };
|
|
|
|
export { specifierNumber2 as specifierNumber2Renamed };
|
|
|
|
export { specifierNumber3 };
|
|
|
|
export { groupedSpecifierNumber1, groupedSpecifierNumber2 };
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
export function givesANumber(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-27 21:29:31 +03:00
|
|
|
}
|
|
|
|
export class NumberGenerator {
|
|
|
|
givesANumber(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-27 21:29:31 +03:00
|
|
|
}
|
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-30 21:32:43 +03:00
|
|
|
export var varDeclNumber1 = 1, varDeclNumber2 = 2;
|
2016-12-28 05:40:04 +03:00
|
|
|
export var { destructuredObjNumber } = { destructuredObjNumber: 1 };
|
2017-01-11 18:16:38 +03:00
|
|
|
export var [ destructuredArrNumber ] = [ 1 ];
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ES6_Named2.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6_Named2
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
var specifierNumber4 = 1;
|
|
|
|
var specifierNumber5 = 2;
|
|
|
|
var groupedSpecifierNumber3 = 1;
|
|
|
|
var groupedSpecifierNumber4 = 2;
|
|
|
|
|
|
|
|
export {specifierNumber4};
|
|
|
|
export {specifierNumber5 as specifierNumber5Renamed};
|
|
|
|
export {groupedSpecifierNumber3, groupedSpecifierNumber4};
|
|
|
|
|
|
|
|
export function givesANumber2(): number { return 42; };
|
|
|
|
export class NumberGenerator2 { givesANumber(): number { return 42; }};
|
|
|
|
|
|
|
|
export var varDeclNumber3 = 1, varDeclNumber4 = 2;
|
|
|
|
export var {destructuredObjNumber2} = {destructuredObjNumber2: 1};
|
|
|
|
export var [destructuredArrNumber2] = [1]
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2016-12-27 21:29:31 +03:00
|
|
|
/**
|
|
|
|
* @providesModule ES6_Named2
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-28 05:40:04 +03:00
|
|
|
var specifierNumber4 = 1;
|
|
|
|
var specifierNumber5 = 2;
|
|
|
|
var groupedSpecifierNumber3 = 1;
|
|
|
|
var groupedSpecifierNumber4 = 2;
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 15:43:27 +03:00
|
|
|
export { specifierNumber4 };
|
|
|
|
export { specifierNumber5 as specifierNumber5Renamed };
|
|
|
|
export { groupedSpecifierNumber3, groupedSpecifierNumber4 };
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
export function givesANumber2(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-27 21:29:31 +03:00
|
|
|
}
|
|
|
|
export class NumberGenerator2 {
|
|
|
|
givesANumber(): number {
|
2016-12-28 05:40:04 +03:00
|
|
|
return 42;
|
2016-12-27 21:29:31 +03:00
|
|
|
}
|
|
|
|
}
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-30 21:32:43 +03:00
|
|
|
export var varDeclNumber3 = 1, varDeclNumber4 = 2;
|
2016-12-28 05:40:04 +03:00
|
|
|
export var { destructuredObjNumber2 } = { destructuredObjNumber2: 1 };
|
2017-01-11 18:16:38 +03:00
|
|
|
export var [ destructuredArrNumber2 ] = [ 1 ];
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ExportType.js 1`] = `
|
|
|
|
"// @flow
|
|
|
|
|
|
|
|
export type typeAlias = number;
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
// @flow
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
export type typeAlias = number;
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ProvidesModuleA.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule A
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
exports.numberValue1 = 42;
|
|
|
|
exports.numberValue2 = 42;
|
|
|
|
exports.numberValue3 = 42;
|
|
|
|
exports.numberValue4 = 42;
|
2016-12-30 19:56:42 +03:00
|
|
|
exports.stringValue = \"str\";
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule A
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-28 05:40:04 +03:00
|
|
|
exports.numberValue1 = 42;
|
|
|
|
exports.numberValue2 = 42;
|
|
|
|
exports.numberValue3 = 42;
|
|
|
|
exports.numberValue4 = 42;
|
2017-01-11 18:16:38 +03:00
|
|
|
exports.stringValue = \"str\";
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ProvidesModuleCJSDefault.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule CJSDefault
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
numberValue: 42
|
|
|
|
};
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/**
|
|
|
|
* @providesModule CJSDefault
|
|
|
|
* @flow
|
|
|
|
*/
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2017-01-11 18:16:38 +03:00
|
|
|
module.exports = { numberValue: 42 };
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ProvidesModuleD.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule D
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2017-01-11 18:16:38 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test ProvidesModuleES6Default.js 1`] = `
|
|
|
|
"/**
|
|
|
|
* @providesModule ES6Default
|
|
|
|
* @flow
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
|
|
|
export default {
|
|
|
|
numberValue: 42,
|
|
|
|
};
|
|
|
|
*/
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2017-01-11 18:16:38 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test SideEffects.js 1`] = `
|
|
|
|
"/* @flow */
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
2017-01-11 18:16:38 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
|
|
|
exports[`test es6modules.js 1`] = `
|
|
|
|
"/* @flow */
|
|
|
|
|
|
|
|
// ===================== //
|
|
|
|
// == Path Resolution == //
|
|
|
|
// ===================== //
|
|
|
|
|
|
|
|
// @providesModule
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as DefaultA from \"A\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var a1: number = DefaultA.numberValue1;
|
|
|
|
var a2: string = DefaultA.numberValue1; // Error: number ~> string
|
|
|
|
|
|
|
|
// File path
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as DefaultB from \"./B\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var b1: number = DefaultB.numberValue;
|
|
|
|
var b2: string = DefaultB.numberValue; // Error: number ~> string
|
|
|
|
|
|
|
|
// C.js exists, but not as a providesModule
|
2016-12-30 19:56:42 +03:00
|
|
|
import DefaultC from \"C\"; // Error: No such module
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
// @providesModule D exists, but not as a filename
|
2016-12-30 19:56:42 +03:00
|
|
|
import DefaultD from \"./D\"; // Error: No such module
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
// ================================================ //
|
|
|
|
// == CommonJS Clobbering Literal Exports -> ES6 == //
|
|
|
|
// ================================================ //
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {doesntExist1} from \"CommonJS_Clobbering_Lit\"; // Error: Not an exported binding
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue1} from \"CommonJS_Clobbering_Lit\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var c1: number = numberValue1;
|
|
|
|
var c2: string = numberValue1; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue2 as numVal1} from \"CommonJS_Clobbering_Lit\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var d1: number = numVal1;
|
|
|
|
var d2: string = numVal1; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import CJS_Clobb_Lit from \"CommonJS_Clobbering_Lit\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var e1: number = CJS_Clobb_Lit.numberValue3;
|
|
|
|
var e2: string = CJS_Clobb_Lit.numberValue3; // Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
CJS_Clobb_Lit.doesntExist; // Error: doesntExist isn\'t a property
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Clobb_Lit_NS from \"CommonJS_Clobbering_Lit\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var f1: number = CJS_Clobb_Lit_NS.numberValue4;
|
|
|
|
var f2: number = CJS_Clobb_Lit_NS.default.numberValue4;
|
2016-12-30 19:56:42 +03:00
|
|
|
CJS_Clobb_Lit_NS.default.default; // Error: No \'default\' property on the exported obj
|
2016-12-23 22:31:38 +03:00
|
|
|
var f3: string = CJS_Clobb_Lit_NS.numberValue4; // Error: number ~> string
|
|
|
|
var f4: string = CJS_Clobb_Lit_NS.default.numberValue5; // Error: number ~> string
|
|
|
|
|
|
|
|
// ============================================== //
|
|
|
|
// == CommonJS Clobbering Class Exports -> ES6 == //
|
|
|
|
// ============================================== //
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {doesntExist2} from \"CommonJS_Clobbering_Class\"; // Error: Not an exported binding
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
// 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).
|
2016-12-30 19:56:42 +03:00
|
|
|
import {staticNumber1, baseProp, childProp} from \"CommonJS_Clobbering_Class\"; // Error
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import CJS_Clobb_Class from \"CommonJS_Clobbering_Class\";
|
2016-12-23 22:31:38 +03:00
|
|
|
new CJS_Clobb_Class();
|
|
|
|
new CJS_Clobb_Class().doesntExist; // Error: Class has no \`doesntExist\` property
|
|
|
|
var h1: number = CJS_Clobb_Class.staticNumber2();
|
|
|
|
var h2: string = CJS_Clobb_Class.staticNumber2(); // Error: number ~> string
|
|
|
|
var h3: number = new CJS_Clobb_Class().instNumber1();
|
|
|
|
var h4: string = new CJS_Clobb_Class().instNumber1(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Clobb_Class_NS from \"CommonJS_Clobbering_Class\";
|
|
|
|
new CJS_Clobb_Class_NS(); // Error: Namespace object isn\'t constructable
|
2016-12-23 22:31:38 +03:00
|
|
|
var i1: number = CJS_Clobb_Class_NS.staticNumber3(); // Error: Class statics not copied to Namespace object
|
|
|
|
var i2: number = new CJS_Clobb_Class_NS.default().instNumber2();
|
|
|
|
var i3: string = new CJS_Clobb_Class_NS.default().instNumber2(); // Error: number ~> string
|
|
|
|
|
|
|
|
// =================================== //
|
|
|
|
// == CommonJS Named Exports -> ES6 == //
|
|
|
|
// =================================== //
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {doesntExist3} from \"CommonJS_Named\"; // Error: Not an exported binding
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue2} from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var j1: number = numberValue2;
|
|
|
|
var j2: string = numberValue2; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue3 as numVal3} from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var k1: number = numVal3;
|
|
|
|
var k2: string = numVal3; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Named from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var l1: number = CJS_Named.numberValue1;
|
|
|
|
var l2: string = CJS_Named.numberValue1; // Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
CJS_Named.doesntExist; // Error: doesntExist isn\'t a property
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Named_NS from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var m1: number = CJS_Named_NS.numberValue4;
|
|
|
|
var m2: string = CJS_Named_NS.default.numberValue4; // Error: CommonJS_Named has no default export
|
|
|
|
var m3: string = CJS_Named_NS.numberValue4; // Error: number ~> string
|
|
|
|
|
|
|
|
//////////////////////////////
|
|
|
|
// == ES6 Default -> ES6 == //
|
|
|
|
//////////////////////////////
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {doesntExist4} from \"ES6_Default_AnonFunction1\"; // Error: Not an exported binding
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_AnonFunc1 from \"ES6_Default_AnonFunction1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var n1: number = ES6_Def_AnonFunc1();
|
|
|
|
var n2: string = ES6_Def_AnonFunc1(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_NamedFunc1 from \"ES6_Default_NamedFunction1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var o1: number = ES6_Def_NamedFunc1();
|
|
|
|
var o2: string = ES6_Def_NamedFunc1(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_AnonClass1 from \"ES6_Default_AnonClass1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var p1: number = new ES6_Def_AnonClass1().givesANum();
|
|
|
|
var p2: string = new ES6_Def_AnonClass1().givesANum(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_NamedClass1 from \"ES6_Default_NamedClass1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var q1: number = new ES6_Def_NamedClass1().givesANum();
|
|
|
|
var q2: string = new ES6_Def_NamedClass1().givesANum(); // Error: number ~> string
|
|
|
|
|
|
|
|
////////////////////////////
|
|
|
|
// == ES6 Named -> ES6 == //
|
|
|
|
////////////////////////////
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import doesntExist5 from \"ES6_Named1\"; // Error: Not an exported binding
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {specifierNumber1 as specifierNumber1_1} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var r1: number = specifierNumber1_1;
|
|
|
|
var r2: string = specifierNumber1_1; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {specifierNumber2Renamed} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var s1: number = specifierNumber2Renamed;
|
|
|
|
var s2: string = specifierNumber2Renamed; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {specifierNumber3 as specifierNumber3Renamed} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var t1: number = specifierNumber3Renamed;
|
|
|
|
var t2: string = specifierNumber3Renamed; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {groupedSpecifierNumber1, groupedSpecifierNumber2} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var u1: number = groupedSpecifierNumber1;
|
|
|
|
var u2: number = groupedSpecifierNumber2;
|
|
|
|
var u3: string = groupedSpecifierNumber1; // Error: number ~> string
|
|
|
|
var u4: string = groupedSpecifierNumber2; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {givesANumber} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var v1: number = givesANumber();
|
|
|
|
var v2: string = givesANumber(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {NumberGenerator} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var w1: number = new NumberGenerator().givesANumber();
|
|
|
|
var w2: string = new NumberGenerator().givesANumber(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {varDeclNumber1, varDeclNumber2} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var x1: number = varDeclNumber1;
|
|
|
|
var x2: number = varDeclNumber2;
|
|
|
|
var x3: string = varDeclNumber1; // Error: number ~> string
|
|
|
|
var x4: string = varDeclNumber2; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {destructuredObjNumber} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var y1: number = destructuredObjNumber;
|
|
|
|
var y2: string = destructuredObjNumber; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {destructuredArrNumber} from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var z1: number = destructuredArrNumber;
|
|
|
|
var z2: string = destructuredArrNumber; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue1 as numberValue4} from \"ES6_ExportFrom_Intermediary1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var aa1: number = numberValue4;
|
|
|
|
var aa2: string = numberValue4; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue2_renamed} from \"ES6_ExportFrom_Intermediary1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var ab1: number = numberValue2_renamed;
|
|
|
|
var ab2: string = numberValue2_renamed; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import {numberValue1 as numberValue5} from \"ES6_ExportAllFrom_Intermediary1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var ac1: number = numberValue5;
|
|
|
|
var ac2: string = numberValue5; // Error: number ~> string
|
|
|
|
|
|
|
|
///////////////////////////////////
|
|
|
|
// == ES6 Default -> CommonJS == //
|
|
|
|
///////////////////////////////////
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
require(\'ES6_Default_AnonFunction2\').doesntExist; // Error: \'doesntExist\' isn\'t an export
|
2016-12-23 22:31:38 +03:00
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_AnonFunc2 = require(\"ES6_Default_AnonFunction2\").default;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ad1: number = ES6_Def_AnonFunc2();
|
|
|
|
var ad2: string = ES6_Def_AnonFunc2(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_NamedFunc2 = require(\"ES6_Default_NamedFunction2\").default;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ae1: number = ES6_Def_NamedFunc2();
|
|
|
|
var ae2: string = ES6_Def_NamedFunc2(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_AnonClass2 = require(\"ES6_Default_AnonClass2\").default;
|
2016-12-23 22:31:38 +03:00
|
|
|
var af1: number = new ES6_Def_AnonClass2().givesANum();
|
|
|
|
var af2: string = new ES6_Def_AnonClass2().givesANum(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_NamedClass2 = require(\"ES6_Default_NamedClass2\").default;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ag1: number = new ES6_Def_NamedClass2().givesANum();
|
|
|
|
var ag2: string = new ES6_Def_NamedClass2().givesANum(); // Error: number ~> string
|
|
|
|
|
|
|
|
/////////////////////////////////
|
|
|
|
// == ES6 Named -> CommonJS == //
|
|
|
|
/////////////////////////////////
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var specifierNumber4 = require(\"ES6_Named2\").specifierNumber4;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ah1: number = specifierNumber4;
|
|
|
|
var ah2: string = specifierNumber4; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var specifierNumber5Renamed = require(\"ES6_Named2\").specifierNumber5Renamed;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ai1: number = specifierNumber5Renamed;
|
|
|
|
var ai2: string = specifierNumber5Renamed; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var groupedSpecifierNumber3 = require(\"ES6_Named2\").groupedSpecifierNumber3;
|
|
|
|
var groupedSpecifierNumber4 = require(\"ES6_Named2\").groupedSpecifierNumber4;
|
2016-12-23 22:31:38 +03:00
|
|
|
var aj1: number = groupedSpecifierNumber3;
|
|
|
|
var aj2: number = groupedSpecifierNumber4;
|
|
|
|
var aj3: string = groupedSpecifierNumber3; // Error: number ~> string
|
|
|
|
var aj4: string = groupedSpecifierNumber4; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var givesANumber2 = require(\"ES6_Named2\").givesANumber2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ak1: number = givesANumber2();
|
|
|
|
var ak2: string = givesANumber2(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var NumberGenerator2 = require(\"ES6_Named2\").NumberGenerator2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var al1: number = new NumberGenerator2().givesANumber();
|
|
|
|
var al2: string = new NumberGenerator2().givesANumber(); // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var varDeclNumber3 = require(\"ES6_Named2\").varDeclNumber3;
|
|
|
|
var varDeclNumber4 = require(\"ES6_Named2\").varDeclNumber4;
|
2016-12-23 22:31:38 +03:00
|
|
|
var am1: number = varDeclNumber3;
|
|
|
|
var am2: number = varDeclNumber4;
|
|
|
|
var am3: string = varDeclNumber3; // Error: number ~> string
|
|
|
|
var am4: string = varDeclNumber4; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var destructuredObjNumber2 = require(\"ES6_Named2\").destructuredObjNumber2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var an1: number = destructuredObjNumber2;
|
|
|
|
var an2: string = destructuredObjNumber2; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var destructuredArrNumber2 = require(\"ES6_Named2\").destructuredArrNumber2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ao1: number = destructuredArrNumber2;
|
|
|
|
var ao2: string = destructuredArrNumber2; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var numberValue6 = require(\"ES6_ExportFrom_Intermediary2\").numberValue1;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ap1: number = numberValue6;
|
|
|
|
var ap2: string = numberValue6; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var numberValue2_renamed2 = require(\"ES6_ExportFrom_Intermediary2\").numberValue2_renamed2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var aq1: number = numberValue2_renamed2;
|
|
|
|
var aq2: string = numberValue2_renamed2; // Error: number ~> string
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
var numberValue7 = require(\"ES6_ExportAllFrom_Intermediary2\").numberValue2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ar1: number = numberValue7;
|
|
|
|
var ar2: string = numberValue7; // Error: number ~> string
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////
|
|
|
|
// == ES6 Default+Named -> ES6 import Default+Named== //
|
|
|
|
////////////////////////////////////////////////////////
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import defaultNum, {str as namedStr} from \"./ES6_DefaultAndNamed\";
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
var as1: number = defaultNum;
|
|
|
|
var as2: string = defaultNum; // Error: number ~> string
|
|
|
|
|
|
|
|
var as3: string = namedStr;
|
|
|
|
var as4: number = namedStr; // Error: string ~> number
|
|
|
|
|
|
|
|
////////////////////////////////////////
|
|
|
|
// == Side-effect only ES6 imports == //
|
|
|
|
////////////////////////////////////////
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import \"./SideEffects\";
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
//////////////////////////////////////////////
|
|
|
|
// == Suggest export name on likely typo == //
|
|
|
|
//////////////////////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
import specifierNumber1 from \"ES6_Named1\"; // Error: Did you mean \`import {specifierNumber1} from ...\`?
|
|
|
|
import {specifierNumber} from \"ES6_Named1\"; // Error: Did you mean \`specifierNumber1\`?
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
///////////////////////////////////////////////////
|
|
|
|
// == Multi \`export *\` should combine exports == //
|
|
|
|
///////////////////////////////////////////////////
|
|
|
|
import {
|
|
|
|
numberValue1 as numberValue8,
|
|
|
|
numberValue2 as numberValue9
|
2016-12-30 19:56:42 +03:00
|
|
|
} from \"./ES6_ExportAllFromMulti\";
|
2016-12-23 22:31:38 +03:00
|
|
|
|
|
|
|
var at1: number = numberValue8;
|
|
|
|
var at2: string = numberValue8; // Error: number ~> string
|
|
|
|
|
|
|
|
var at3: number = numberValue9;
|
|
|
|
var at4: string = numberValue9; // Error: number ~> string
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
// == Vanilla \`import\` cannot import a type-only export == //
|
|
|
|
/////////////////////////////////////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
import {typeAlias} from \"./ExportType\"; // Error: Cannot vanilla-import a type alias!
|
2016-12-23 22:31:38 +03:00
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/* @flow */
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
// ===================== //
|
|
|
|
// == Path Resolution == //
|
|
|
|
// ===================== //
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
// @providesModule
|
2017-01-10 05:49:06 +03:00
|
|
|
import * as DefaultA from \"A\";
|
|
|
|
var a1: number = DefaultA.numberValue1;
|
|
|
|
var a2: string = DefaultA.numberValue1;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
// Error: number ~> string
|
2016-12-23 22:31:38 +03:00
|
|
|
// File path
|
2017-01-10 05:49:06 +03:00
|
|
|
import * as DefaultB from \"./B\";
|
|
|
|
var b1: number = DefaultB.numberValue;
|
|
|
|
var b2: string = DefaultB.numberValue;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
// Error: number ~> string
|
2016-12-23 22:31:38 +03:00
|
|
|
// C.js exists, but not as a providesModule
|
2017-01-10 05:49:06 +03:00
|
|
|
import DefaultC from \"C\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
// Error: No such module
|
2016-12-23 22:31:38 +03:00
|
|
|
// @providesModule D exists, but not as a filename
|
2017-01-10 05:49:06 +03:00
|
|
|
import DefaultD from \"./D\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2016-12-27 21:29:31 +03:00
|
|
|
// Error: No such module
|
2016-12-23 22:31:38 +03:00
|
|
|
// ================================================ //
|
|
|
|
// == CommonJS Clobbering Literal Exports -> ES6 == //
|
|
|
|
// ================================================ //
|
2017-01-11 03:32:35 +03:00
|
|
|
import { doesntExist1 } from \"CommonJS_Clobbering_Lit\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Not an exported binding
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue1 } from \"CommonJS_Clobbering_Lit\";
|
2016-12-27 21:29:31 +03:00
|
|
|
var c1: number = numberValue1;
|
|
|
|
var c2: string = numberValue1;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue2 as numVal1 } from \"CommonJS_Clobbering_Lit\";
|
2016-12-27 21:29:31 +03:00
|
|
|
var d1: number = numVal1;
|
|
|
|
var d2: string = numVal1;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
import CJS_Clobb_Lit from \"CommonJS_Clobbering_Lit\";
|
2016-12-27 21:29:31 +03:00
|
|
|
var e1: number = CJS_Clobb_Lit.numberValue3;
|
|
|
|
var e2: string = CJS_Clobb_Lit.numberValue3;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
CJS_Clobb_Lit.doesntExist;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: doesntExist isn\'t a property
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Clobb_Lit_NS from \"CommonJS_Clobbering_Lit\";
|
2016-12-27 21:29:31 +03:00
|
|
|
var f1: number = CJS_Clobb_Lit_NS.numberValue4;
|
|
|
|
var f2: number = CJS_Clobb_Lit_NS.default.numberValue4;
|
|
|
|
CJS_Clobb_Lit_NS.default.default;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: No \'default\' property on the exported obj
|
2016-12-27 21:29:31 +03:00
|
|
|
var f3: string = CJS_Clobb_Lit_NS.numberValue4;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
var f4: string = CJS_Clobb_Lit_NS.default.numberValue5;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
// ============================================== //
|
|
|
|
// == CommonJS Clobbering Class Exports -> ES6 == //
|
|
|
|
// ============================================== //
|
2017-01-11 03:32:35 +03:00
|
|
|
import { doesntExist2 } from \"CommonJS_Clobbering_Class\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// 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).
|
2017-01-11 03:32:35 +03:00
|
|
|
import { staticNumber1, baseProp, childProp } from \"CommonJS_Clobbering_Class\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error
|
2016-12-30 19:56:42 +03:00
|
|
|
import CJS_Clobb_Class from \"CommonJS_Clobbering_Class\";
|
2017-01-11 02:51:46 +03:00
|
|
|
new CJS_Clobb_Class();
|
|
|
|
new CJS_Clobb_Class().doesntExist;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Class has no \`doesntExist\` property
|
2016-12-23 22:31:38 +03:00
|
|
|
var h1: number = CJS_Clobb_Class.staticNumber2();
|
2016-12-27 21:29:31 +03:00
|
|
|
var h2: string = CJS_Clobb_Class.staticNumber2();
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 02:51:46 +03:00
|
|
|
var h3: number = new CJS_Clobb_Class().instNumber1();
|
|
|
|
var h4: string = new CJS_Clobb_Class().instNumber1();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Clobb_Class_NS from \"CommonJS_Clobbering_Class\";
|
2017-01-11 02:51:46 +03:00
|
|
|
new CJS_Clobb_Class_NS();
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Namespace object isn\'t constructable
|
2016-12-27 21:29:31 +03:00
|
|
|
var i1: number = CJS_Clobb_Class_NS.staticNumber3();
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Class statics not copied to Namespace object
|
2017-01-11 02:51:46 +03:00
|
|
|
var i2: number = new CJS_Clobb_Class_NS.default().instNumber2();
|
|
|
|
var i3: string = new CJS_Clobb_Class_NS.default().instNumber2();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
// =================================== //
|
|
|
|
// == CommonJS Named Exports -> ES6 == //
|
|
|
|
// =================================== //
|
2017-01-11 03:32:35 +03:00
|
|
|
import { doesntExist3 } from \"CommonJS_Named\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Not an exported binding
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue2 } from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var j1: number = numberValue2;
|
2016-12-27 21:29:31 +03:00
|
|
|
var j2: string = numberValue2;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue3 as numVal3 } from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var k1: number = numVal3;
|
2016-12-27 21:29:31 +03:00
|
|
|
var k2: string = numVal3;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Named from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var l1: number = CJS_Named.numberValue1;
|
2016-12-27 21:29:31 +03:00
|
|
|
var l2: string = CJS_Named.numberValue1;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
CJS_Named.doesntExist;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: doesntExist isn\'t a property
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CJS_Named_NS from \"CommonJS_Named\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var m1: number = CJS_Named_NS.numberValue4;
|
2016-12-27 21:29:31 +03:00
|
|
|
var m2: string = CJS_Named_NS.default.numberValue4;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: CommonJS_Named has no default export
|
2016-12-27 21:29:31 +03:00
|
|
|
var m3: string = CJS_Named_NS.numberValue4;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
//////////////////////////////
|
|
|
|
// == ES6 Default -> ES6 == //
|
|
|
|
//////////////////////////////
|
2017-01-11 03:32:35 +03:00
|
|
|
import { doesntExist4 } from \"ES6_Default_AnonFunction1\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Not an exported binding
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_AnonFunc1 from \"ES6_Default_AnonFunction1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var n1: number = ES6_Def_AnonFunc1();
|
2016-12-27 21:29:31 +03:00
|
|
|
var n2: string = ES6_Def_AnonFunc1();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_NamedFunc1 from \"ES6_Default_NamedFunction1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var o1: number = ES6_Def_NamedFunc1();
|
2016-12-27 21:29:31 +03:00
|
|
|
var o2: string = ES6_Def_NamedFunc1();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_AnonClass1 from \"ES6_Default_AnonClass1\";
|
2017-01-11 02:51:46 +03:00
|
|
|
var p1: number = new ES6_Def_AnonClass1().givesANum();
|
|
|
|
var p2: string = new ES6_Def_AnonClass1().givesANum();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
import ES6_Def_NamedClass1 from \"ES6_Default_NamedClass1\";
|
2017-01-11 02:51:46 +03:00
|
|
|
var q1: number = new ES6_Def_NamedClass1().givesANum();
|
|
|
|
var q2: string = new ES6_Def_NamedClass1().givesANum();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
////////////////////////////
|
|
|
|
// == ES6 Named -> ES6 == //
|
|
|
|
////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
import doesntExist5 from \"ES6_Named1\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Not an exported binding
|
2017-01-11 03:32:35 +03:00
|
|
|
import { specifierNumber1 as specifierNumber1_1 } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var r1: number = specifierNumber1_1;
|
2016-12-27 21:29:31 +03:00
|
|
|
var r2: string = specifierNumber1_1;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { specifierNumber2Renamed } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var s1: number = specifierNumber2Renamed;
|
2016-12-27 21:29:31 +03:00
|
|
|
var s2: string = specifierNumber2Renamed;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { specifierNumber3 as specifierNumber3Renamed } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var t1: number = specifierNumber3Renamed;
|
2016-12-27 21:29:31 +03:00
|
|
|
var t2: string = specifierNumber3Renamed;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { groupedSpecifierNumber1, groupedSpecifierNumber2 } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var u1: number = groupedSpecifierNumber1;
|
|
|
|
var u2: number = groupedSpecifierNumber2;
|
2016-12-27 21:29:31 +03:00
|
|
|
var u3: string = groupedSpecifierNumber1;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
var u4: string = groupedSpecifierNumber2;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { givesANumber } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var v1: number = givesANumber();
|
2016-12-27 21:29:31 +03:00
|
|
|
var v2: string = givesANumber();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { NumberGenerator } from \"ES6_Named1\";
|
2017-01-11 02:51:46 +03:00
|
|
|
var w1: number = new NumberGenerator().givesANumber();
|
|
|
|
var w2: string = new NumberGenerator().givesANumber();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { varDeclNumber1, varDeclNumber2 } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var x1: number = varDeclNumber1;
|
|
|
|
var x2: number = varDeclNumber2;
|
2016-12-27 21:29:31 +03:00
|
|
|
var x3: string = varDeclNumber1;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
var x4: string = varDeclNumber2;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { destructuredObjNumber } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var y1: number = destructuredObjNumber;
|
2016-12-27 21:29:31 +03:00
|
|
|
var y2: string = destructuredObjNumber;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { destructuredArrNumber } from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var z1: number = destructuredArrNumber;
|
2016-12-27 21:29:31 +03:00
|
|
|
var z2: string = destructuredArrNumber;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue1 as numberValue4 } from \"ES6_ExportFrom_Intermediary1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var aa1: number = numberValue4;
|
2016-12-27 21:29:31 +03:00
|
|
|
var aa2: string = numberValue4;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue2_renamed } from \"ES6_ExportFrom_Intermediary1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var ab1: number = numberValue2_renamed;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ab2: string = numberValue2_renamed;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2017-01-11 03:32:35 +03:00
|
|
|
import { numberValue1 as numberValue5 } from \"ES6_ExportAllFrom_Intermediary1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
var ac1: number = numberValue5;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ac2: string = numberValue5;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
///////////////////////////////////
|
|
|
|
// == ES6 Default -> CommonJS == //
|
|
|
|
///////////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
require(\"ES6_Default_AnonFunction2\").doesntExist;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: \'doesntExist\' isn\'t an export
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_AnonFunc2 = require(\"ES6_Default_AnonFunction2\").default;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ad1: number = ES6_Def_AnonFunc2();
|
2016-12-27 21:29:31 +03:00
|
|
|
var ad2: string = ES6_Def_AnonFunc2();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_NamedFunc2 = require(\"ES6_Default_NamedFunction2\").default;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ae1: number = ES6_Def_NamedFunc2();
|
2016-12-27 21:29:31 +03:00
|
|
|
var ae2: string = ES6_Def_NamedFunc2();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_AnonClass2 = require(\"ES6_Default_AnonClass2\").default;
|
2017-01-11 02:51:46 +03:00
|
|
|
var af1: number = new ES6_Def_AnonClass2().givesANum();
|
|
|
|
var af2: string = new ES6_Def_AnonClass2().givesANum();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Def_NamedClass2 = require(\"ES6_Default_NamedClass2\").default;
|
2017-01-11 02:51:46 +03:00
|
|
|
var ag1: number = new ES6_Def_NamedClass2().givesANum();
|
|
|
|
var ag2: string = new ES6_Def_NamedClass2().givesANum();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
/////////////////////////////////
|
|
|
|
// == ES6 Named -> CommonJS == //
|
|
|
|
/////////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
var specifierNumber4 = require(\"ES6_Named2\").specifierNumber4;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ah1: number = specifierNumber4;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ah2: string = specifierNumber4;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var specifierNumber5Renamed = require(\"ES6_Named2\").specifierNumber5Renamed;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ai1: number = specifierNumber5Renamed;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ai2: string = specifierNumber5Renamed;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var groupedSpecifierNumber3 = require(\"ES6_Named2\").groupedSpecifierNumber3;
|
|
|
|
var groupedSpecifierNumber4 = require(\"ES6_Named2\").groupedSpecifierNumber4;
|
2016-12-23 22:31:38 +03:00
|
|
|
var aj1: number = groupedSpecifierNumber3;
|
|
|
|
var aj2: number = groupedSpecifierNumber4;
|
2016-12-27 21:29:31 +03:00
|
|
|
var aj3: string = groupedSpecifierNumber3;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
var aj4: string = groupedSpecifierNumber4;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var givesANumber2 = require(\"ES6_Named2\").givesANumber2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ak1: number = givesANumber2();
|
2016-12-27 21:29:31 +03:00
|
|
|
var ak2: string = givesANumber2();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var NumberGenerator2 = require(\"ES6_Named2\").NumberGenerator2;
|
2017-01-11 02:51:46 +03:00
|
|
|
var al1: number = new NumberGenerator2().givesANumber();
|
|
|
|
var al2: string = new NumberGenerator2().givesANumber();
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var varDeclNumber3 = require(\"ES6_Named2\").varDeclNumber3;
|
|
|
|
var varDeclNumber4 = require(\"ES6_Named2\").varDeclNumber4;
|
2016-12-23 22:31:38 +03:00
|
|
|
var am1: number = varDeclNumber3;
|
|
|
|
var am2: number = varDeclNumber4;
|
2016-12-27 21:29:31 +03:00
|
|
|
var am3: string = varDeclNumber3;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-27 21:29:31 +03:00
|
|
|
var am4: string = varDeclNumber4;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var destructuredObjNumber2 = require(\"ES6_Named2\").destructuredObjNumber2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var an1: number = destructuredObjNumber2;
|
2016-12-27 21:29:31 +03:00
|
|
|
var an2: string = destructuredObjNumber2;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var destructuredArrNumber2 = require(\"ES6_Named2\").destructuredArrNumber2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ao1: number = destructuredArrNumber2;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ao2: string = destructuredArrNumber2;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var numberValue6 = require(\"ES6_ExportFrom_Intermediary2\").numberValue1;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ap1: number = numberValue6;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ap2: string = numberValue6;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-23 22:31:38 +03:00
|
|
|
var numberValue2_renamed2 = require(
|
2016-12-30 19:56:42 +03:00
|
|
|
\"ES6_ExportFrom_Intermediary2\"
|
2016-12-23 22:31:38 +03:00
|
|
|
).numberValue2_renamed2;
|
|
|
|
var aq1: number = numberValue2_renamed2;
|
2016-12-27 21:29:31 +03:00
|
|
|
var aq2: string = numberValue2_renamed2;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-30 19:56:42 +03:00
|
|
|
var numberValue7 = require(\"ES6_ExportAllFrom_Intermediary2\").numberValue2;
|
2016-12-23 22:31:38 +03:00
|
|
|
var ar1: number = numberValue7;
|
2016-12-27 21:29:31 +03:00
|
|
|
var ar2: string = numberValue7;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
////////////////////////////////////////////////////////
|
|
|
|
// == ES6 Default+Named -> ES6 import Default+Named== //
|
|
|
|
////////////////////////////////////////////////////////
|
2017-01-11 03:32:35 +03:00
|
|
|
import defaultNum, { str as namedStr } from \"./ES6_DefaultAndNamed\";
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
var as1: number = defaultNum;
|
2016-12-27 21:29:31 +03:00
|
|
|
var as2: string = defaultNum;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-23 22:31:38 +03:00
|
|
|
var as3: string = namedStr;
|
2016-12-27 21:29:31 +03:00
|
|
|
var as4: number = namedStr;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: string ~> number
|
|
|
|
////////////////////////////////////////
|
|
|
|
// == Side-effect only ES6 imports == //
|
|
|
|
////////////////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
import \"./SideEffects\";
|
2017-01-10 05:49:06 +03:00
|
|
|
|
|
|
|
//////////////////////////////////////////////
|
|
|
|
// == Suggest export name on likely typo == //
|
|
|
|
//////////////////////////////////////////////
|
2016-12-30 19:56:42 +03:00
|
|
|
import specifierNumber1 from \"ES6_Named1\";
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Did you mean \`import {specifierNumber1} from ...\`?
|
2017-01-11 03:32:35 +03:00
|
|
|
import { specifierNumber } from \"ES6_Named1\";
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: Did you mean \`specifierNumber1\`?
|
|
|
|
///////////////////////////////////////////////////
|
|
|
|
// == Multi \`export *\` should combine exports == //
|
|
|
|
///////////////////////////////////////////////////
|
Break multiline imports (#167)
Follows the same pattern as https://github.com/jlongster/prettier/pull/156/files
```js
echo "import { aaaaaaaa, bbbbbb, cccccc, dddddddd, eeeeeee, fffffffff, ggggggggg } from 'vjeux';" | ./bin/prettier.js --stdin
import {
aaaaaaaa,
bbbbbb,
cccccc,
dddddddd,
eeeeeee,
fffffffff,
ggggggggg
} from "vjeux";
```
2017-01-13 20:59:33 +03:00
|
|
|
import {
|
|
|
|
numberValue1 as numberValue8,
|
|
|
|
numberValue2 as numberValue9
|
|
|
|
} from \"./ES6_ExportAllFromMulti\";
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
var at1: number = numberValue8;
|
2016-12-27 21:29:31 +03:00
|
|
|
var at2: string = numberValue8;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
2016-12-23 22:31:38 +03:00
|
|
|
var at3: number = numberValue9;
|
2016-12-27 21:29:31 +03:00
|
|
|
var at4: string = numberValue9;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: number ~> string
|
|
|
|
/////////////////////////////////////////////////////////////
|
|
|
|
// == Vanilla \`import\` cannot import a type-only export == //
|
|
|
|
/////////////////////////////////////////////////////////////
|
Break multiline imports (#167)
Follows the same pattern as https://github.com/jlongster/prettier/pull/156/files
```js
echo "import { aaaaaaaa, bbbbbb, cccccc, dddddddd, eeeeeee, fffffffff, ggggggggg } from 'vjeux';" | ./bin/prettier.js --stdin
import {
aaaaaaaa,
bbbbbb,
cccccc,
dddddddd,
eeeeeee,
fffffffff,
ggggggggg
} from "vjeux";
```
2017-01-13 20:59:33 +03:00
|
|
|
import {
|
|
|
|
typeAlias
|
|
|
|
} from \"./ExportType\"; // Error: Cannot vanilla-import a type alias!
|
2017-01-11 18:16:38 +03:00
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|
|
|
|
|
2017-01-18 20:03:31 +03:00
|
|
|
exports[`test export_default_call_expression.js 1`] = `
|
|
|
|
"export default connect(mapStateToProps)(MyComponent);
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
export default connect(mapStateToProps)(MyComponent);
|
|
|
|
"
|
|
|
|
`;
|
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
exports[`test test_imports_are_frozen.js 1`] = `
|
|
|
|
"/* @flow */
|
|
|
|
|
|
|
|
//
|
|
|
|
// Imports
|
|
|
|
//
|
|
|
|
|
|
|
|
// CommonJS module
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as DefaultA from \"A\";
|
2016-12-23 22:31:38 +03:00
|
|
|
DefaultA.numberValue1 = 123; // Error: DefaultA is frozen
|
|
|
|
|
|
|
|
// ES6 module
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as ES6_Named1 from \"ES6_Named1\";
|
2016-12-23 22:31:38 +03:00
|
|
|
ES6_Named1.varDeclNumber1 = 123; // Error: ES6_Named1 is frozen
|
|
|
|
|
|
|
|
// CommonJS module that clobbers module.exports
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CommonJS_Star from \"CommonJS_Clobbering_Lit\";
|
2016-12-23 22:31:38 +03:00
|
|
|
CommonJS_Star.numberValue1 = 123; // Error: frozen
|
|
|
|
CommonJS_Star.default.numberValue1 = 123; // ok
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import CommonJS_Clobbering_Lit from \"CommonJS_Clobbering_Lit\";
|
2016-12-23 22:31:38 +03:00
|
|
|
CommonJS_Clobbering_Lit.numberValue1 = 123; // ok
|
|
|
|
|
|
|
|
// CommonJS module that clobbers module.exports with a frozen object
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CommonJS_Frozen_Star from \"CommonJS_Clobbering_Frozen\";
|
2016-12-23 22:31:38 +03:00
|
|
|
CommonJS_Frozen_Star.numberValue1 = 123; // Error: frozen
|
|
|
|
CommonJS_Frozen_Star.default.numberValue1 = 123; // Error: frozen
|
|
|
|
|
2016-12-30 19:56:42 +03:00
|
|
|
import CommonJS_Clobbering_Frozen from \"CommonJS_Clobbering_Frozen\";
|
2016-12-23 22:31:38 +03:00
|
|
|
CommonJS_Clobbering_Frozen.numberValue1 = 123; // Error: exports are frozen
|
|
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
// Requires
|
|
|
|
//
|
|
|
|
|
|
|
|
function testRequires() {
|
|
|
|
// CommonJS module
|
2016-12-30 19:56:42 +03:00
|
|
|
var DefaultA = require(\"A\");
|
2016-12-23 22:31:38 +03:00
|
|
|
DefaultA.numberValue1 = 123; // ok, not frozen by default
|
|
|
|
|
|
|
|
// ES6 module
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Named1 = require(\"ES6_Named1\");
|
2016-12-23 22:31:38 +03:00
|
|
|
ES6_Named1.numberValue = 123; // error, es6 exports are frozen
|
|
|
|
|
|
|
|
// CommonJS module that clobbers module.exports
|
2016-12-30 19:56:42 +03:00
|
|
|
var CommonJS_Star = require(\"CommonJS_Clobbering_Lit\");
|
2016-12-23 22:31:38 +03:00
|
|
|
CommonJS_Star.numberValue1 = 123; // ok, not frozen by default
|
|
|
|
|
|
|
|
// CommonJS module that clobbers module.exports with a frozen object
|
2016-12-30 19:56:42 +03:00
|
|
|
var CommonJS_Frozen_Star = require(\"CommonJS_Clobbering_Frozen\");
|
2016-12-23 22:31:38 +03:00
|
|
|
CommonJS_Frozen_Star.numberValue1 = 123; // Error: frozen
|
|
|
|
}
|
|
|
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
/* @flow */
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
//
|
|
|
|
// Imports
|
|
|
|
//
|
2017-01-10 05:49:06 +03:00
|
|
|
|
2016-12-23 22:31:38 +03:00
|
|
|
// CommonJS module
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as DefaultA from \"A\";
|
2016-12-28 05:40:04 +03:00
|
|
|
DefaultA.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: DefaultA is frozen
|
|
|
|
// ES6 module
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as ES6_Named1 from \"ES6_Named1\";
|
2016-12-28 05:40:04 +03:00
|
|
|
ES6_Named1.varDeclNumber1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: ES6_Named1 is frozen
|
|
|
|
// CommonJS module that clobbers module.exports
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CommonJS_Star from \"CommonJS_Clobbering_Lit\";
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Star.numberValue1 = 123;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: frozen
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Star.default.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok
|
2016-12-30 19:56:42 +03:00
|
|
|
import CommonJS_Clobbering_Lit from \"CommonJS_Clobbering_Lit\";
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Clobbering_Lit.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok
|
|
|
|
// CommonJS module that clobbers module.exports with a frozen object
|
2016-12-30 19:56:42 +03:00
|
|
|
import * as CommonJS_Frozen_Star from \"CommonJS_Clobbering_Frozen\";
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Frozen_Star.numberValue1 = 123;
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: frozen
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Frozen_Star.default.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: frozen
|
2016-12-30 19:56:42 +03:00
|
|
|
import CommonJS_Clobbering_Frozen from \"CommonJS_Clobbering_Frozen\";
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Clobbering_Frozen.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// Error: exports are frozen
|
|
|
|
//
|
|
|
|
// Requires
|
|
|
|
//
|
2016-12-23 22:31:38 +03:00
|
|
|
function testRequires() {
|
2017-01-10 05:49:06 +03:00
|
|
|
// CommonJS module
|
2016-12-30 19:56:42 +03:00
|
|
|
var DefaultA = require(\"A\");
|
2016-12-28 05:40:04 +03:00
|
|
|
DefaultA.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok, not frozen by default
|
|
|
|
// ES6 module
|
2016-12-30 19:56:42 +03:00
|
|
|
var ES6_Named1 = require(\"ES6_Named1\");
|
2016-12-28 05:40:04 +03:00
|
|
|
ES6_Named1.numberValue = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// error, es6 exports are frozen
|
|
|
|
// CommonJS module that clobbers module.exports
|
2016-12-30 19:56:42 +03:00
|
|
|
var CommonJS_Star = require(\"CommonJS_Clobbering_Lit\");
|
2016-12-28 05:40:04 +03:00
|
|
|
CommonJS_Star.numberValue1 = 123;
|
2017-01-18 06:33:55 +03:00
|
|
|
|
2017-01-10 05:49:06 +03:00
|
|
|
// ok, not frozen by default
|
|
|
|
// CommonJS module that clobbers module.exports with a frozen object
|
2016-12-30 19:56:42 +03:00
|
|
|
var CommonJS_Frozen_Star = require(\"CommonJS_Clobbering_Frozen\");
|
2017-01-10 05:49:06 +03:00
|
|
|
CommonJS_Frozen_Star.numberValue1 = 123; // Error: frozen
|
2017-01-11 18:16:38 +03:00
|
|
|
}
|
|
|
|
"
|
2016-12-23 22:31:38 +03:00
|
|
|
`;
|