kythe.io@v0.0.68-0.20240422202219-7225dbc01741/kythe/typescript/testdata/getter_setter.ts (about) 1 // Tests the behavior of getter and setter entries. 2 3 // Both getters and setters 4 class A { 5 prop = 0; 6 7 //- @foo defines/binding PropFoo=VName("A#type.foo", _, _, _, _) 8 //- PropFoo.node/kind variable 9 //- PropFoo.subkind implicit 10 //- @foo defines/binding GetFoo=VName("A#type.foo:getter", _, _, _, _) 11 //- GetFoo.node/kind function 12 //- GetFoo property/reads PropFoo 13 get foo() { 14 return this.prop; 15 } 16 17 //- @foo defines/binding SetFoo=VName("A#type.foo:setter", _, _, _, _) 18 //- SetFoo.node/kind function 19 //- SetFoo property/writes PropFoo 20 set foo(nFoo) { 21 this.prop = nFoo; 22 } 23 24 method() { 25 //- @foo ref GetFoo 26 this.foo; 27 //- @foo ref/writes GetFoo 28 this.foo = 0; 29 } 30 } 31 32 // Only getters 33 class B { 34 iProp = 0; 35 36 //- @prop defines/binding PropProp=VName("B#type.prop", _, _, _, _) 37 //- PropProp.node/kind variable 38 //- PropProp.subkind implicit 39 //- @prop defines/binding GetProp=VName("B#type.prop:getter", _, _, _, _) 40 //- GetProp.node/kind function 41 //- GetProp property/reads PropProp 42 get prop() { 43 return this.iProp; 44 } 45 46 method() { 47 //- @prop ref GetProp 48 this.prop; 49 } 50 } 51 52 // Only setters 53 class C { 54 prop = 0; 55 56 //- @mem defines/binding PropMem=VName("C#type.mem", _, _, _, _) 57 //- PropMem.node/kind variable 58 //- PropMem.subkind implicit 59 //- @mem defines/binding SetMem=VName("C#type.mem:setter", _, _, _, _) 60 //- SetMem.node/kind function 61 //- SetMem property/writes PropMem 62 set mem(nMem) { 63 this.prop = nMem; 64 } 65 66 method() { 67 //- @mem ref SetMem 68 this.mem; 69 //- @mem ref/writes SetMem 70 this.mem = 0; 71 } 72 }