Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(682)

Side by Side Diff: pkg/analyzer/lib/src/dart/analysis/driver.dart

Issue 2532353002: Dispose AnalysisContext(s) used to resynthesize CompilationUnitElement(s) for IndexResult(s). (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 import 'dart:collection'; 6 import 'dart:collection';
7 import 'dart:typed_data'; 7 import 'dart:typed_data';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/element/element.dart' show CompilationUnitElement; 10 import 'package:analyzer/dart/element/element.dart' show CompilationUnitElement;
(...skipping 574 matching lines...) Expand 10 before | Expand all | Expand 10 after
585 AnalysisResult analysisResult = _computeAnalysisResult(path, 585 AnalysisResult analysisResult = _computeAnalysisResult(path,
586 withUnit: false, asIsIfPartWithoutLibrary: true); 586 withUnit: false, asIsIfPartWithoutLibrary: true);
587 FileState libraryFile = analysisResult._libraryFile; 587 FileState libraryFile = analysisResult._libraryFile;
588 FileState file = analysisResult._file; 588 FileState file = analysisResult._file;
589 589
590 // Create the AnalysisContext to resynthesize elements in. 590 // Create the AnalysisContext to resynthesize elements in.
591 _LibraryContext libraryContext = _createLibraryContext(libraryFile); 591 _LibraryContext libraryContext = _createLibraryContext(libraryFile);
592 AnalysisContext analysisContext = _createAnalysisContext(libraryContext); 592 AnalysisContext analysisContext = _createAnalysisContext(libraryContext);
593 593
594 // Resynthesize the CompilationUnitElement in the context. 594 // Resynthesize the CompilationUnitElement in the context.
595 CompilationUnitElement unitElement = analysisContext.computeResult( 595 CompilationUnitElement unitElement;
596 new LibrarySpecificUnit(libraryFile.source, file.source), 596 try {
597 COMPILATION_UNIT_ELEMENT); 597 unitElement = analysisContext.computeResult(
598 new LibrarySpecificUnit(libraryFile.source, file.source),
599 COMPILATION_UNIT_ELEMENT);
600 } finally {
601 analysisContext.dispose();
602 }
598 603
599 // Return as IndexResult. 604 // Return as IndexResult.
600 return new IndexResult(unitElement, analysisResult._index); 605 return new IndexResult(unitElement, analysisResult._index);
601 } 606 }
602 607
603 AnalysisContext _createAnalysisContext(_LibraryContext libraryContext) { 608 AnalysisContext _createAnalysisContext(_LibraryContext libraryContext) {
604 AnalysisContextImpl analysisContext = 609 AnalysisContextImpl analysisContext =
605 AnalysisEngine.instance.createAnalysisContext(); 610 AnalysisEngine.instance.createAnalysisContext();
606 analysisContext.analysisOptions = analysisOptions; 611 analysisContext.analysisOptions = analysisOptions;
607 612
(...skipping 686 matching lines...) Expand 10 before | Expand all | Expand 10 after
1294 } 1299 }
1295 1300
1296 /** 1301 /**
1297 * TODO(scheglov) document 1302 * TODO(scheglov) document
1298 */ 1303 */
1299 class _LibraryContext { 1304 class _LibraryContext {
1300 final FileState file; 1305 final FileState file;
1301 final SummaryDataStore store; 1306 final SummaryDataStore store;
1302 _LibraryContext(this.file, this.store); 1307 _LibraryContext(this.file, this.store);
1303 } 1308 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698