fix(compiler): avoid emitting self importing factories

Fixes: #17389
This commit is contained in:
Chuck Jazdzewski
2017-06-21 15:05:11 -07:00
committed by Hans
parent 34cc3f2982
commit 4352dd27c4
4 changed files with 36 additions and 5 deletions

View File

@ -304,7 +304,10 @@ export class AotCompiler {
}
const arity = this._symbolResolver.getTypeArity(symbol) || 0;
const {filePath, name, members} = this._symbolResolver.getImportAs(symbol) || symbol;
const moduleName = this._symbolResolver.fileNameToModuleName(filePath, genFilePath);
const importModule = this._symbolResolver.fileNameToModuleName(filePath, genFilePath);
const selfReference = this._symbolResolver.fileNameToModuleName(genFilePath, genFilePath);
const moduleName = importModule === selfReference ? null : importModule;
// If we are in a type expression that refers to a generic type then supply
// the required type parameters. If there were not enough type parameters
// supplied, supply any as the type. Outside a type expression the reference