| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library engine.incremental_resolver; | 5 library engine.incremental_resolver; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 import 'dart:math' as math; | 8 import 'dart:math' as math; |
| 9 | 9 |
| 10 import 'package:analyzer/src/context/cache.dart' | 10 import 'package:analyzer/src/context/cache.dart' |
| 11 show CacheEntry, Delta, DeltaResult, TargetedResult; | 11 show CacheEntry, Delta, DeltaResult; |
| 12 import 'package:analyzer/src/generated/constant.dart'; | 12 import 'package:analyzer/src/generated/constant.dart'; |
| 13 import 'package:analyzer/src/task/dart.dart'; | 13 import 'package:analyzer/src/task/dart.dart'; |
| 14 import 'package:analyzer/task/dart.dart'; | 14 import 'package:analyzer/task/dart.dart'; |
| 15 import 'package:analyzer/task/general.dart' show CONTENT, LINE_INFO; | 15 import 'package:analyzer/task/general.dart' show CONTENT, LINE_INFO; |
| 16 import 'package:analyzer/task/model.dart' | 16 import 'package:analyzer/task/model.dart' |
| 17 show AnalysisTarget, ResultDescriptor, TargetedResult, TaskDescriptor; | 17 show AnalysisTarget, ResultDescriptor, TargetedResult, TaskDescriptor; |
| 18 | 18 |
| 19 import 'ast.dart'; | 19 import 'ast.dart'; |
| 20 import 'element.dart'; | 20 import 'element.dart'; |
| 21 import 'engine.dart' | 21 import 'engine.dart' |
| (...skipping 828 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 850 */ | 850 */ |
| 851 final int updateDelta; | 851 final int updateDelta; |
| 852 | 852 |
| 853 IncrementalBodyDelta(Source source, this.updateOffset, this.updateEndOld, | 853 IncrementalBodyDelta(Source source, this.updateOffset, this.updateEndOld, |
| 854 this.updateEndNew, this.updateDelta) | 854 this.updateEndNew, this.updateDelta) |
| 855 : super(source); | 855 : super(source); |
| 856 | 856 |
| 857 @override | 857 @override |
| 858 DeltaResult validate(InternalAnalysisContext context, AnalysisTarget target, | 858 DeltaResult validate(InternalAnalysisContext context, AnalysisTarget target, |
| 859 ResultDescriptor descriptor) { | 859 ResultDescriptor descriptor) { |
| 860 // A body change delta should never leak outside its source. |
| 861 // It can cause invalidation of results (e.g. hints) in other sources, |
| 862 // but only when a result in the updated source is INVALIDATE_NO_DELTA. |
| 863 if (target.source != source) { |
| 864 return DeltaResult.STOP; |
| 865 } |
| 860 // don't invalidate results of standard Dart tasks | 866 // don't invalidate results of standard Dart tasks |
| 861 bool isByTask(TaskDescriptor taskDescriptor) { | 867 bool isByTask(TaskDescriptor taskDescriptor) { |
| 862 return taskDescriptor.results.contains(descriptor); | 868 return taskDescriptor.results.contains(descriptor); |
| 863 } | 869 } |
| 864 if (descriptor == CONTENT) { | 870 if (descriptor == CONTENT) { |
| 865 return DeltaResult.KEEP_CONTINUE; | 871 return DeltaResult.KEEP_CONTINUE; |
| 866 } | 872 } |
| 867 if (target is LibrarySpecificUnit && target.unit != source) { | 873 if (target is LibrarySpecificUnit && target.unit != source) { |
| 868 if (isByTask(GatherUsedLocalElementsTask.DESCRIPTOR) || | 874 if (isByTask(GatherUsedLocalElementsTask.DESCRIPTOR) || |
| 869 isByTask(GatherUsedImportedElementsTask.DESCRIPTOR)) { | 875 isByTask(GatherUsedImportedElementsTask.DESCRIPTOR)) { |
| (...skipping 1250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2120 @override | 2126 @override |
| 2121 String toString() => name; | 2127 String toString() => name; |
| 2122 } | 2128 } |
| 2123 | 2129 |
| 2124 class _TokenPair { | 2130 class _TokenPair { |
| 2125 final _TokenDifferenceKind kind; | 2131 final _TokenDifferenceKind kind; |
| 2126 final Token oldToken; | 2132 final Token oldToken; |
| 2127 final Token newToken; | 2133 final Token newToken; |
| 2128 _TokenPair(this.kind, this.oldToken, this.newToken); | 2134 _TokenPair(this.kind, this.oldToken, this.newToken); |
| 2129 } | 2135 } |
| OLD | NEW |