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

Unified Diff: pkg/analyzer/lib/src/context/context.dart

Issue 2884853002: cleanup unused incremental resolution (Closed)
Patch Set: rebase Created 3 years, 7 months 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 side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/lib/src/context/context.dart
diff --git a/pkg/analyzer/lib/src/context/context.dart b/pkg/analyzer/lib/src/context/context.dart
index 4f04145b9013371913cf42a3acbd5c3bbe02efc6..868280316ccc2ef3d9e9ca67dac695b458613ce3 100644
--- a/pkg/analyzer/lib/src/context/context.dart
+++ b/pkg/analyzer/lib/src/context/context.dart
@@ -8,11 +8,9 @@ import 'dart:async';
import 'dart:collection';
import 'package:analyzer/dart/ast/ast.dart';
-import 'package:analyzer/dart/ast/standard_resolution_map.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/error/error.dart';
import 'package:analyzer/exception/exception.dart';
-import 'package:analyzer/instrumentation/instrumentation.dart';
import 'package:analyzer/plugin/resolver_provider.dart';
import 'package:analyzer/plugin/task.dart';
import 'package:analyzer/src/cancelable_future.dart';
@@ -21,7 +19,6 @@ import 'package:analyzer/src/context/cache.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/generated/constant.dart';
import 'package:analyzer/src/generated/engine.dart';
-import 'package:analyzer/src/generated/incremental_resolver.dart';
import 'package:analyzer/src/generated/resolver.dart';
import 'package:analyzer/src/generated/sdk.dart' show DartSdk;
import 'package:analyzer/src/generated/source.dart';
@@ -56,16 +53,6 @@ typedef T PendingFutureComputer<T>(CacheEntry entry);
*/
class AnalysisContextImpl implements InternalAnalysisContext {
/**
- * The next context identifier.
- */
- static int _NEXT_ID = 0;
-
- /**
- * The unique identifier of this context.
- */
- final int _id = _NEXT_ID++;
-
- /**
* The flag that is `true` if the context is being analyzed.
*/
bool _isActive = false;
@@ -1070,12 +1057,9 @@ class AnalysisContextImpl implements InternalAnalysisContext {
if (newContents != null) {
if (changed) {
entry.modificationTime = _contentCache.getModificationStamp(source);
- if (!analysisOptions.incremental ||
- !_tryPoorMansIncrementalResolution(source, newContents)) {
- // Don't compare with old contents because the cache has already been
- // updated, and we know at this point that it changed.
- _sourceChanged(source, compareWithOld: false);
- }
+ // Don't compare with old contents because the cache has already been
+ // updated, and we know at this point that it changed.
+ _sourceChanged(source, compareWithOld: false);
entry.setValue(CONTENT, newContents, TargetedResult.EMPTY_LIST);
} else {
entry.modificationTime = _contentCache.getModificationStamp(source);
@@ -1095,9 +1079,7 @@ class AnalysisContextImpl implements InternalAnalysisContext {
// If not the same content (e.g. the file is being closed without save),
// then force analysis.
if (changed) {
- if (newContents == null ||
- !analysisOptions.incremental ||
- !_tryPoorMansIncrementalResolution(source, newContents)) {
+ if (newContents == null) {
_sourceChanged(source);
}
}
@@ -1528,30 +1510,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
}
/**
- * Return a [CompilationUnit] for the given library and unit sources, which
- * can be incrementally resolved.
- */
- CompilationUnit _getIncrementallyResolvableUnit(
- Source librarySource, Source unitSource) {
- LibrarySpecificUnit target =
- new LibrarySpecificUnit(librarySource, unitSource);
- for (ResultDescriptor<CompilationUnit> result in [
- RESOLVED_UNIT,
- RESOLVED_UNIT12,
- RESOLVED_UNIT11,
- RESOLVED_UNIT10,
- RESOLVED_UNIT9,
- RESOLVED_UNIT8
- ]) {
- CompilationUnit unit = getResult(target, result);
- if (unit != null) {
- return unit;
- }
- }
- return null;
- }
-
- /**
* Return a list containing all of the sources known to this context that have
* the given [kind].
*/
@@ -1858,81 +1816,6 @@ class AnalysisContextImpl implements InternalAnalysisContext {
_removeFromPriorityOrder(source);
}
- /**
- * TODO(scheglov) A hackish, limited incremental resolution implementation.
- */
- bool _tryPoorMansIncrementalResolution(Source unitSource, String newCode) {
- return PerformanceStatistics.incrementalAnalysis.makeCurrentWhile(() {
- incrementalResolutionValidation_lastUnitSource = null;
- incrementalResolutionValidation_lastLibrarySource = null;
- incrementalResolutionValidation_lastUnit = null;
- // prepare the source entry
- CacheEntry sourceEntry = _cache.get(unitSource);
- if (sourceEntry == null) {
- return false;
- }
- // prepare the (only) library source
- List<Source> librarySources = getLibrariesContaining(unitSource);
- if (librarySources.length != 1) {
- return false;
- }
- Source librarySource = librarySources[0];
- // prepare the unit entry
- CacheEntry unitEntry =
- _cache.get(new LibrarySpecificUnit(librarySource, unitSource));
- if (unitEntry == null) {
- return false;
- }
- // prepare the existing unit
- CompilationUnit oldUnit =
- _getIncrementallyResolvableUnit(librarySource, unitSource);
- if (oldUnit == null) {
- return false;
- }
- // do resolution
- Stopwatch perfCounter = new Stopwatch()..start();
- PoorMansIncrementalResolver resolver = new PoorMansIncrementalResolver(
- typeProvider,
- unitSource,
- _cache,
- sourceEntry,
- unitEntry,
- oldUnit,
- analysisOptions.incrementalApi);
- bool success = resolver.resolve(newCode);
- AnalysisEngine.instance.instrumentationService.logPerformance(
- AnalysisPerformanceKind.INCREMENTAL,
- perfCounter,
- 'success=$success,context_id=$_id,code_length=${newCode.length}');
- if (!success) {
- return false;
- }
- // if validation, remember the result, but throw it away
- if (analysisOptions.incrementalValidation) {
- CompilationUnitElement compilationUnitElement =
- resolutionMap.elementDeclaredByCompilationUnit(oldUnit);
- incrementalResolutionValidation_lastUnitSource =
- compilationUnitElement.source;
- incrementalResolutionValidation_lastLibrarySource =
- compilationUnitElement.library.source;
- incrementalResolutionValidation_lastUnit = oldUnit;
- return false;
- }
- // prepare notice
- {
- ChangeNoticeImpl notice = getNotice(unitSource);
- notice.resolvedDartUnit = oldUnit;
- AnalysisErrorInfo errorInfo = getErrors(unitSource);
- notice.setErrors(errorInfo.errors, errorInfo.lineInfo);
- }
- // schedule
- dartWorkManager.unitIncrementallyResolved(librarySource, unitSource);
- // OK
- driver.reset();
- return true;
- });
- }
-
static bool _samePatchPaths(
Map<String, List<String>> a, Map<String, List<String>> b) {
if (a.length != b.length) return false;
« no previous file with comments | « pkg/analysis_server/test/analysis/update_content_test.dart ('k') | pkg/analyzer/lib/src/generated/incremental_resolver.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698