From 47c4dadf00db4a5a39197a85f555bb66a79dfa37 Mon Sep 17 00:00:00 2001 From: alorenzen Date: Mon, 8 Oct 2018 13:55:30 -0700 Subject: [PATCH] refactor(compiler): Remove isExportedVar from EmitterVisitorContext. This method is not used, and we can clean up some code to generate this list. PiperOrigin-RevId: 216244158 --- .../compiler/output/dart_emitter_test.dart | 9 +++-- .../lib/src/compiler/offline_compiler.dart | 35 +++++++------------ .../src/compiler/output/abstract_emitter.dart | 14 +++----- .../lib/src/compiler/output/dart_emitter.dart | 6 ++-- 4 files changed, 23 insertions(+), 41 deletions(-) diff --git a/_tests/test/compiler/output/dart_emitter_test.dart b/_tests/test/compiler/output/dart_emitter_test.dart index 8e53ff7104..8efbfc6969 100644 --- a/_tests/test/compiler/output/dart_emitter_test.dart +++ b/_tests/test/compiler/output/dart_emitter_test.dart @@ -26,9 +26,8 @@ void main() { emitter = DartEmitter(); someVar = o.variable('someVar'); }); - String emitStmt(o.Statement stmt, [List exportedVars]) { - exportedVars ??= []; - return emitter.emitStatements(someModuleUrl, [stmt], exportedVars, {}); + String emitStmt(o.Statement stmt) { + return emitter.emitStatements(someModuleUrl, [stmt], {}); } test('should declare variables', () { @@ -50,8 +49,8 @@ void main() { o.BuiltinType(o.BuiltinTypeName.Int, [o.TypeModifier.Const]))) .toDeclStmt(null, [o.StmtModifier.Final])), 'final int someVar = 1;'); - expect(emitStmt(someVar.set(o.literal(1)).toDeclStmt(), ['someVar']), - 'var someVar = 1;'); + expect( + emitStmt(someVar.set(o.literal(1)).toDeclStmt()), 'var someVar = 1;'); expect(emitStmt(someVar.set(o.literal(1)).toDeclStmt(o.INT_TYPE)), 'int someVar = 1;'); }); diff --git a/angular/lib/src/compiler/offline_compiler.dart b/angular/lib/src/compiler/offline_compiler.dart index 77b939acba..d7c1048682 100644 --- a/angular/lib/src/compiler/offline_compiler.dart +++ b/angular/lib/src/compiler/offline_compiler.dart @@ -89,37 +89,31 @@ class OfflineCompiler { throw StateError('No components nor injectorModules given'); } var statements = []; - var exportedVars = []; for (var componentWithDirs in artifacts.components) { CompileDirectiveMetadata compMeta = componentWithDirs.component; _assertComponent(compMeta); // Compile Component View and Embedded templates. - var compViewFactoryVar = _compileComponent( + _compileComponent( compMeta, componentWithDirs.directives, componentWithDirs.directiveTypes, componentWithDirs.pipes, statements, _deferredModules); - exportedVars.add(compViewFactoryVar); String hostViewFactoryVar = _compileComponentHost(compMeta, statements); - var compFactoryVar = - _registerComponentFactory(statements, compMeta, hostViewFactoryVar); - exportedVars.add(compFactoryVar); + _registerComponentFactory(statements, compMeta, hostViewFactoryVar); } for (CompileDirectiveMetadata directive in artifacts.directives) { if (!directive.requiresDirectiveChangeDetector) continue; - var changeDetectorClassName = _compileDirective(directive, statements); - exportedVars.add(changeDetectorClassName); + _compileDirective(directive, statements); } String moduleUrl = _moduleUrlFor(artifacts); - return _createSourceModule( - moduleUrl, statements, exportedVars, _deferredModules); + return _createSourceModule(moduleUrl, statements, _deferredModules); } List compileStylesheet(String stylesheetUrl, String cssText) { @@ -129,9 +123,9 @@ class OfflineCompiler { _styleCompiler.compileStylesheet(stylesheetUrl, cssText, true); return [ _createSourceModule(stylesModuleUrl(stylesheetUrl, false), - plainStyles.statements, [plainStyles.stylesVar], _deferredModules), + plainStyles.statements, _deferredModules), _createSourceModule(stylesModuleUrl(stylesheetUrl, true), - shimStyles.statements, [shimStyles.stylesVar], _deferredModules) + shimStyles.statements, _deferredModules) ]; } @@ -179,7 +173,7 @@ class OfflineCompiler { // ComponentFactory FooNgFactory get _FooNgFactory; // // This is referenced in `initReflector/METADATA` and by user-code. - String _registerComponentFactory(List statements, + void _registerComponentFactory(List statements, CompileDirectiveMetadata compMeta, String hostViewFactoryVar) { var compFactoryVar = '${compMeta.type.name}NgFactory'; var factoryType = [o.importType(compMeta.type)]; @@ -212,25 +206,20 @@ class OfflineCompiler { ), ).toGetter('$compFactoryVar'), ); - return compFactoryVar; } - String _compileDirective( + void _compileDirective( CompileDirectiveMetadata directive, List statements) { DirectiveCompiler comp = DirectiveCompiler(directive, _templateParser.schemaRegistry); DirectiveCompileResult res = comp.compile(); statements.addAll(res.statements); - return comp.changeDetectorClassName; } - SourceModule _createSourceModule( - String moduleUrl, - List statements, - List exportedVars, - Map deferredModules) { - String sourceCode = _outputEmitter.emitStatements( - moduleUrl, statements, exportedVars, deferredModules); + SourceModule _createSourceModule(String moduleUrl, + List statements, Map deferredModules) { + String sourceCode = + _outputEmitter.emitStatements(moduleUrl, statements, deferredModules); return SourceModule(moduleUrl, sourceCode, deferredModules); } diff --git a/angular/lib/src/compiler/output/abstract_emitter.dart b/angular/lib/src/compiler/output/abstract_emitter.dart index fbc95b7069..4384994942 100644 --- a/angular/lib/src/compiler/output/abstract_emitter.dart +++ b/angular/lib/src/compiler/output/abstract_emitter.dart @@ -6,7 +6,7 @@ final catchStackVar = o.variable('stack'); abstract class OutputEmitter { String emitStatements(String moduleUrl, List stmts, - List exportedVars, Map deferredModules); + Map deferredModules); } class _EmittedLine { @@ -17,7 +17,6 @@ class _EmittedLine { class EmitterVisitorContext { final Map deferredModules; - final List _exportedVars; int _indent; int _outputPos = 0; // Current method being emitted. Allows expressions access to method @@ -28,12 +27,11 @@ class EmitterVisitorContext { final List<_EmittedLine> _lines; final List _classes = []; - static EmitterVisitorContext createRoot( - List exportedVars, Map deferredModules) { - return EmitterVisitorContext(exportedVars, 0, deferredModules); + static EmitterVisitorContext createRoot(Map deferredModules) { + return EmitterVisitorContext(0, deferredModules); } - EmitterVisitorContext(this._exportedVars, this._indent, this.deferredModules) + EmitterVisitorContext(this._indent, this.deferredModules) : this._lines = [_EmittedLine(_indent)]; _EmittedLine get _currentLine { @@ -42,10 +40,6 @@ class EmitterVisitorContext { int get currentLineLength => _currentLine.indent + _outputPos; - bool isExportedVar(String varName) { - return !identical(_exportedVars.indexOf(varName), -1); - } - void println([String lastPart = '']) { print(lastPart, true); _outputPos += lastPart.length; diff --git a/angular/lib/src/compiler/output/dart_emitter.dart b/angular/lib/src/compiler/output/dart_emitter.dart index 90c04232e6..65f23ce5e7 100644 --- a/angular/lib/src/compiler/output/dart_emitter.dart +++ b/angular/lib/src/compiler/output/dart_emitter.dart @@ -14,7 +14,7 @@ var _METADATA_MAP_VAR = '_METADATA'; String debugOutputAstAsDart( dynamic /* o . Statement | o . Expression | o . Type | List < dynamic > */ ast) { var converter = _DartEmitterVisitor(_debugModuleUrl); - var ctx = EmitterVisitorContext.createRoot([], {}); + var ctx = EmitterVisitorContext.createRoot({}); List asts; if (ast is! List) { asts = [ast]; @@ -36,12 +36,12 @@ String debugOutputAstAsDart( class DartEmitter implements OutputEmitter { @override String emitStatements(String moduleUrl, List stmts, - List exportedVars, Map deferredModules) { + Map deferredModules) { final srcParts = []; // Note: We are not creating a library here as Dart does not need it. // Dart analyzer might complain about it though. final converter = _DartEmitterVisitor(moduleUrl); - final ctx = EmitterVisitorContext.createRoot(exportedVars, deferredModules); + final ctx = EmitterVisitorContext.createRoot(deferredModules); converter.visitAllStatements(stmts, ctx); converter.importsWithPrefixes.forEach((importedModuleUrl, prefix) { String importPath = getImportModulePath(moduleUrl, importedModuleUrl);