fix(core): report errors for missing di tokens correctly (#11209)

This commit is contained in:
Tobias Bosch 2016-08-31 14:47:56 -07:00 committed by Martin Probst
parent 6ea5b05e7c
commit cc89ef6c8c
3 changed files with 1 additions and 37 deletions

View File

@ -68,8 +68,6 @@ export class AbstractProviderError extends BaseError {
this.keys.push(key);
this.message = this.constructResolvingMessage(this.keys);
}
get context() { return this.injectors[this.injectors.length - 1].debugContext(); }
}
/**
@ -174,8 +172,6 @@ export class InstantiationError extends WrappedError {
}
get causeKey(): ReflectiveKey { return this.keys[0]; }
get context() { return this.injectors[this.injectors.length - 1].debugContext(); }
}
/**

View File

@ -473,12 +473,6 @@ export abstract class ReflectiveInjector implements Injector {
*/
get parent(): Injector { return unimplemented(); }
/**
* @internal
*/
debugContext(): any { return null; }
/**
* Resolves an array of providers and creates a child injector from those providers.
*
@ -603,19 +597,12 @@ export class ReflectiveInjector_ implements ReflectiveInjector {
/**
* Private
*/
constructor(
_proto: any /* ProtoInjector */, _parent: Injector = null,
private _debugContext: Function = null) {
constructor(_proto: any /* ProtoInjector */, _parent: Injector = null) {
this._proto = _proto;
this._parent = _parent;
this._strategy = _proto._strategy.createInjectorStrategy(this);
}
/**
* @internal
*/
debugContext(): any { return this._debugContext(); }
get(token: any, notFoundValue: any = THROW_IF_NOT_FOUND): any {
return this._getByKey(ReflectiveKey.get(token), null, null, notFoundValue);
}

View File

@ -336,25 +336,6 @@ export function main() {
}
});
it('should provide context when throwing an exception ', () => {
var engineProvider =
ReflectiveInjector.resolve([{provide: Engine, useClass: BrokenEngine}])[0];
var protoParent = new ReflectiveProtoInjector([engineProvider]);
var carProvider = ReflectiveInjector.resolve([Car])[0];
var protoChild = new ReflectiveProtoInjector([carProvider]);
var parent = new ReflectiveInjector_(protoParent, null, () => 'parentContext');
var child = new ReflectiveInjector_(protoChild, parent, () => 'childContext');
try {
child.get(Car);
throw 'Must throw';
} catch (e) {
expect(e.context).toEqual('childContext');
}
});
it('should instantiate an object after a failed attempt', () => {
var isBroken = true;