/// /////** i1 is interface with properties*/ ////interface i1 { //// /** i1_p1*/ //// i1_p1: number; //// /** i1_f1*/ //// i1_f1(): void; //// /** i1_l1*/ //// i1_l1: () => void; //// i1_nc_p1: number; //// i1_nc_f1(): void; //// i1_nc_l1: () => void; //// p1: number; //// f1(): void; //// l1: () => void; //// nc_p1: number; //// nc_f1(): void; //// nc_l1: () => void; ////} ////class c1 implements i1 { //// public i1_p1: number; //// public i1_f1() { //// } //// public i1_l1: () => void; //// public i1_nc_p1: number; //// public i1_nc_f1() { //// } //// public i1_nc_l1: () => void; //// /** c1_p1*/ //// public p1: number; //// /** c1_f1*/ //// public f1() { //// } //// /** c1_l1*/ //// public l1: () => void; //// /** c1_nc_p1*/ //// public nc_p1: number; //// /** c1_nc_f1*/ //// public nc_f1() { //// } //// /** c1_nc_l1*/ //// public nc_l1: () => void; ////} ////var i1/*1iq*/_i: /*16i*/i1; ////i1_i./*1*/i/*2q*/1_f1(/*2*/); ////i1_i.i1_n/*3q*/c_f1(/*3*/); ////i1_i.f/*4q*/1(/*4*/); ////i1_i.nc/*5q*/_f1(/*5*/); ////i1_i.i1/*l2q*/_l1(/*l2*/); ////i1_i.i1_/*l3q*/nc_l1(/*l3*/); ////i1_i.l/*l4q*/1(/*l4*/); ////i1_i.nc/*l5q*/_l1(/*l5*/); ////var c1/*6iq*/_i = new c1(); ////c1_i./*6*/i1/*7q*/_f1(/*7*/); ////c1_i.i1_nc/*8q*/_f1(/*8*/); ////c1_i.f/*9q*/1(/*9*/); ////c1_i.nc/*10q*/_f1(/*10*/); ////c1_i.i1/*l7q*/_l1(/*l7*/); ////c1_i.i1_n/*l8q*/c_l1(/*l8*/); ////c1_i.l/*l9q*/1(/*l9*/); ////c1_i.nc/*l10q*/_l1(/*l10*/); ////// assign to interface ////i1_i = c1_i; ////i1_i./*11*/i1/*12q*/_f1(/*12*/); ////i1_i.i1_nc/*13q*/_f1(/*13*/); ////i1_i.f/*14q*/1(/*14*/); ////i1_i.nc/*15q*/_f1(/*15*/); ////i1_i.i1/*l12q*/_l1(/*l12*/); ////i1_i.i1/*l13q*/_nc_l1(/*l13*/); ////i1_i.l/*l14q*/1(/*l14*/); ////i1_i.nc/*l15q*/_l1(/*l15*/); /////*16*/ ////class c2 { //// /** c2 c2_p1*/ //// public c2_p1: number; //// /** c2 c2_f1*/ //// public c2_f1() { //// } //// /** c2 c2_prop*/ //// public get c2_prop() { //// return 10; //// } //// public c2_nc_p1: number; //// public c2_nc_f1() { //// } //// public get c2_nc_prop() { //// return 10; //// } //// /** c2 p1*/ //// public p1: number; //// /** c2 f1*/ //// public f1() { //// } //// /** c2 prop*/ //// public get prop() { //// return 10; //// } //// public nc_p1: number; //// public nc_f1() { //// } //// public get nc_prop() { //// return 10; //// } //// /** c2 constructor*/ //// constr/*55*/uctor(a: number) { //// this.c2_p1 = a; //// } ////} ////class c3 extends c2 { //// cons/*56*/tructor() { //// su/*18sq*/per(10); //// this.p1 = s/*18spropq*/uper./*18spropProp*/c2_p1; //// } //// /** c3 p1*/ //// public p1: number; //// /** c3 f1*/ //// public f1() { //// } //// /** c3 prop*/ //// public get prop() { //// return 10; //// } //// public nc_p1: number; //// public nc_f1() { //// } //// public get nc_prop() { //// return 10; //// } ////} ////var c/*17iq*/2_i = new c/*17q*/2(/*17*/10); ////var c/*18iq*/3_i = new c/*18q*/3(/*18*/); ////c2_i./*19*/c2/*20q*/_f1(/*20*/); ////c2_i.c2_nc/*21q*/_f1(/*21*/); ////c2_i.f/*22q*/1(/*22*/); ////c2_i.nc/*23q*/_f1(/*23*/); ////c3_i./*24*/c2/*25q*/_f1(/*25*/); ////c3_i.c2_nc/*26q*/_f1(/*26*/); ////c3_i.f/*27q*/1(/*27*/); ////c3_i.nc/*28q*/_f1(/*28*/); ////// assign ////c2_i = c3_i; ////c2_i./*29*/c2/*30q*/_f1(/*30*/); ////c2_i.c2_nc_/*31q*/f1(/*31*/); ////c2_i.f/*32q*/1(/*32*/); ////c2_i.nc/*33q*/_f1(/*33*/); ////class c4 extends c2 { ////} ////var c4/*34iq*/_i = new c/*34q*/4(/*34*/10); /////*35*/ ////interface i2 { //// /** i2_p1*/ //// i2_p1: number; //// /** i2_f1*/ //// i2_f1(): void; //// /** i2_l1*/ //// i2_l1: () => void; //// i2_nc_p1: number; //// i2_nc_f1(): void; //// i2_nc_l1: () => void; //// /** i2 p1*/ //// p1: number; //// /** i2 f1*/ //// f1(): void; //// /** i2 l1*/ //// l1: () => void; //// nc_p1: number; //// nc_f1(): void; //// nc_l1: () => void; ////} ////interface i3 extends i2 { //// /** i3 p1*/ //// p1: number; //// /** i3 f1*/ //// f1(): void; //// /** i3 l1*/ //// l1: () => void; //// nc_p1: number; //// nc_f1(): void; //// nc_l1: () => void; ////} ////var i2/*36iq*/_i: /*51i*/i2; ////var i3/*37iq*/_i: i3; ////i2_i./*36*/i2/*37q*/_f1(/*37*/); ////i2_i.i2_n/*38q*/c_f1(/*38*/); ////i2_i.f/*39q*/1(/*39*/); ////i2_i.nc/*40q*/_f1(/*40*/); ////i2_i.i2_/*l37q*/l1(/*l37*/); ////i2_i.i2_nc/*l38q*/_l1(/*l38*/); ////i2_i.l/*l39q*/1(/*l39*/); ////i2_i.nc_/*l40q*/l1(/*l40*/); ////i3_i./*41*/i2_/*42q*/f1(/*42*/); ////i3_i.i2_nc/*43q*/_f1(/*43*/); ////i3_i.f/*44q*/1(/*44*/); ////i3_i.nc_/*45q*/f1(/*45*/); ////i3_i.i2_/*l42q*/l1(/*l42*/); ////i3_i.i2_nc/*l43q*/_l1(/*l43*/); ////i3_i.l/*l44q*/1(/*l44*/); ////i3_i.nc_/*l45q*/l1(/*l45*/); ////// assign to interface ////i2_i = i3_i; ////i2_i./*46*/i2/*47q*/_f1(/*47*/); ////i2_i.i2_nc_/*48q*/f1(/*48*/); ////i2_i.f/*49q*/1(/*49*/); ////i2_i.nc/*50q*/_f1(/*50*/); ////i2_i.i2_/*l47q*/l1(/*l47*/); ////i2_i.i2_nc/*l48q*/_l1(/*l48*/); ////i2_i.l/*l49q*/1(/*l49*/); ////i2_i.nc_/*l50q*/l1(/*l50*/); /////*51*/ /////**c5 class*/ ////class c5 { //// public b: number; ////} ////class c6 extends c5 { //// public d; //// const/*57*/ructor() { //// /*52*/super(); //// this.d = /*53*/super./*54*/b; //// } ////} verify.completions({ marker: ["1", "11"], includes: [ { name: "i1_p1", text: "(property) i1.i1_p1: number", documentation: "i1_p1" }, { name: "i1_f1", text: "(method) i1.i1_f1(): void", documentation: "i1_f1" }, { name: "i1_l1", text: "(property) i1.i1_l1: () => void", documentation: "i1_l1" }, { name: "i1_nc_p1", text: "(property) i1.i1_nc_p1: number" }, { name: "i1_nc_f1", text: "(method) i1.i1_nc_f1(): void" }, { name: "i1_nc_l1", text: "(property) i1.i1_nc_l1: () => void" }, { name: "p1", text: "(property) i1.p1: number" }, { name: "f1", text: "(method) i1.f1(): void" }, { name: "l1", text: "(property) i1.l1: () => void" }, { name: "nc_p1", text: "(property) i1.nc_p1: number" }, { name: "nc_f1", text: "(method) i1.nc_f1(): void" }, { name: "nc_l1", text: "(property) i1.nc_l1: () => void" }, ], }); verify.signatureHelp( { marker: "2", docComment: "i1_f1" }, { marker: ["3", "4", "5", "l2", "l3", "l4", "l5"], docComment: "" }, ); verify.quickInfos({ "1iq": "var i1_i: i1", "2q": ["(method) i1.i1_f1(): void", "i1_f1"], "3q": "(method) i1.i1_nc_f1(): void", "4q": "(method) i1.f1(): void", "5q": "(method) i1.nc_f1(): void", l2q: ["(property) i1.i1_l1: () => void", "i1_l1"], l3q: "(property) i1.i1_nc_l1: () => void", l4q: "(property) i1.l1: () => void", l5q: "(property) i1.nc_l1: () => void" }); verify.completions({ marker: "6", includes: [ { name: "i1_p1", text: "(property) c1.i1_p1: number", documentation: "i1_p1" }, { name: "i1_f1", text: "(method) c1.i1_f1(): void", documentation: "i1_f1" }, { name: "i1_l1", text: "(property) c1.i1_l1: () => void", documentation: "i1_l1" }, { name: "i1_nc_p1", text: "(property) c1.i1_nc_p1: number" }, { name: "i1_nc_f1", text: "(method) c1.i1_nc_f1(): void" }, { name: "i1_nc_l1", text: "(property) c1.i1_nc_l1: () => void" }, { name: "p1", text: "(property) c1.p1: number", documentation: "c1_p1" }, { name: "f1", text: "(method) c1.f1(): void", documentation: "c1_f1" }, { name: "l1", text: "(property) c1.l1: () => void", documentation: "c1_l1" }, { name: "nc_p1", text: "(property) c1.nc_p1: number", documentation: "c1_nc_p1" }, { name: "nc_f1", text: "(method) c1.nc_f1(): void", documentation: "c1_nc_f1" }, { name: "nc_l1", text: "(property) c1.nc_l1: () => void", documentation: "c1_nc_l1" }, ], }); verify.signatureHelp( { marker: "7", docComment: "i1_f1" }, { marker: "9", docComment: "c1_f1" }, { marker: "10", docComment: "c1_nc_f1" }, { marker: "l9", docComment: "c1_l1" }, { marker: "l10", docComment: "c1_nc_l1" }, { marker: ["8", "l7", "l8"], docComment: "" }, ); verify.quickInfos({ "6iq": "var c1_i: c1", "7q": ["(method) c1.i1_f1(): void", "i1_f1"], "8q": "(method) c1.i1_nc_f1(): void", "9q": ["(method) c1.f1(): void", "c1_f1"], "10q": ["(method) c1.nc_f1(): void", "c1_nc_f1"], l7q: ["(property) c1.i1_l1: () => void", "i1_l1"], l8q: "(property) c1.i1_nc_l1: () => void", l9q: ["(property) c1.l1: () => void", "c1_l1"], l10q: ["(property) c1.nc_l1: () => void", "c1_nc_l1"], }); verify.completions({ marker: "11", includes: [ { name: "i1_p1", text: "(property) i1.i1_p1: number", documentation: "i1_p1" }, { name: "i1_f1", text: "(method) i1.i1_f1(): void", documentation: "i1_f1" }, { name: "i1_l1", text: "(property) i1.i1_l1: () => void", documentation: "i1_l1" }, { name: "i1_nc_p1", text: "(property) i1.i1_nc_p1: number" }, { name: "i1_nc_f1", text: "(method) i1.i1_nc_f1(): void" }, { name: "i1_nc_l1", text: "(property) i1.i1_nc_l1: () => void" }, { name: "p1", text: "(property) i1.p1: number" }, { name: "f1", text: "(method) i1.f1(): void" }, { name: "l1", text: "(property) i1.l1: () => void" }, { name: "nc_p1", text: "(property) i1.nc_p1: number" }, { name: "nc_f1", text: "(method) i1.nc_f1(): void" }, { name: "nc_l1", text: "(property) i1.nc_l1: () => void" }, ], }); verify.signatureHelp( { marker: "12", docComment: "i1_f1" }, { marker: ["13", "14", "15", "l12", "l13", "l14", "l15"], docComment: "" }, ); verify.quickInfos({ "12q": ["(method) i1.i1_f1(): void", "i1_f1"], "13q": "(method) i1.i1_nc_f1(): void", "14q": "(method) i1.f1(): void", "15q": "(method) i1.nc_f1(): void", l12q: ["(property) i1.i1_l1: () => void", "i1_l1"], l13q: "(property) i1.i1_nc_l1: () => void", l14q: "(property) i1.l1: () => void", l15q: "(property) i1.nc_l1: () => void", }); verify.completions( { marker: "16", includes: [ { name: "i1_i", text: "var i1_i: i1" }, { name: "c1", text: "class c1" }, { name: "c1_i", text: "var c1_i: c1" }, ], excludes: "i1", }, { marker: "16i", includes: { name: "i1", text: "interface i1", documentation: "i1 is interface with properties" }, }, ); verify.quickInfos({ "17iq": "var c2_i: c2", "18iq": "var c3_i: c3" }); verify.signatureHelp( { marker: "17", docComment: "c2 constructor" }, { marker: "18", docComment: "" }, ); verify.quickInfos({ "18sq": ["constructor c2(a: number): c2", "c2 constructor"], "18spropq": "class c2", "18spropProp": ["(property) c2.c2_p1: number", "c2 c2_p1"], "17q": ["constructor c2(a: number): c2", "c2 constructor"], "18q": "constructor c3(): c3" }); verify.completions({ marker: ["19", "29"], includes: [ { name: "c2_p1", text: "(property) c2.c2_p1: number", documentation: "c2 c2_p1" }, { name: "c2_f1", text: "(method) c2.c2_f1(): void", documentation: "c2 c2_f1" }, { name: "c2_prop", text: "(property) c2.c2_prop: number", documentation: "c2 c2_prop" }, { name: "c2_nc_p1", text: "(property) c2.c2_nc_p1: number" }, { name: "c2_nc_f1", text: "(method) c2.c2_nc_f1(): void" }, { name: "c2_nc_prop", text: "(property) c2.c2_nc_prop: number" }, { name: "p1", text: "(property) c2.p1: number", documentation: "c2 p1" }, { name: "f1", text: "(method) c2.f1(): void", documentation: "c2 f1" }, { name: "prop", text: "(property) c2.prop: number", documentation: "c2 prop" }, { name: "nc_p1", text: "(property) c2.nc_p1: number" }, { name: "nc_f1", text: "(method) c2.nc_f1(): void" }, { name: "nc_prop", text: "(property) c2.nc_prop: number" }, ], }); verify.signatureHelp( { marker: "20", docComment: "c2 c2_f1" }, { marker: "22", docComment: "c2 f1" }, { marker: ["21", "23"], docComment: "" }, ); verify.quickInfos({ "20q": ["(method) c2.c2_f1(): void", "c2 c2_f1"], "21q": "(method) c2.c2_nc_f1(): void", "22q": ["(method) c2.f1(): void", "c2 f1"], "23q": "(method) c2.nc_f1(): void" }); verify.completions({ marker: "24", includes: [ { name: "c2_p1", text: "(property) c2.c2_p1: number", documentation: "c2 c2_p1" }, { name: "c2_f1", text: "(method) c2.c2_f1(): void", documentation: "c2 c2_f1" }, { name: "c2_prop", text: "(property) c2.c2_prop: number", documentation: "c2 c2_prop" }, { name: "c2_nc_p1", text: "(property) c2.c2_nc_p1: number" }, { name: "c2_nc_f1", text: "(method) c2.c2_nc_f1(): void" }, { name: "c2_nc_prop", text: "(property) c2.c2_nc_prop: number" }, { name: "p1", text: "(property) c3.p1: number", documentation: "c3 p1" }, { name: "f1", text: "(method) c3.f1(): void", documentation: "c3 f1" }, { name: "prop", text: "(property) c3.prop: number", documentation: "c3 prop" }, { name: "nc_p1", text: "(property) c3.nc_p1: number" }, { name: "nc_f1", text: "(method) c3.nc_f1(): void" }, { name: "nc_prop", text: "(property) c3.nc_prop: number" }, ], }); verify.signatureHelp( { marker: "25", docComment: "c2 c2_f1" }, { marker: "27", docComment: "c3 f1" }, { marker: ["26", "28"], docComment: "" }, ); verify.quickInfos({ "25q": ["(method) c2.c2_f1(): void", "c2 c2_f1"], "26q": "(method) c2.c2_nc_f1(): void", "27q": ["(method) c3.f1(): void", "c3 f1"], "28q": "(method) c3.nc_f1(): void" }); verify.signatureHelp( { marker: "30", docComment: "c2 c2_f1" }, { marker: "32", docComment: "c2 f1" }, { marker: ["31", "33"], docComment: "" }, ); verify.quickInfos({ "30q": ["(method) c2.c2_f1(): void", "c2 c2_f1"], "31q": "(method) c2.c2_nc_f1(): void", "32q": ["(method) c2.f1(): void", "c2 f1"], "33q": "(method) c2.nc_f1(): void" }); verify.signatureHelp({ marker: "34", docComment: "c2 constructor" }); verify.quickInfos({ "34iq": "var c4_i: c4", "34q": ["constructor c4(a: number): c4", "c2 constructor"] }); verify.completions( { marker: "35", includes: [ { name: "c2", text: "class c2" }, { name: "c2_i", text: "var c2_i: c2" }, { name: "c3", text: "class c3" }, { name: "c3_i", text: "var c3_i: c3" }, { name: "c4", text: "class c4" }, { name: "c4_i", text: "var c4_i: c4" }, ], }, { marker: ["36", "46"], includes: [ { name: "i2_p1", text: "(property) i2.i2_p1: number", documentation: "i2_p1" }, { name: "i2_f1", text: "(method) i2.i2_f1(): void", documentation: "i2_f1" }, { name: "i2_l1", text: "(property) i2.i2_l1: () => void", documentation: "i2_l1" }, { name: "i2_nc_p1", text: "(property) i2.i2_nc_p1: number" }, { name: "i2_nc_f1", text: "(method) i2.i2_nc_f1(): void" }, { name: "i2_nc_l1", text: "(property) i2.i2_nc_l1: () => void" }, { name: "p1", text: "(property) i2.p1: number", documentation: "i2 p1" }, { name: "f1", text: "(method) i2.f1(): void", documentation: "i2 f1" }, { name: "l1", text: "(property) i2.l1: () => void", documentation: "i2 l1" }, { name: "nc_p1", text: "(property) i2.nc_p1: number" }, { name: "nc_f1", text: "(method) i2.nc_f1(): void" }, { name: "nc_l1", text: "(property) i2.nc_l1: () => void" }, ], }, ); verify.signatureHelp( { marker: "37", docComment: "i2_f1" }, { marker: "39", docComment: "i2 f1" }, { marker: ["38", "40", "l37", "l37", "l39", "l40"], docComment: "" }, ); verify.quickInfos({ "36iq": "var i2_i: i2", "37iq": "var i3_i: i3", "37q": ["(method) i2.i2_f1(): void", "i2_f1"], "38q": "(method) i2.i2_nc_f1(): void", "39q": ["(method) i2.f1(): void", "i2 f1"], "40q": "(method) i2.nc_f1(): void", "l37q": ["(property) i2.i2_l1: () => void", "i2_l1"], "l38q": "(property) i2.i2_nc_l1: () => void", "l39q": ["(property) i2.l1: () => void", "i2 l1"], "l40q": "(property) i2.nc_l1: () => void", }); verify.completions({ marker: "41", includes: [ { name: "i2_p1", text: "(property) i2.i2_p1: number", documentation: "i2_p1" }, { name: "i2_f1", text: "(method) i2.i2_f1(): void", documentation: "i2_f1" }, { name: "i2_l1", text: "(property) i2.i2_l1: () => void", documentation: "i2_l1" }, { name: "i2_nc_p1", text: "(property) i2.i2_nc_p1: number" }, { name: "i2_nc_f1", text: "(method) i2.i2_nc_f1(): void" }, { name: "i2_nc_l1", text: "(property) i2.i2_nc_l1: () => void" }, { name: "p1", text: "(property) i3.p1: number", documentation: "i3 p1" }, { name: "f1", text: "(method) i3.f1(): void", documentation: "i3 f1" }, { name: "l1", text: "(property) i3.l1: () => void", documentation: "i3 l1" }, { name: "nc_p1", text: "(property) i3.nc_p1: number" }, { name: "nc_f1", text: "(method) i3.nc_f1(): void" }, { name: "nc_l1", text: "(property) i3.nc_l1: () => void" }, ], }); verify.signatureHelp( { marker: "42", docComment: "i2_f1" }, { marker: "44", docComment: "i3 f1" }, { marker: ["43", "45", "l42", "l43", "l44", "l45"], docComment: "" }, ); verify.quickInfos({ "42q": ["(method) i2.i2_f1(): void", "i2_f1"], "43q": "(method) i2.i2_nc_f1(): void", "44q": ["(method) i3.f1(): void", "i3 f1"], "45q": "(method) i3.nc_f1(): void", l42q: ["(property) i2.i2_l1: () => void", "i2_l1"], l43q: "(property) i2.i2_nc_l1: () => void", l44q: ["(property) i3.l1: () => void", "i3 l1"], l45q: "(property) i3.nc_l1: () => void" }); verify.completions({ marker: "46", includes: [ { name: "i2_p1", text: "(property) i2.i2_p1: number", documentation: "i2_p1" }, { name: "i2_f1", text: "(method) i2.i2_f1(): void", documentation: "i2_f1" }, { name: "i2_l1", text: "(property) i2.i2_l1: () => void", documentation: "i2_l1" }, { name: "i2_nc_p1", text: "(property) i2.i2_nc_p1: number" }, { name: "i2_nc_f1", text: "(method) i2.i2_nc_f1(): void" }, { name: "i2_nc_l1", text: "(property) i2.i2_nc_l1: () => void" }, { name: "p1", text: "(property) i2.p1: number", documentation: "i2 p1" }, { name: "f1", text: "(method) i2.f1(): void", documentation: "i2 f1" }, { name: "l1", text: "(property) i2.l1: () => void", documentation: "i2 l1" }, { name: "nc_p1", text: "(property) i2.nc_p1: number" }, { name: "nc_f1", text: "(method) i2.nc_f1(): void" }, { name: "nc_l1", text: "(property) i2.nc_l1: () => void" }, ], }); verify.signatureHelp( { marker: "47", docComment: "i2_f1" }, { marker: "49", docComment: "i2 f1" }, { marker: ["48", "l47", "l48", "l49", "l50"], docComment: "" }, ); verify.quickInfos({ "47q": ["(method) i2.i2_f1(): void", "i2_f1"], "48q": "(method) i2.i2_nc_f1(): void", "49q": ["(method) i2.f1(): void", "i2 f1"], "50q": "(method) i2.nc_f1(): void", l47q: ["(property) i2.i2_l1: () => void", "i2_l1"], l48q: "(property) i2.i2_nc_l1: () => void", l49q: ["(property) i2.l1: () => void", "i2 l1"], l40q: "(property) i2.nc_l1: () => void" }); verify.completions( { marker: "51", includes: [ { name: "i2_i", text: "var i2_i: i2" }, { name: "i3_i", text: "var i3_i: i3" }, ], excludes: ["i2", "i3"], }, { marker: "51i", includes: [ { name: "i2", text: "interface i2" }, { name: "i3", text: "interface i3" }, ], }, ); verify.quickInfos({ 52: ["constructor c5(): c5", "c5 class"], 53: ["class c5", "c5 class"], 54: "(property) c5.b: number", 55: ["constructor c2(a: number): c2", "c2 constructor"], 56: "constructor c3(): c3", 57: "constructor c6(): c6" });