TypeScript/tests/baselines/reference/classAttributeInferenceTemplateJS.symbols
Wesley Wigham 8268f2adec
Avoid bogus circularity error on context sensitive constructor property assignments (#44601)
* Avoid bogus circularity error on context sensitive constructor property assignments

* Add JS case and ensure its fixed
2021-07-15 17:06:56 -07:00

31 lines
1.1 KiB
Plaintext

=== tests/cases/compiler/index.js ===
class MyClass {
>MyClass : Symbol(MyClass, Decl(index.js, 0, 0))
property;
>property : Symbol(MyClass.property, Decl(index.js, 0, 15))
property2;
>property2 : Symbol(MyClass.property2, Decl(index.js, 1, 13))
constructor() {
const variable = 'something'
>variable : Symbol(variable, Decl(index.js, 5, 13))
this.property = `foo`; // Correctly inferred as `string`
>this.property : Symbol(MyClass.property, Decl(index.js, 0, 15))
>this : Symbol(MyClass, Decl(index.js, 0, 0))
>property : Symbol(MyClass.property, Decl(index.js, 0, 15))
this.property2 = `foo-${variable}`; // Causes an error
>this.property2 : Symbol(MyClass.property2, Decl(index.js, 1, 13))
>this : Symbol(MyClass, Decl(index.js, 0, 0))
>property2 : Symbol(MyClass.property2, Decl(index.js, 1, 13))
>variable : Symbol(variable, Decl(index.js, 5, 13))
const localProperty = `foo-${variable}`; // Correctly inferred as `string`
>localProperty : Symbol(localProperty, Decl(index.js, 10, 13))
>variable : Symbol(variable, Decl(index.js, 5, 13))
}
}