=== tests/cases/conformance/dynamicImport/importCallExpressionSpecifierNotStringTypeError.ts ===
declare function getSpecifier(): boolean;
>getSpecifier : () => boolean

declare var whatToLoad: boolean;
>whatToLoad : boolean

// Error specifier is not assignable to string
import(getSpecifier());
>import(getSpecifier()) : Promise<any>
>getSpecifier() : boolean
>getSpecifier : () => boolean

var p1 = import(getSpecifier());
>p1 : Promise<any>
>import(getSpecifier()) : Promise<any>
>getSpecifier() : boolean
>getSpecifier : () => boolean

const p2 = import(whatToLoad ? getSpecifier() : "defaulPath")
>p2 : Promise<any>
>import(whatToLoad ? getSpecifier() : "defaulPath") : Promise<any>
>whatToLoad ? getSpecifier() : "defaulPath" : boolean | "defaulPath"
>whatToLoad : boolean
>getSpecifier() : boolean
>getSpecifier : () => boolean
>"defaulPath" : "defaulPath"

p1.then(zero => {
>p1.then(zero => {    return zero.foo();  // ok, zero is any}) : Promise<any>
>p1.then : <TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
>p1 : Promise<any>
>then : <TResult1 = any, TResult2 = never>(onfulfilled?: (value: any) => TResult1 | PromiseLike<TResult1>, onrejected?: (reason: any) => TResult2 | PromiseLike<TResult2>) => Promise<TResult1 | TResult2>
>zero => {    return zero.foo();  // ok, zero is any} : (zero: any) => any
>zero : any

    return zero.foo();  // ok, zero is any
>zero.foo() : any
>zero.foo : any
>zero : any
>foo : any

});

var p3 = import(["path1", "path2"]);
>p3 : Promise<any>
>import(["path1", "path2"]) : Promise<any>
>["path1", "path2"] : string[]
>"path1" : "path1"
>"path2" : "path2"

var p4 = import(()=>"PathToModule");
>p4 : Promise<any>
>import(()=>"PathToModule") : Promise<any>
>()=>"PathToModule" : () => string
>"PathToModule" : "PathToModule"

