//// [tests/cases/conformance/types/namedTypes/classWithOnlyPublicMembersEquivalentToInterface2.ts] ////

=== classWithOnlyPublicMembersEquivalentToInterface2.ts ===
// no errors expected

class C {
>C : Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 0, 0))

    public x: string;
>x : Symbol(C.x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 2, 9))

    public y(a: number): number { return null; }
>y : Symbol(C.y, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 3, 21))
>a : Symbol(a, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 13))

    public get z() { return 1; }
>z : Symbol(C.z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 5, 32))

    public set z(v) { }
>z : Symbol(C.z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 4, 48), Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 5, 32))
>v : Symbol(v, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 6, 17))

    [x: string]: Object;
>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 7, 5))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

    [x: number]: Object;
>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 8, 5))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

    0: number;
>0 : Symbol(C[0], Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 8, 24))

    public static foo: string; // doesn't effect equivalence
>foo : Symbol(C.foo, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 9, 14))
}

interface I {
>I : Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 12, 1))

    x: string;
>x : Symbol(I.x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 14, 13))

    y(b: number): number;
>y : Symbol(I.y, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 15, 14))
>b : Symbol(b, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 16, 6))

    z: number;
>z : Symbol(I.z, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 16, 25))

    [x: string]: Object;
>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 18, 5))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

    [x: number]: Object;
>x : Symbol(x, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 19, 5))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))

    0: number;
>0 : Symbol(I[0], Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 19, 24))
}

var c: C;
>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3))
>C : Symbol(C, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 0, 0))

var i: I;
>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3))
>I : Symbol(I, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 12, 1))

c = i;
>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3))
>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3))

i = c;
>i : Symbol(i, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 24, 3))
>c : Symbol(c, Decl(classWithOnlyPublicMembersEquivalentToInterface2.ts, 23, 3))

