/* should not generate diagnostics */
const { a, b } = this;
const [c, d] = this;
const property = this.property;
const firstItem = this[0];
const object = { property: this };
foo.bar = this;

function f() {
    const self = this;
    return function distinctThisScope() {
      self.g();
    }
}

function f() {
    const self = this;
    function f() {
        self.g();
    }
    return () => {
        self.g();
    }
}

function f() {
    let self = this;
    self = {}
    return () => {
        self.g();
    }
}

function f() {
    let self;
    return () => {
        self.g();
    }
}

class Class {
    a = this;
    #priv = this;

    constructor() {
      this.b = this;
      this.c = [this];
    }

    act(self = this) {
        self.f()
    }

    f() {}
}
