==== tests/cases/compiler/invalidStringAssignments.ts (11 errors) ====
    var x = '';
    
    var a: boolean = x;
        ~~~~~~~~~~~~~~
!!! invalidStringAssignments.ts(3,5): error TS2011: Cannot convert 'string' to 'boolean'.
    var b: number = x;
        ~~~~~~~~~~~~~
!!! invalidStringAssignments.ts(4,5): error TS2011: Cannot convert 'string' to 'number'.
    var c: void = x;
        ~~~~~~~~~~~
!!! invalidStringAssignments.ts(5,5): error TS2011: Cannot convert 'string' to 'void'.
    var d: typeof undefined = x;
    
    class C { foo: string; }
    var e: C = x;
        ~~~~~~~~
!!! invalidStringAssignments.ts(9,5): error TS2012: Cannot convert 'string' to 'C':
!!! 	Type 'String' is missing property 'foo' from type 'C'.
    
    interface I { bar: string; }
    var f: I = x;
        ~~~~~~~~
!!! invalidStringAssignments.ts(12,5): error TS2012: Cannot convert 'string' to 'I':
!!! 	Type 'String' is missing property 'bar' from type 'I'.
    
    var g: { baz: string } = 1;
        ~~~~~~~~~~~~~~~~~~~~~~
!!! invalidStringAssignments.ts(14,5): error TS2012: Cannot convert 'number' to '{ baz: string; }':
!!! 	Type 'Number' is missing property 'baz' from type '{ baz: string; }'.
    var g2: { 0: number } = 1;
        ~~~~~~~~~~~~~~~~~~~~~
!!! invalidStringAssignments.ts(15,5): error TS2012: Cannot convert 'number' to '{ 0: number; }':
!!! 	Type 'Number' is missing property '0' from type '{ 0: number; }'.
    
    module M { export var x = 1; }
    M = x;
    ~
!!! invalidStringAssignments.ts(18,1): error TS2130: Invalid left-hand side of assignment expression.
    
    function i<T>(a: T) {
        a = x;
        ~
!!! invalidStringAssignments.ts(21,5): error TS2011: Cannot convert 'string' to 'T'.
    }
    i = x;
    ~
!!! invalidStringAssignments.ts(23,1): error TS2130: Invalid left-hand side of assignment expression.
    
    enum E { A }
    var j: E = x;
        ~~~~~~~~
!!! invalidStringAssignments.ts(26,5): error TS2011: Cannot convert 'string' to 'E'.