mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-05-17 21:06:50 -05:00
Do not rename references to class inside of the class body function
This commit is contained in:
71
tests/baselines/reference/classBlockScoping.js
Normal file
71
tests/baselines/reference/classBlockScoping.js
Normal file
@@ -0,0 +1,71 @@
|
||||
//// [classBlockScoping.ts]
|
||||
function f(b: boolean) {
|
||||
let Foo: any;
|
||||
if (b) {
|
||||
Foo = class Foo {
|
||||
static y = new Foo();
|
||||
|
||||
static x() {
|
||||
new Foo();
|
||||
}
|
||||
|
||||
m() {
|
||||
new Foo();
|
||||
}
|
||||
};
|
||||
|
||||
new Foo();
|
||||
}
|
||||
else {
|
||||
class Foo {
|
||||
static y = new Foo();
|
||||
|
||||
static x() {
|
||||
new Foo();
|
||||
}
|
||||
|
||||
m() {
|
||||
new Foo();
|
||||
}
|
||||
}
|
||||
|
||||
new Foo();
|
||||
}
|
||||
}
|
||||
|
||||
//// [classBlockScoping.js]
|
||||
function f(b) {
|
||||
var Foo;
|
||||
if (b) {
|
||||
Foo = (_a = (function () {
|
||||
function Foo() {
|
||||
}
|
||||
Foo.x = function () {
|
||||
new Foo();
|
||||
};
|
||||
Foo.prototype.m = function () {
|
||||
new Foo();
|
||||
};
|
||||
return Foo;
|
||||
}()),
|
||||
_a.y = new _a(),
|
||||
_a);
|
||||
new Foo();
|
||||
}
|
||||
else {
|
||||
var Foo_1 = (function () {
|
||||
function Foo() {
|
||||
}
|
||||
Foo.x = function () {
|
||||
new Foo();
|
||||
};
|
||||
Foo.prototype.m = function () {
|
||||
new Foo();
|
||||
};
|
||||
return Foo;
|
||||
}());
|
||||
Foo_1.y = new Foo_1();
|
||||
new Foo_1();
|
||||
}
|
||||
var _a;
|
||||
}
|
||||
64
tests/baselines/reference/classBlockScoping.symbols
Normal file
64
tests/baselines/reference/classBlockScoping.symbols
Normal file
@@ -0,0 +1,64 @@
|
||||
=== tests/cases/compiler/classBlockScoping.ts ===
|
||||
function f(b: boolean) {
|
||||
>f : Symbol(f, Decl(classBlockScoping.ts, 0, 0))
|
||||
>b : Symbol(b, Decl(classBlockScoping.ts, 0, 11))
|
||||
|
||||
let Foo: any;
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 1, 5))
|
||||
|
||||
if (b) {
|
||||
>b : Symbol(b, Decl(classBlockScoping.ts, 0, 11))
|
||||
|
||||
Foo = class Foo {
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 1, 5))
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 3, 9))
|
||||
|
||||
static y = new Foo();
|
||||
>y : Symbol(Foo.y, Decl(classBlockScoping.ts, 3, 21))
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 3, 9))
|
||||
|
||||
static x() {
|
||||
>x : Symbol(Foo.x, Decl(classBlockScoping.ts, 4, 27))
|
||||
|
||||
new Foo();
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 3, 9))
|
||||
}
|
||||
|
||||
m() {
|
||||
>m : Symbol(Foo.m, Decl(classBlockScoping.ts, 8, 7))
|
||||
|
||||
new Foo();
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 3, 9))
|
||||
}
|
||||
};
|
||||
|
||||
new Foo();
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 1, 5))
|
||||
}
|
||||
else {
|
||||
class Foo {
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 17, 8))
|
||||
|
||||
static y = new Foo();
|
||||
>y : Symbol(Foo.y, Decl(classBlockScoping.ts, 18, 15))
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 17, 8))
|
||||
|
||||
static x() {
|
||||
>x : Symbol(Foo.x, Decl(classBlockScoping.ts, 19, 27))
|
||||
|
||||
new Foo();
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 17, 8))
|
||||
}
|
||||
|
||||
m() {
|
||||
>m : Symbol(Foo.m, Decl(classBlockScoping.ts, 23, 7))
|
||||
|
||||
new Foo();
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 17, 8))
|
||||
}
|
||||
}
|
||||
|
||||
new Foo();
|
||||
>Foo : Symbol(Foo, Decl(classBlockScoping.ts, 17, 8))
|
||||
}
|
||||
}
|
||||
74
tests/baselines/reference/classBlockScoping.types
Normal file
74
tests/baselines/reference/classBlockScoping.types
Normal file
@@ -0,0 +1,74 @@
|
||||
=== tests/cases/compiler/classBlockScoping.ts ===
|
||||
function f(b: boolean) {
|
||||
>f : (b: boolean) => void
|
||||
>b : boolean
|
||||
|
||||
let Foo: any;
|
||||
>Foo : any
|
||||
|
||||
if (b) {
|
||||
>b : boolean
|
||||
|
||||
Foo = class Foo {
|
||||
>Foo = class Foo { static y = new Foo(); static x() { new Foo(); } m() { new Foo(); } } : typeof Foo
|
||||
>Foo : any
|
||||
>class Foo { static y = new Foo(); static x() { new Foo(); } m() { new Foo(); } } : typeof Foo
|
||||
>Foo : typeof Foo
|
||||
|
||||
static y = new Foo();
|
||||
>y : Foo
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
|
||||
static x() {
|
||||
>x : () => void
|
||||
|
||||
new Foo();
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
}
|
||||
|
||||
m() {
|
||||
>m : () => void
|
||||
|
||||
new Foo();
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
}
|
||||
};
|
||||
|
||||
new Foo();
|
||||
>new Foo() : any
|
||||
>Foo : any
|
||||
}
|
||||
else {
|
||||
class Foo {
|
||||
>Foo : Foo
|
||||
|
||||
static y = new Foo();
|
||||
>y : Foo
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
|
||||
static x() {
|
||||
>x : () => void
|
||||
|
||||
new Foo();
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
}
|
||||
|
||||
m() {
|
||||
>m : () => void
|
||||
|
||||
new Foo();
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
}
|
||||
}
|
||||
|
||||
new Foo();
|
||||
>new Foo() : Foo
|
||||
>Foo : typeof Foo
|
||||
}
|
||||
}
|
||||
33
tests/cases/compiler/classBlockScoping.ts
Normal file
33
tests/cases/compiler/classBlockScoping.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
function f(b: boolean) {
|
||||
let Foo: any;
|
||||
if (b) {
|
||||
Foo = class Foo {
|
||||
static y = new Foo();
|
||||
|
||||
static x() {
|
||||
new Foo();
|
||||
}
|
||||
|
||||
m() {
|
||||
new Foo();
|
||||
}
|
||||
};
|
||||
|
||||
new Foo();
|
||||
}
|
||||
else {
|
||||
class Foo {
|
||||
static y = new Foo();
|
||||
|
||||
static x() {
|
||||
new Foo();
|
||||
}
|
||||
|
||||
m() {
|
||||
new Foo();
|
||||
}
|
||||
}
|
||||
|
||||
new Foo();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user