tests/cases/compiler/noUnusedLocals_selfReference.ts(3,10): error TS6133: 'f' is declared but its value is never read.
tests/cases/compiler/noUnusedLocals_selfReference.ts(5,14): error TS6133: 'g' is declared but its value is never read.
tests/cases/compiler/noUnusedLocals_selfReference.ts(9,7): error TS6196: 'C' is declared but never used.
tests/cases/compiler/noUnusedLocals_selfReference.ts(12,6): error TS6196: 'E' is declared but never used.
tests/cases/compiler/noUnusedLocals_selfReference.ts(13,11): error TS6196: 'I' is declared but never used.
tests/cases/compiler/noUnusedLocals_selfReference.ts(14,6): error TS6196: 'T' is declared but never used.
tests/cases/compiler/noUnusedLocals_selfReference.ts(15,11): error TS6133: 'N' is declared but its value is never read.
tests/cases/compiler/noUnusedLocals_selfReference.ts(22,19): error TS6133: 'm' is declared but its value is never read.


==== tests/cases/compiler/noUnusedLocals_selfReference.ts (8 errors) ====
    export {}; // Make this a module scope, so these are local variables.
    
    function f() {
             ~
!!! error TS6133: 'f' is declared but its value is never read.
        f;
        function g() {
                 ~
!!! error TS6133: 'g' is declared but its value is never read.
            g;
        }
    }
    class C {
          ~
!!! error TS6196: 'C' is declared but never used.
        m() { C; }
    }
    enum E { A = 0, B = E.A }
         ~
!!! error TS6196: 'E' is declared but never used.
    interface I { x: I };
              ~
!!! error TS6196: 'I' is declared but never used.
    type T = { x: T };
         ~
!!! error TS6196: 'T' is declared but never used.
    namespace N { N; }
              ~
!!! error TS6133: 'N' is declared but its value is never read.
    
    // Avoid a false positive.
    // Previously `T` was considered unused due to merging with the property,
    // back when all non-blocks were checked for recursion.
    export interface A<T> { T: T }
    
    class P { private m() { this.m; } }
                      ~
!!! error TS6133: 'm' is declared but its value is never read.
    P;
    
    // Does not detect mutual recursion.
    function g() { D; }
    class D { m() { g; } }
    