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  }