tests/cases/compiler/noImplicitAnyIndexing.ts(12,37): error TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.
tests/cases/compiler/noImplicitAnyIndexing.ts(19,9): error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
tests/cases/compiler/noImplicitAnyIndexing.ts(22,9): error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
tests/cases/compiler/noImplicitAnyIndexing.ts(30,10): error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.


==== tests/cases/compiler/noImplicitAnyIndexing.ts (4 errors) ====
    enum MyEmusEnum {
        emu
    }
    
    // Should be okay; should be a string.
    var strRepresentation1 = MyEmusEnum[0]
    
    // Should be okay; should be a string.
    var strRepresentation2 = MyEmusEnum[MyEmusEnum.emu]
    
    // Should be implicit 'any' ; property access fails, no string indexer.
    var strRepresentation3 = MyEmusEnum["monehh"];
                                        ~~~~~~~~
!!! error TS7015: Element implicitly has an 'any' type because index expression is not of type 'number'.
    
    // Should be okay; should be a MyEmusEnum
    var strRepresentation4 = MyEmusEnum["emu"];
    
    
    // Should report an implicit 'any'.
    var x = {}["hi"];
            ~~~~~~~~
!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
    
    // Should report an implicit 'any'.
    var y = {}[10];
            ~~~~~~
!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
    
    
    var hi: any = "hi";
    
    var emptyObj = {};
    
    // Should report an implicit 'any'.
    var z1 = emptyObj[hi];
             ~~~~~~~~~~~~
!!! error TS7017: Element implicitly has an 'any' type because type '{}' has no index signature.
    var z2 = (<any>emptyObj)[hi];
    
    interface MyMap<T> {
        [key: string]: T;
    }
    
    var m: MyMap<number> = {
        "0": 0,
        "1": 1,
        "2": 2,
        "Okay that's enough for today.": NaN
    };
    
    var mResult1 = m[MyEmusEnum.emu];
    var mResult2 = m[MyEmusEnum[MyEmusEnum.emu]];
    var mResult3 = m[hi];
    
    