This commit is contained in:
Sheetal Nandi 2015-08-24 12:05:16 -07:00
parent 8c7a634814
commit 6c457f6c1d
16 changed files with 728 additions and 0 deletions

View file

@ -0,0 +1,51 @@
//// [tests/cases/compiler/decoratorMetadataWithImportDeclarationNameCollision.ts] ////
//// [db.ts]
export class db {
public doSomething() {
}
}
//// [service.ts]
import {db} from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: db;
constructor(db: db) {
this.db = db;
this.db.doSomething();
}
}
export {MyClass};
//// [db.js]
var db = (function () {
function db() {
}
db.prototype.doSomething = function () {
};
return db;
})();
exports.db = db;
//// [service.js]
var db_1 = require('./db');
function someDecorator(target) {
return target;
}
var MyClass = (function () {
function MyClass(db) {
this.db = db;
this.db.doSomething();
}
MyClass = __decorate([
someDecorator,
__metadata('design:paramtypes', [db_1.db])
], MyClass);
return MyClass;
})();
exports.MyClass = MyClass;

View file

@ -0,0 +1,51 @@
=== tests/cases/compiler/db.ts ===
export class db {
>db : Symbol(db, Decl(db.ts, 0, 0))
public doSomething() {
>doSomething : Symbol(doSomething, Decl(db.ts, 0, 17))
}
}
=== tests/cases/compiler/service.ts ===
import {db} from './db';
>db : Symbol(db, Decl(service.ts, 0, 8))
function someDecorator(target) {
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 24))
>target : Symbol(target, Decl(service.ts, 1, 23))
return target;
>target : Symbol(target, Decl(service.ts, 1, 23))
}
@someDecorator
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 24))
class MyClass {
>MyClass : Symbol(MyClass, Decl(service.ts, 3, 1))
db: db;
>db : Symbol(db, Decl(service.ts, 5, 15))
>db : Symbol(db, Decl(service.ts, 0, 8))
constructor(db: db) {
>db : Symbol(db, Decl(service.ts, 8, 16))
>db : Symbol(db, Decl(service.ts, 0, 8))
this.db = db;
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>db : Symbol(db, Decl(service.ts, 8, 16))
this.db.doSomething();
>this.db.doSomething : Symbol(db.doSomething, Decl(db.ts, 0, 17))
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>doSomething : Symbol(db.doSomething, Decl(db.ts, 0, 17))
}
}
export {MyClass};
>MyClass : Symbol(MyClass, Decl(service.ts, 13, 8))

View file

@ -0,0 +1,53 @@
=== tests/cases/compiler/db.ts ===
export class db {
>db : db
public doSomething() {
>doSomething : () => void
}
}
=== tests/cases/compiler/service.ts ===
import {db} from './db';
>db : typeof db
function someDecorator(target) {
>someDecorator : (target: any) => any
>target : any
return target;
>target : any
}
@someDecorator
>someDecorator : (target: any) => any
class MyClass {
>MyClass : MyClass
db: db;
>db : db
>db : db
constructor(db: db) {
>db : db
>db : db
this.db = db;
>this.db = db : db
>this.db : db
>this : MyClass
>db : db
>db : db
this.db.doSomething();
>this.db.doSomething() : void
>this.db.doSomething : () => void
>this.db : db
>this : MyClass
>db : db
>doSomething : () => void
}
}
export {MyClass};
>MyClass : typeof MyClass

View file

@ -0,0 +1,51 @@
//// [tests/cases/compiler/decoratorMetadataWithImportDeclarationNameCollision2.ts] ////
//// [db.ts]
export class db {
public doSomething() {
}
}
//// [service.ts]
import {db as Database} from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: Database;
constructor(db: Database) { // no collision
this.db = db;
this.db.doSomething();
}
}
export {MyClass};
//// [db.js]
var db = (function () {
function db() {
}
db.prototype.doSomething = function () {
};
return db;
})();
exports.db = db;
//// [service.js]
var db_1 = require('./db');
function someDecorator(target) {
return target;
}
var MyClass = (function () {
function MyClass(db) {
this.db = db;
this.db.doSomething();
}
MyClass = __decorate([
someDecorator,
__metadata('design:paramtypes', [db_1.db])
], MyClass);
return MyClass;
})();
exports.MyClass = MyClass;

View file

@ -0,0 +1,52 @@
=== tests/cases/compiler/db.ts ===
export class db {
>db : Symbol(db, Decl(db.ts, 0, 0))
public doSomething() {
>doSomething : Symbol(doSomething, Decl(db.ts, 0, 17))
}
}
=== tests/cases/compiler/service.ts ===
import {db as Database} from './db';
>db : Symbol(Database, Decl(service.ts, 0, 8))
>Database : Symbol(Database, Decl(service.ts, 0, 8))
function someDecorator(target) {
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 36))
>target : Symbol(target, Decl(service.ts, 1, 23))
return target;
>target : Symbol(target, Decl(service.ts, 1, 23))
}
@someDecorator
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 36))
class MyClass {
>MyClass : Symbol(MyClass, Decl(service.ts, 3, 1))
db: Database;
>db : Symbol(db, Decl(service.ts, 5, 15))
>Database : Symbol(Database, Decl(service.ts, 0, 8))
constructor(db: Database) { // no collision
>db : Symbol(db, Decl(service.ts, 8, 16))
>Database : Symbol(Database, Decl(service.ts, 0, 8))
this.db = db;
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>db : Symbol(db, Decl(service.ts, 8, 16))
this.db.doSomething();
>this.db.doSomething : Symbol(Database.doSomething, Decl(db.ts, 0, 17))
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>doSomething : Symbol(Database.doSomething, Decl(db.ts, 0, 17))
}
}
export {MyClass};
>MyClass : Symbol(MyClass, Decl(service.ts, 13, 8))

View file

@ -0,0 +1,54 @@
=== tests/cases/compiler/db.ts ===
export class db {
>db : db
public doSomething() {
>doSomething : () => void
}
}
=== tests/cases/compiler/service.ts ===
import {db as Database} from './db';
>db : typeof Database
>Database : typeof Database
function someDecorator(target) {
>someDecorator : (target: any) => any
>target : any
return target;
>target : any
}
@someDecorator
>someDecorator : (target: any) => any
class MyClass {
>MyClass : MyClass
db: Database;
>db : Database
>Database : Database
constructor(db: Database) { // no collision
>db : Database
>Database : Database
this.db = db;
>this.db = db : Database
>this.db : Database
>this : MyClass
>db : Database
>db : Database
this.db.doSomething();
>this.db.doSomething() : void
>this.db.doSomething : () => void
>this.db : Database
>this : MyClass
>db : Database
>doSomething : () => void
}
}
export {MyClass};
>MyClass : typeof MyClass

View file

@ -0,0 +1,52 @@
//// [tests/cases/compiler/decoratorMetadataWithImportDeclarationNameCollision5.ts] ////
//// [db.ts]
export default class db {
public doSomething() {
}
}
//// [service.ts]
import db from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: db;
constructor(db: db) { // collision
this.db = db;
this.db.doSomething();
}
}
export {MyClass};
//// [db.js]
var db = (function () {
function db() {
}
db.prototype.doSomething = function () {
};
return db;
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = db;
//// [service.js]
var db_1 = require('./db');
function someDecorator(target) {
return target;
}
var MyClass = (function () {
function MyClass(db) {
this.db = db;
this.db.doSomething();
}
MyClass = __decorate([
someDecorator,
__metadata('design:paramtypes', [db_1.default])
], MyClass);
return MyClass;
})();
exports.MyClass = MyClass;

View file

@ -0,0 +1,51 @@
=== tests/cases/compiler/db.ts ===
export default class db {
>db : Symbol(db, Decl(db.ts, 0, 0))
public doSomething() {
>doSomething : Symbol(doSomething, Decl(db.ts, 0, 25))
}
}
=== tests/cases/compiler/service.ts ===
import db from './db';
>db : Symbol(db, Decl(service.ts, 0, 6))
function someDecorator(target) {
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 22))
>target : Symbol(target, Decl(service.ts, 1, 23))
return target;
>target : Symbol(target, Decl(service.ts, 1, 23))
}
@someDecorator
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 22))
class MyClass {
>MyClass : Symbol(MyClass, Decl(service.ts, 3, 1))
db: db;
>db : Symbol(db, Decl(service.ts, 5, 15))
>db : Symbol(db, Decl(service.ts, 0, 6))
constructor(db: db) { // collision
>db : Symbol(db, Decl(service.ts, 8, 16))
>db : Symbol(db, Decl(service.ts, 0, 6))
this.db = db;
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>db : Symbol(db, Decl(service.ts, 8, 16))
this.db.doSomething();
>this.db.doSomething : Symbol(db.doSomething, Decl(db.ts, 0, 25))
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>doSomething : Symbol(db.doSomething, Decl(db.ts, 0, 25))
}
}
export {MyClass};
>MyClass : Symbol(MyClass, Decl(service.ts, 13, 8))

View file

@ -0,0 +1,53 @@
=== tests/cases/compiler/db.ts ===
export default class db {
>db : db
public doSomething() {
>doSomething : () => void
}
}
=== tests/cases/compiler/service.ts ===
import db from './db';
>db : typeof db
function someDecorator(target) {
>someDecorator : (target: any) => any
>target : any
return target;
>target : any
}
@someDecorator
>someDecorator : (target: any) => any
class MyClass {
>MyClass : MyClass
db: db;
>db : db
>db : db
constructor(db: db) { // collision
>db : db
>db : db
this.db = db;
>this.db = db : db
>this.db : db
>this : MyClass
>db : db
>db : db
this.db.doSomething();
>this.db.doSomething() : void
>this.db.doSomething : () => void
>this.db : db
>this : MyClass
>db : db
>doSomething : () => void
}
}
export {MyClass};
>MyClass : typeof MyClass

View file

@ -0,0 +1,52 @@
//// [tests/cases/compiler/decoratorMetadataWithImportDeclarationNameCollision6.ts] ////
//// [db.ts]
export default class db {
public doSomething() {
}
}
//// [service.ts]
import database from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: database;
constructor(db: database) { // no collision
this.db = db;
this.db.doSomething();
}
}
export {MyClass};
//// [db.js]
var db = (function () {
function db() {
}
db.prototype.doSomething = function () {
};
return db;
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = db;
//// [service.js]
var db_1 = require('./db');
function someDecorator(target) {
return target;
}
var MyClass = (function () {
function MyClass(db) {
this.db = db;
this.db.doSomething();
}
MyClass = __decorate([
someDecorator,
__metadata('design:paramtypes', [db_1.default])
], MyClass);
return MyClass;
})();
exports.MyClass = MyClass;

View file

@ -0,0 +1,51 @@
=== tests/cases/compiler/db.ts ===
export default class db {
>db : Symbol(db, Decl(db.ts, 0, 0))
public doSomething() {
>doSomething : Symbol(doSomething, Decl(db.ts, 0, 25))
}
}
=== tests/cases/compiler/service.ts ===
import database from './db';
>database : Symbol(database, Decl(service.ts, 0, 6))
function someDecorator(target) {
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 28))
>target : Symbol(target, Decl(service.ts, 1, 23))
return target;
>target : Symbol(target, Decl(service.ts, 1, 23))
}
@someDecorator
>someDecorator : Symbol(someDecorator, Decl(service.ts, 0, 28))
class MyClass {
>MyClass : Symbol(MyClass, Decl(service.ts, 3, 1))
db: database;
>db : Symbol(db, Decl(service.ts, 5, 15))
>database : Symbol(database, Decl(service.ts, 0, 6))
constructor(db: database) { // no collision
>db : Symbol(db, Decl(service.ts, 8, 16))
>database : Symbol(database, Decl(service.ts, 0, 6))
this.db = db;
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>db : Symbol(db, Decl(service.ts, 8, 16))
this.db.doSomething();
>this.db.doSomething : Symbol(database.doSomething, Decl(db.ts, 0, 25))
>this.db : Symbol(db, Decl(service.ts, 5, 15))
>this : Symbol(MyClass, Decl(service.ts, 3, 1))
>db : Symbol(db, Decl(service.ts, 5, 15))
>doSomething : Symbol(database.doSomething, Decl(db.ts, 0, 25))
}
}
export {MyClass};
>MyClass : Symbol(MyClass, Decl(service.ts, 13, 8))

View file

@ -0,0 +1,53 @@
=== tests/cases/compiler/db.ts ===
export default class db {
>db : db
public doSomething() {
>doSomething : () => void
}
}
=== tests/cases/compiler/service.ts ===
import database from './db';
>database : typeof database
function someDecorator(target) {
>someDecorator : (target: any) => any
>target : any
return target;
>target : any
}
@someDecorator
>someDecorator : (target: any) => any
class MyClass {
>MyClass : MyClass
db: database;
>db : database
>database : database
constructor(db: database) { // no collision
>db : database
>database : database
this.db = db;
>this.db = db : database
>this.db : database
>this : MyClass
>db : database
>db : database
this.db.doSomething();
>this.db.doSomething() : void
>this.db.doSomething : () => void
>this.db : database
>this : MyClass
>db : database
>doSomething : () => void
}
}
export {MyClass};
>MyClass : typeof MyClass

View file

@ -0,0 +1,26 @@
// @noemithelpers: true
// @experimentaldecorators: true
// @emitdecoratormetadata: true
// @target: es5
// @module: commonjs
// @filename: db.ts
export class db {
public doSomething() {
}
}
// @filename: service.ts
import {db} from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: db;
constructor(db: db) {
this.db = db;
this.db.doSomething();
}
}
export {MyClass};

View file

@ -0,0 +1,26 @@
// @noemithelpers: true
// @experimentaldecorators: true
// @emitdecoratormetadata: true
// @target: es5
// @module: commonjs
// @filename: db.ts
export class db {
public doSomething() {
}
}
// @filename: service.ts
import {db as Database} from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: Database;
constructor(db: Database) { // no collision
this.db = db;
this.db.doSomething();
}
}
export {MyClass};

View file

@ -0,0 +1,26 @@
// @noemithelpers: true
// @experimentaldecorators: true
// @emitdecoratormetadata: true
// @target: es5
// @module: commonjs
// @filename: db.ts
export default class db {
public doSomething() {
}
}
// @filename: service.ts
import db from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: db;
constructor(db: db) { // collision
this.db = db;
this.db.doSomething();
}
}
export {MyClass};

View file

@ -0,0 +1,26 @@
// @noemithelpers: true
// @experimentaldecorators: true
// @emitdecoratormetadata: true
// @target: es5
// @module: commonjs
// @filename: db.ts
export default class db {
public doSomething() {
}
}
// @filename: service.ts
import database from './db';
function someDecorator(target) {
return target;
}
@someDecorator
class MyClass {
db: database;
constructor(db: database) { // no collision
this.db = db;
this.db.doSomething();
}
}
export {MyClass};