Skip to content

Commit

Permalink
Revert "fix(compiler): shouldn't throw when Symbol is used as DI token (
Browse files Browse the repository at this point in the history
angular#13701)" (angular#15319)

This reverts commit 8b5c6b2.

This feature is not compatible with the `Injector.get` which now only 
takes `Type` or `InjectableToken`. `Symbol` is not a valid type.

Closes angular#15183

PR Close angular#15319
  • Loading branch information
mhevery authored and Zhicheng Wang committed Aug 11, 2017
1 parent 56ce087 commit f7c2d10
Show file tree
Hide file tree
Showing 2 changed files with 1 addition and 40 deletions.
14 changes: 0 additions & 14 deletions packages/compiler/src/compile_metadata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,6 @@ function _sanitizeIdentifier(name: string): string {
}

let _anonymousTypeIndex = 0;
let symbolId = 0;
const symbolIds = new Map<Symbol, string>();

export function identifierName(compileIdentifier: CompileIdentifierMetadata): string {
if (!compileIdentifier || !compileIdentifier.reference) {
Expand All @@ -91,14 +89,6 @@ export function identifierName(compileIdentifier: CompileIdentifierMetadata): st
if (ref instanceof StaticSymbol) {
return ref.name;
}
if (isSymbol(ref)) {
if (symbolIds.has(ref)) {
return symbolIds.get(ref);
}
const symbolStr = `_symbol_${_sanitizeIdentifier(ref.toString())}_${symbolId++}`;
symbolIds.set(ref, symbolStr);
return symbolStr;
}
if (ref['__anonymousType']) {
return ref['__anonymousType'];
}
Expand All @@ -113,10 +103,6 @@ export function identifierName(compileIdentifier: CompileIdentifierMetadata): st
return identifier;
}

function isSymbol(sym: any): sym is Symbol {
return typeof sym === 'symbol';
}

export function identifierModuleUrl(compileIdentifier: CompileIdentifierMetadata): string {
const ref = compileIdentifier.reference;
if (ref instanceof StaticSymbol) {
Expand Down
27 changes: 1 addition & 26 deletions packages/compiler/test/integration_spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
* found in the LICENSE file at https://angular.io/license
*/

import {Component, Directive, Inject, Input} from '@angular/core';
import {Component, Directive, Input} from '@angular/core';
import {ComponentFixture, TestBed, async} from '@angular/core/testing';
import {By} from '@angular/platform-browser/src/dom/debug/by';
import {expect} from '@angular/platform-browser/testing/src/matchers';
Expand Down Expand Up @@ -38,31 +38,6 @@ export function main() {
}));
});

it('should not throw when Symbol is used as DI token', async(() => {
const SOME_SYMBOL = Symbol('Symbol');
const ANOTHER_SYMBOL = Symbol('Symbol');

@Component({selector: 'symbol', template: ''})
class CmpWithSymbol {
constructor(
@Inject(SOME_SYMBOL) public symbol: string,
@Inject(ANOTHER_SYMBOL) public anotherSymbol: string) {}
}

TestBed.configureTestingModule({
declarations: [CmpWithSymbol],
providers: [
{provide: SOME_SYMBOL, useValue: 'value'},
{provide: SOME_SYMBOL, useValue: 'override'},
{provide: ANOTHER_SYMBOL, useValue: 'another value'}
]
});

const fixture = TestBed.createComponent(CmpWithSymbol);
fixture.detectChanges();
expect(fixture.componentInstance.symbol).toEqual('override');
expect(fixture.componentInstance.anotherSymbol).toEqual('another value');
}));
});
}

Expand Down

0 comments on commit f7c2d10

Please sign in to comment.