Report error if user specified --out and we are defaulting to commonjs emit
This commit is contained in:
parent
936b006156
commit
76dd2086a4
|
@ -2076,7 +2076,10 @@ namespace ts {
|
|||
}
|
||||
|
||||
// Cannot specify module gen that isn't amd or system with --out
|
||||
if (outFile && options.module && !(options.module === ModuleKind.AMD || options.module === ModuleKind.System)) {
|
||||
// Report this error if user specified --module moduleKind
|
||||
// or if there is external module in compilation which defaults to commonjs
|
||||
const emitModuleKind = getEmitModuleKind(options);
|
||||
if (outFile && (options.module || firstExternalModuleSourceFile) && !(emitModuleKind === ModuleKind.AMD || emitModuleKind === ModuleKind.System)) {
|
||||
programDiagnostics.add(createCompilerDiagnostic(Diagnostics.Only_amd_and_system_modules_are_supported_alongside_0, options.out ? "out" : "outFile"));
|
||||
}
|
||||
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
error TS5053: Option 'out' cannot be specified with option 'isolatedModules'.
|
||||
error TS6082: Only 'amd' and 'system' modules are supported alongside --out.
|
||||
tests/cases/compiler/file2.ts(1,1): error TS1208: Cannot compile namespaces when the '--isolatedModules' flag is provided.
|
||||
|
||||
|
||||
!!! error TS5053: Option 'out' cannot be specified with option 'isolatedModules'.
|
||||
!!! error TS6082: Only 'amd' and 'system' modules are supported alongside --out.
|
||||
==== tests/cases/compiler/file1.ts (0 errors) ====
|
||||
|
||||
export var x;
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
error TS6082: Only 'amd' and 'system' modules are supported alongside --out.
|
||||
|
||||
|
||||
!!! error TS6082: Only 'amd' and 'system' modules are supported alongside --out.
|
||||
==== /mod2.ts (0 errors) ====
|
||||
|
||||
import {foo} from "./mod1";
|
||||
export const bar = foo();
|
||||
==== /types/lib/index.d.ts (0 errors) ====
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
|
||||
==== /mod1.ts (0 errors) ====
|
||||
|
||||
export function foo(): Lib { return {x: 1} }
|
||||
|
|
@ -1,27 +0,0 @@
|
|||
//// [tests/cases/compiler/typeReferenceDirectives11.ts] ////
|
||||
|
||||
//// [index.d.ts]
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
|
||||
//// [mod1.ts]
|
||||
|
||||
export function foo(): Lib { return {x: 1} }
|
||||
|
||||
//// [mod2.ts]
|
||||
|
||||
import {foo} from "./mod1";
|
||||
export const bar = foo();
|
||||
|
||||
//// [output.js]
|
||||
|
||||
|
||||
//// [output.d.ts]
|
||||
/// <reference types="lib" />
|
||||
declare module "mod1" {
|
||||
export function foo(): Lib;
|
||||
}
|
||||
declare module "mod2" {
|
||||
export const bar: Lib;
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
=== /mod2.ts ===
|
||||
|
||||
import {foo} from "./mod1";
|
||||
>foo : Symbol(foo, Decl(mod2.ts, 1, 8))
|
||||
|
||||
export const bar = foo();
|
||||
>bar : Symbol(bar, Decl(mod2.ts, 2, 12))
|
||||
>foo : Symbol(foo, Decl(mod2.ts, 1, 8))
|
||||
|
||||
=== /types/lib/index.d.ts ===
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
>Lib : Symbol(Lib, Decl(index.d.ts, 0, 0))
|
||||
>x : Symbol(Lib.x, Decl(index.d.ts, 2, 15))
|
||||
|
||||
=== /mod1.ts ===
|
||||
|
||||
export function foo(): Lib { return {x: 1} }
|
||||
>foo : Symbol(foo, Decl(mod1.ts, 0, 0))
|
||||
>Lib : Symbol(Lib, Decl(index.d.ts, 0, 0))
|
||||
>x : Symbol(x, Decl(mod1.ts, 1, 37))
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
=== /mod2.ts ===
|
||||
|
||||
import {foo} from "./mod1";
|
||||
>foo : () => Lib
|
||||
|
||||
export const bar = foo();
|
||||
>bar : Lib
|
||||
>foo() : Lib
|
||||
>foo : () => Lib
|
||||
|
||||
=== /types/lib/index.d.ts ===
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
>Lib : Lib
|
||||
>x : any
|
||||
|
||||
=== /mod1.ts ===
|
||||
|
||||
export function foo(): Lib { return {x: 1} }
|
||||
>foo : () => Lib
|
||||
>Lib : Lib
|
||||
>{x: 1} : { x: number; }
|
||||
>x : number
|
||||
>1 : number
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
error TS6082: Only 'amd' and 'system' modules are supported alongside --out.
|
||||
|
||||
|
||||
!!! error TS6082: Only 'amd' and 'system' modules are supported alongside --out.
|
||||
==== /mod2.ts (0 errors) ====
|
||||
import { Cls } from "./main";
|
||||
import "./mod1";
|
||||
|
||||
export const cls = Cls;
|
||||
export const foo = new Cls().foo();
|
||||
export const bar = Cls.bar();
|
||||
==== /types/lib/index.d.ts (0 errors) ====
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
|
||||
==== /main.ts (0 errors) ====
|
||||
export class Cls {
|
||||
x
|
||||
}
|
||||
|
||||
==== /mod1.ts (0 errors) ====
|
||||
/// <reference types="lib" />
|
||||
|
||||
import {Cls} from "./main";
|
||||
Cls.prototype.foo = function() { return undefined; }
|
||||
|
||||
declare module "./main" {
|
||||
interface Cls {
|
||||
foo(): Lib;
|
||||
}
|
||||
namespace Cls {
|
||||
function bar(): Lib;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,63 +0,0 @@
|
|||
//// [tests/cases/compiler/typeReferenceDirectives12.ts] ////
|
||||
|
||||
//// [index.d.ts]
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
|
||||
//// [main.ts]
|
||||
export class Cls {
|
||||
x
|
||||
}
|
||||
|
||||
//// [mod1.ts]
|
||||
/// <reference types="lib" />
|
||||
|
||||
import {Cls} from "./main";
|
||||
Cls.prototype.foo = function() { return undefined; }
|
||||
|
||||
declare module "./main" {
|
||||
interface Cls {
|
||||
foo(): Lib;
|
||||
}
|
||||
namespace Cls {
|
||||
function bar(): Lib;
|
||||
}
|
||||
}
|
||||
|
||||
//// [mod2.ts]
|
||||
import { Cls } from "./main";
|
||||
import "./mod1";
|
||||
|
||||
export const cls = Cls;
|
||||
export const foo = new Cls().foo();
|
||||
export const bar = Cls.bar();
|
||||
|
||||
//// [output.js]
|
||||
/// <reference types="lib" />
|
||||
|
||||
|
||||
//// [output.d.ts]
|
||||
/// <reference types="lib" />
|
||||
declare module "main" {
|
||||
export class Cls {
|
||||
x: any;
|
||||
}
|
||||
}
|
||||
declare module "mod1" {
|
||||
module "main" {
|
||||
interface Cls {
|
||||
foo(): Lib;
|
||||
}
|
||||
namespace Cls {
|
||||
function bar(): Lib;
|
||||
}
|
||||
}
|
||||
}
|
||||
declare module "mod2" {
|
||||
import { Cls } from "main";
|
||||
import "mod1";
|
||||
export const cls: typeof Cls;
|
||||
export const foo: Lib;
|
||||
export const bar: Lib;
|
||||
}
|
|
@ -1,68 +0,0 @@
|
|||
=== /mod2.ts ===
|
||||
import { Cls } from "./main";
|
||||
>Cls : Symbol(Cls, Decl(mod2.ts, 0, 8))
|
||||
|
||||
import "./mod1";
|
||||
|
||||
export const cls = Cls;
|
||||
>cls : Symbol(cls, Decl(mod2.ts, 3, 12))
|
||||
>Cls : Symbol(Cls, Decl(mod2.ts, 0, 8))
|
||||
|
||||
export const foo = new Cls().foo();
|
||||
>foo : Symbol(foo, Decl(mod2.ts, 4, 12))
|
||||
>new Cls().foo : Symbol(Cls.foo, Decl(mod1.ts, 6, 19))
|
||||
>Cls : Symbol(Cls, Decl(mod2.ts, 0, 8))
|
||||
>foo : Symbol(Cls.foo, Decl(mod1.ts, 6, 19))
|
||||
|
||||
export const bar = Cls.bar();
|
||||
>bar : Symbol(bar, Decl(mod2.ts, 5, 12))
|
||||
>Cls.bar : Symbol(Cls.bar, Decl(mod1.ts, 9, 19))
|
||||
>Cls : Symbol(Cls, Decl(mod2.ts, 0, 8))
|
||||
>bar : Symbol(Cls.bar, Decl(mod1.ts, 9, 19))
|
||||
|
||||
=== /types/lib/index.d.ts ===
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
>Lib : Symbol(Lib, Decl(index.d.ts, 0, 0))
|
||||
>x : Symbol(Lib.x, Decl(index.d.ts, 2, 15))
|
||||
|
||||
=== /main.ts ===
|
||||
export class Cls {
|
||||
>Cls : Symbol(Cls, Decl(main.ts, 0, 0), Decl(mod1.ts, 5, 25), Decl(mod1.ts, 8, 5))
|
||||
|
||||
x
|
||||
>x : Symbol(Cls.x, Decl(main.ts, 0, 18))
|
||||
}
|
||||
|
||||
=== /mod1.ts ===
|
||||
/// <reference types="lib" />
|
||||
|
||||
import {Cls} from "./main";
|
||||
>Cls : Symbol(Cls, Decl(mod1.ts, 2, 8))
|
||||
|
||||
Cls.prototype.foo = function() { return undefined; }
|
||||
>Cls.prototype.foo : Symbol(Cls.foo, Decl(mod1.ts, 6, 19))
|
||||
>Cls.prototype : Symbol(Cls.prototype)
|
||||
>Cls : Symbol(Cls, Decl(mod1.ts, 2, 8))
|
||||
>prototype : Symbol(Cls.prototype)
|
||||
>foo : Symbol(Cls.foo, Decl(mod1.ts, 6, 19))
|
||||
>undefined : Symbol(undefined)
|
||||
|
||||
declare module "./main" {
|
||||
interface Cls {
|
||||
>Cls : Symbol(Cls, Decl(main.ts, 0, 0), Decl(mod1.ts, 5, 25), Decl(mod1.ts, 8, 5))
|
||||
|
||||
foo(): Lib;
|
||||
>foo : Symbol(Cls.foo, Decl(mod1.ts, 6, 19))
|
||||
>Lib : Symbol(Lib, Decl(index.d.ts, 0, 0))
|
||||
}
|
||||
namespace Cls {
|
||||
>Cls : Symbol(Cls, Decl(main.ts, 0, 0), Decl(mod1.ts, 5, 25), Decl(mod1.ts, 8, 5))
|
||||
|
||||
function bar(): Lib;
|
||||
>bar : Symbol(bar, Decl(mod1.ts, 9, 19))
|
||||
>Lib : Symbol(Lib, Decl(index.d.ts, 0, 0))
|
||||
}
|
||||
}
|
||||
|
|
@ -1,73 +0,0 @@
|
|||
=== /mod2.ts ===
|
||||
import { Cls } from "./main";
|
||||
>Cls : typeof Cls
|
||||
|
||||
import "./mod1";
|
||||
|
||||
export const cls = Cls;
|
||||
>cls : typeof Cls
|
||||
>Cls : typeof Cls
|
||||
|
||||
export const foo = new Cls().foo();
|
||||
>foo : Lib
|
||||
>new Cls().foo() : Lib
|
||||
>new Cls().foo : () => Lib
|
||||
>new Cls() : Cls
|
||||
>Cls : typeof Cls
|
||||
>foo : () => Lib
|
||||
|
||||
export const bar = Cls.bar();
|
||||
>bar : Lib
|
||||
>Cls.bar() : Lib
|
||||
>Cls.bar : () => Lib
|
||||
>Cls : typeof Cls
|
||||
>bar : () => Lib
|
||||
|
||||
=== /types/lib/index.d.ts ===
|
||||
|
||||
|
||||
interface Lib { x }
|
||||
>Lib : Lib
|
||||
>x : any
|
||||
|
||||
=== /main.ts ===
|
||||
export class Cls {
|
||||
>Cls : Cls
|
||||
|
||||
x
|
||||
>x : any
|
||||
}
|
||||
|
||||
=== /mod1.ts ===
|
||||
/// <reference types="lib" />
|
||||
|
||||
import {Cls} from "./main";
|
||||
>Cls : typeof Cls
|
||||
|
||||
Cls.prototype.foo = function() { return undefined; }
|
||||
>Cls.prototype.foo = function() { return undefined; } : () => any
|
||||
>Cls.prototype.foo : () => Lib
|
||||
>Cls.prototype : Cls
|
||||
>Cls : typeof Cls
|
||||
>prototype : Cls
|
||||
>foo : () => Lib
|
||||
>function() { return undefined; } : () => any
|
||||
>undefined : undefined
|
||||
|
||||
declare module "./main" {
|
||||
interface Cls {
|
||||
>Cls : Cls
|
||||
|
||||
foo(): Lib;
|
||||
>foo : () => Lib
|
||||
>Lib : Lib
|
||||
}
|
||||
namespace Cls {
|
||||
>Cls : typeof Cls
|
||||
|
||||
function bar(): Lib;
|
||||
>bar : () => Lib
|
||||
>Lib : Lib
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in a new issue