Test:abstract prop access in non-declaring ctor

This commit is contained in:
Nathan Shively-Sanders 2017-10-16 09:20:28 -07:00
parent 5e7bfad2a7
commit fb45b49afc
5 changed files with 99 additions and 0 deletions

View File

@ -34,4 +34,13 @@ tests/cases/compiler/abstractPropertyInConstructor.ts(9,14): error TS2715: Abstr
this.prop = this.prop + "!";
}
}
class User {
constructor(a: AbstractClass) {
a.prop;
a.cb("hi");
a.method(12);
a.method2();
}
}

View File

@ -23,6 +23,15 @@ abstract class AbstractClass {
this.prop = this.prop + "!";
}
}
class User {
constructor(a: AbstractClass) {
a.prop;
a.cb("hi");
a.method(12);
a.method2();
}
}
//// [abstractPropertyInConstructor.js]
@ -44,3 +53,12 @@ var AbstractClass = /** @class */ (function () {
};
return AbstractClass;
}());
var User = /** @class */ (function () {
function User(a) {
a.prop;
a.cb("hi");
a.method(12);
a.method2();
}
return User;
}());

View File

@ -68,3 +68,32 @@ abstract class AbstractClass {
}
}
class User {
>User : Symbol(User, Decl(abstractPropertyInConstructor.ts, 23, 1))
constructor(a: AbstractClass) {
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
>AbstractClass : Symbol(AbstractClass, Decl(abstractPropertyInConstructor.ts, 0, 0))
a.prop;
>a.prop : Symbol(AbstractClass.prop, Decl(abstractPropertyInConstructor.ts, 13, 5))
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
>prop : Symbol(AbstractClass.prop, Decl(abstractPropertyInConstructor.ts, 13, 5))
a.cb("hi");
>a.cb : Symbol(AbstractClass.cb, Decl(abstractPropertyInConstructor.ts, 15, 26))
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
>cb : Symbol(AbstractClass.cb, Decl(abstractPropertyInConstructor.ts, 15, 26))
a.method(12);
>a.method : Symbol(AbstractClass.method, Decl(abstractPropertyInConstructor.ts, 16, 37))
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
>method : Symbol(AbstractClass.method, Decl(abstractPropertyInConstructor.ts, 16, 37))
a.method2();
>a.method2 : Symbol(AbstractClass.method2, Decl(abstractPropertyInConstructor.ts, 18, 39))
>a : Symbol(a, Decl(abstractPropertyInConstructor.ts, 26, 16))
>method2 : Symbol(AbstractClass.method2, Decl(abstractPropertyInConstructor.ts, 18, 39))
}
}

View File

@ -79,3 +79,37 @@ abstract class AbstractClass {
}
}
class User {
>User : User
constructor(a: AbstractClass) {
>a : AbstractClass
>AbstractClass : AbstractClass
a.prop;
>a.prop : string
>a : AbstractClass
>prop : string
a.cb("hi");
>a.cb("hi") : void
>a.cb : (s: string) => void
>a : AbstractClass
>cb : (s: string) => void
>"hi" : "hi"
a.method(12);
>a.method(12) : void
>a.method : (num: number) => void
>a : AbstractClass
>method : (num: number) => void
>12 : 12
a.method2();
>a.method2() : void
>a.method2 : () => void
>a : AbstractClass
>method2 : () => void
}
}

View File

@ -22,3 +22,12 @@ abstract class AbstractClass {
this.prop = this.prop + "!";
}
}
class User {
constructor(a: AbstractClass) {
a.prop;
a.cb("hi");
a.method(12);
a.method2();
}
}