=== tests/cases/compiler/commentsInheritance.ts === /** i1 is interface with properties*/ interface i1 { >i1 : Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) /** i1_p1*/ i1_p1: number; >i1_p1 : Symbol(i1_p1, Decl(commentsInheritance.ts, 2, 14)) /** i1_f1*/ i1_f1(): void; >i1_f1 : Symbol(i1_f1, Decl(commentsInheritance.ts, 4, 18)) /** i1_l1*/ i1_l1: () => void; >i1_l1 : Symbol(i1_l1, Decl(commentsInheritance.ts, 6, 18)) // il_nc_p1 i1_nc_p1: number; >i1_nc_p1 : Symbol(i1_nc_p1, Decl(commentsInheritance.ts, 8, 22)) i1_nc_f1(): void; >i1_nc_f1 : Symbol(i1_nc_f1, Decl(commentsInheritance.ts, 10, 21)) i1_nc_l1: () => void; >i1_nc_l1 : Symbol(i1_nc_l1, Decl(commentsInheritance.ts, 11, 21)) p1: number; >p1 : Symbol(p1, Decl(commentsInheritance.ts, 12, 25)) f1(): void; >f1 : Symbol(f1, Decl(commentsInheritance.ts, 13, 15)) l1: () => void; >l1 : Symbol(l1, Decl(commentsInheritance.ts, 14, 15)) nc_p1: number; >nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 15, 19)) nc_f1(): void; >nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 16, 18)) nc_l1: () => void; >nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 17, 18)) } class c1 implements i1 { >c1 : Symbol(c1, Decl(commentsInheritance.ts, 19, 1)) >i1 : Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) public i1_p1: number; >i1_p1 : Symbol(i1_p1, Decl(commentsInheritance.ts, 20, 24)) // i1_f1 public i1_f1() { >i1_f1 : Symbol(i1_f1, Decl(commentsInheritance.ts, 21, 25)) } public i1_l1: () => void; >i1_l1 : Symbol(i1_l1, Decl(commentsInheritance.ts, 24, 5)) public i1_nc_p1: number; >i1_nc_p1 : Symbol(i1_nc_p1, Decl(commentsInheritance.ts, 25, 29)) public i1_nc_f1() { >i1_nc_f1 : Symbol(i1_nc_f1, Decl(commentsInheritance.ts, 26, 28)) } public i1_nc_l1: () => void; >i1_nc_l1 : Symbol(i1_nc_l1, Decl(commentsInheritance.ts, 28, 5)) /** c1_p1*/ public p1: number; >p1 : Symbol(p1, Decl(commentsInheritance.ts, 29, 32)) /** c1_f1*/ public f1() { >f1 : Symbol(f1, Decl(commentsInheritance.ts, 31, 22)) } /** c1_l1*/ public l1: () => void; >l1 : Symbol(l1, Decl(commentsInheritance.ts, 34, 5)) /** c1_nc_p1*/ public nc_p1: number; >nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 36, 26)) /** c1_nc_f1*/ public nc_f1() { >nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 38, 25)) } /** c1_nc_l1*/ public nc_l1: () => void; >nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 41, 5)) } var i1_i: i1; >i1_i : Symbol(i1_i, Decl(commentsInheritance.ts, 45, 3)) >i1 : Symbol(i1, Decl(commentsInheritance.ts, 0, 0)) var c1_i = new c1(); >c1_i : Symbol(c1_i, Decl(commentsInheritance.ts, 46, 3)) >c1 : Symbol(c1, Decl(commentsInheritance.ts, 19, 1)) // assign to interface i1_i = c1_i; >i1_i : Symbol(i1_i, Decl(commentsInheritance.ts, 45, 3)) >c1_i : Symbol(c1_i, Decl(commentsInheritance.ts, 46, 3)) class c2 { >c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) /** c2 c2_p1*/ public c2_p1: number; >c2_p1 : Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) /** c2 c2_f1*/ public c2_f1() { >c2_f1 : Symbol(c2_f1, Decl(commentsInheritance.ts, 51, 25)) } /** c2 c2_prop*/ public get c2_prop() { >c2_prop : Symbol(c2_prop, Decl(commentsInheritance.ts, 54, 5)) return 10; } public c2_nc_p1: number; >c2_nc_p1 : Symbol(c2_nc_p1, Decl(commentsInheritance.ts, 58, 5)) public c2_nc_f1() { >c2_nc_f1 : Symbol(c2_nc_f1, Decl(commentsInheritance.ts, 59, 28)) } public get c2_nc_prop() { >c2_nc_prop : Symbol(c2_nc_prop, Decl(commentsInheritance.ts, 61, 5)) return 10; } /** c2 p1*/ public p1: number; >p1 : Symbol(p1, Decl(commentsInheritance.ts, 64, 5)) /** c2 f1*/ public f1() { >f1 : Symbol(f1, Decl(commentsInheritance.ts, 66, 22)) } /** c2 prop*/ public get prop() { >prop : Symbol(prop, Decl(commentsInheritance.ts, 69, 5)) return 10; } public nc_p1: number; >nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 73, 5)) public nc_f1() { >nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 74, 25)) } public get nc_prop() { >nc_prop : Symbol(nc_prop, Decl(commentsInheritance.ts, 76, 5)) return 10; } /** c2 constructor*/ constructor(a: number) { >a : Symbol(a, Decl(commentsInheritance.ts, 81, 16)) this.c2_p1 = a; >this.c2_p1 : Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) >this : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) >c2_p1 : Symbol(c2_p1, Decl(commentsInheritance.ts, 49, 10)) >a : Symbol(a, Decl(commentsInheritance.ts, 81, 16)) } } class c3 extends c2 { >c3 : Symbol(c3, Decl(commentsInheritance.ts, 84, 1)) >c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) constructor() { super(10); >super : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) } /** c3 p1*/ public p1: number; >p1 : Symbol(p1, Decl(commentsInheritance.ts, 88, 5)) /** c3 f1*/ public f1() { >f1 : Symbol(f1, Decl(commentsInheritance.ts, 90, 22)) } /** c3 prop*/ public get prop() { >prop : Symbol(prop, Decl(commentsInheritance.ts, 93, 5)) return 10; } public nc_p1: number; >nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 97, 5)) public nc_f1() { >nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 98, 25)) } public get nc_prop() { >nc_prop : Symbol(nc_prop, Decl(commentsInheritance.ts, 100, 5)) return 10; } } var c2_i = new c2(10); >c2_i : Symbol(c2_i, Decl(commentsInheritance.ts, 105, 3)) >c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) var c3_i = new c3(); >c3_i : Symbol(c3_i, Decl(commentsInheritance.ts, 106, 3)) >c3 : Symbol(c3, Decl(commentsInheritance.ts, 84, 1)) // assign c2_i = c3_i; >c2_i : Symbol(c2_i, Decl(commentsInheritance.ts, 105, 3)) >c3_i : Symbol(c3_i, Decl(commentsInheritance.ts, 106, 3)) class c4 extends c2 { >c4 : Symbol(c4, Decl(commentsInheritance.ts, 108, 12)) >c2 : Symbol(c2, Decl(commentsInheritance.ts, 48, 12)) } var c4_i = new c4(10); >c4_i : Symbol(c4_i, Decl(commentsInheritance.ts, 111, 3)) >c4 : Symbol(c4, Decl(commentsInheritance.ts, 108, 12)) interface i2 { >i2 : Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) /** i2_p1*/ i2_p1: number; >i2_p1 : Symbol(i2_p1, Decl(commentsInheritance.ts, 112, 14)) /** i2_f1*/ i2_f1(): void; >i2_f1 : Symbol(i2_f1, Decl(commentsInheritance.ts, 114, 18)) /** i2_l1*/ i2_l1: () => void; >i2_l1 : Symbol(i2_l1, Decl(commentsInheritance.ts, 116, 18)) // i2_nc_p1 i2_nc_p1: number; >i2_nc_p1 : Symbol(i2_nc_p1, Decl(commentsInheritance.ts, 118, 22)) i2_nc_f1(): void; >i2_nc_f1 : Symbol(i2_nc_f1, Decl(commentsInheritance.ts, 120, 21)) i2_nc_l1: () => void; >i2_nc_l1 : Symbol(i2_nc_l1, Decl(commentsInheritance.ts, 121, 21)) /** i2 p1*/ p1: number; >p1 : Symbol(p1, Decl(commentsInheritance.ts, 122, 25)) /** i2 f1*/ f1(): void; >f1 : Symbol(f1, Decl(commentsInheritance.ts, 124, 15)) /** i2 l1*/ l1: () => void; >l1 : Symbol(l1, Decl(commentsInheritance.ts, 126, 15)) nc_p1: number; >nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 128, 19)) nc_f1(): void; >nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 129, 18)) nc_l1: () => void; >nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 130, 18)) } interface i3 extends i2 { >i3 : Symbol(i3, Decl(commentsInheritance.ts, 132, 1)) >i2 : Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) /** i3 p1 */ p1: number; >p1 : Symbol(p1, Decl(commentsInheritance.ts, 133, 25)) /** * i3 f1 */ f1(): void; >f1 : Symbol(f1, Decl(commentsInheritance.ts, 135, 15)) /** i3 l1*/ l1: () => void; >l1 : Symbol(l1, Decl(commentsInheritance.ts, 139, 15)) nc_p1: number; >nc_p1 : Symbol(nc_p1, Decl(commentsInheritance.ts, 141, 19)) nc_f1(): void; >nc_f1 : Symbol(nc_f1, Decl(commentsInheritance.ts, 142, 18)) nc_l1: () => void; >nc_l1 : Symbol(nc_l1, Decl(commentsInheritance.ts, 143, 18)) } var i2_i: i2; >i2_i : Symbol(i2_i, Decl(commentsInheritance.ts, 146, 3)) >i2 : Symbol(i2, Decl(commentsInheritance.ts, 111, 22)) var i3_i: i3; >i3_i : Symbol(i3_i, Decl(commentsInheritance.ts, 147, 3)) >i3 : Symbol(i3, Decl(commentsInheritance.ts, 132, 1)) // assign to interface i2_i = i3_i; >i2_i : Symbol(i2_i, Decl(commentsInheritance.ts, 146, 3)) >i3_i : Symbol(i3_i, Decl(commentsInheritance.ts, 147, 3))