Chromium Code Reviews| 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 // This code was auto-generated, is not intended to be edited, and is subject to | 5 // This code was auto-generated, is not intended to be edited, and is subject to |
| 6 // significant change. Please see the README file for more information. | 6 // significant change. Please see the README file for more information. |
| 7 | 7 |
| 8 library engine; | 8 library engine; |
| 9 | 9 |
| 10 import "dart:math" as math; | 10 import "dart:math" as math; |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 412 */ | 412 */ |
| 413 String get name; | 413 String get name; |
| 414 | 414 |
| 415 /** | 415 /** |
| 416 * Set the client-provided name used to identify this context to the given | 416 * Set the client-provided name used to identify this context to the given |
| 417 * [name]. | 417 * [name]. |
| 418 */ | 418 */ |
| 419 set name(String name); | 419 set name(String name); |
| 420 | 420 |
| 421 /** | 421 /** |
| 422 * Returns a type provider for this context or throws [AnalysisException] if | |
| 423 * `dart:core` or `dart:async` cannot be resolved. | |
| 424 */ | |
| 425 TypeProvider get typeProvider; | |
| 426 | |
| 427 /** | |
| 428 * The stream that is notified when sources have been added or removed, | 422 * The stream that is notified when sources have been added or removed, |
| 429 * or the source's content has changed. | 423 * or the source's content has changed. |
| 430 */ | 424 */ |
| 431 Stream<SourcesChangedEvent> get onSourcesChanged; | 425 Stream<SourcesChangedEvent> get onSourcesChanged; |
| 432 | 426 |
| 433 /** | 427 /** |
| 434 * Return an array containing all of the sources known to this context and the ir resolution state | 428 * Return an array containing all of the sources known to this context and the ir resolution state |
| 435 * is not valid or flush. So, these sources are not safe to update during refa ctoring, because we | 429 * is not valid or flush. So, these sources are not safe to update during refa ctoring, because we |
| 436 * may be don't know all the references in them. | 430 * may be don't know all the references in them. |
| 437 * | 431 * |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 450 * Set the source factory used to create the sources that can be analyzed in t his context to the | 444 * Set the source factory used to create the sources that can be analyzed in t his context to the |
| 451 * given source factory. Clients can safely assume that all analysis results h ave been | 445 * given source factory. Clients can safely assume that all analysis results h ave been |
| 452 * invalidated. | 446 * invalidated. |
| 453 * | 447 * |
| 454 * @param factory the source factory used to create the sources that can be an alyzed in this | 448 * @param factory the source factory used to create the sources that can be an alyzed in this |
| 455 * context | 449 * context |
| 456 */ | 450 */ |
| 457 void set sourceFactory(SourceFactory factory); | 451 void set sourceFactory(SourceFactory factory); |
| 458 | 452 |
| 459 /** | 453 /** |
| 454 * Returns a type provider for this context or throws [AnalysisException] if | |
| 455 * `dart:core` or `dart:async` cannot be resolved. | |
| 456 */ | |
| 457 TypeProvider get typeProvider; | |
| 458 | |
| 459 /** | |
| 460 * Add the given listener to the list of objects that are to be notified when various analysis | 460 * Add the given listener to the list of objects that are to be notified when various analysis |
| 461 * results are produced in this context. | 461 * results are produced in this context. |
| 462 * | 462 * |
| 463 * @param listener the listener to be added | 463 * @param listener the listener to be added |
| 464 */ | 464 */ |
| 465 void addListener(AnalysisListener listener); | 465 void addListener(AnalysisListener listener); |
| 466 | 466 |
| 467 /** | 467 /** |
| 468 * Apply the given delta to change the level of analysis that will be performe d for the sources | 468 * Apply the given delta to change the level of analysis that will be performe d for the sources |
| 469 * known to this context. | 469 * known to this context. |
| (...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 780 * Return a fully resolved HTML unit, or `null` if the resolved unit is not al ready | 780 * Return a fully resolved HTML unit, or `null` if the resolved unit is not al ready |
| 781 * computed. | 781 * computed. |
| 782 * | 782 * |
| 783 * @param htmlSource the source of the HTML unit | 783 * @param htmlSource the source of the HTML unit |
| 784 * @return a fully resolved HTML unit | 784 * @return a fully resolved HTML unit |
| 785 * See [resolveHtmlUnit]. | 785 * See [resolveHtmlUnit]. |
| 786 */ | 786 */ |
| 787 ht.HtmlUnit getResolvedHtmlUnit(Source htmlSource); | 787 ht.HtmlUnit getResolvedHtmlUnit(Source htmlSource); |
| 788 | 788 |
| 789 /** | 789 /** |
| 790 * Return a list of the sources being analyzed in this context whose full path | |
| 791 * is equal to the given [path]. | |
| 792 */ | |
| 793 List<Source> getSourcesWithFullName(String path); | |
| 794 | |
| 795 /** | |
| 790 * Return `true` if the given source is known to be the defining compilation u nit of a | 796 * Return `true` if the given source is known to be the defining compilation u nit of a |
| 791 * library that can be run on a client (references 'dart:html', either directl y or indirectly). | 797 * library that can be run on a client (references 'dart:html', either directl y or indirectly). |
| 792 * | 798 * |
| 793 * <b>Note:</b> In addition to the expected case of returning `false` if the s ource is known | 799 * <b>Note:</b> In addition to the expected case of returning `false` if the s ource is known |
| 794 * to be a library that cannot be run on a client, this method will also retur n `false` if | 800 * to be a library that cannot be run on a client, this method will also retur n `false` if |
| 795 * the source is not known to be a library or if we do not know whether it can be run on a client. | 801 * the source is not known to be a library or if we do not know whether it can be run on a client. |
| 796 * | 802 * |
| 797 * @param librarySource the source being tested | 803 * @param librarySource the source being tested |
| 798 * @return `true` if the given source is known to be a library that can be run on a client | 804 * @return `true` if the given source is known to be a library that can be run on a client |
| 799 */ | 805 */ |
| (...skipping 320 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1120 new StreamController<SourcesChangedEvent>.broadcast(); | 1126 new StreamController<SourcesChangedEvent>.broadcast(); |
| 1121 } | 1127 } |
| 1122 | 1128 |
| 1123 @override | 1129 @override |
| 1124 AnalysisOptions get analysisOptions => _options; | 1130 AnalysisOptions get analysisOptions => _options; |
| 1125 | 1131 |
| 1126 @override | 1132 @override |
| 1127 void set analysisOptions(AnalysisOptions options) { | 1133 void set analysisOptions(AnalysisOptions options) { |
| 1128 bool needsRecompute = this._options.analyzeFunctionBodiesPredicate != | 1134 bool needsRecompute = this._options.analyzeFunctionBodiesPredicate != |
| 1129 options.analyzeFunctionBodiesPredicate || | 1135 options.analyzeFunctionBodiesPredicate || |
| 1130 this._options.generateImplicitErrors != options.generateImplicitErro rs || | 1136 this._options.generateImplicitErrors != |
| 1137 options.generateImplicitErrors || | |
| 1131 this._options.generateSdkErrors != options.generateSdkErrors || | 1138 this._options.generateSdkErrors != options.generateSdkErrors || |
| 1132 this._options.dart2jsHint != options.dart2jsHint || | 1139 this._options.dart2jsHint != options.dart2jsHint || |
| 1133 (this._options.hint && !options.hint) || | 1140 (this._options.hint && !options.hint) || |
| 1134 this._options.preserveComments != options.preserveComments; | 1141 this._options.preserveComments != options.preserveComments; |
| 1135 int cacheSize = options.cacheSize; | 1142 int cacheSize = options.cacheSize; |
| 1136 if (this._options.cacheSize != cacheSize) { | 1143 if (this._options.cacheSize != cacheSize) { |
| 1137 this._options.cacheSize = cacheSize; | 1144 this._options.cacheSize = cacheSize; |
| 1138 //cache.setMaxCacheSize(cacheSize); | 1145 //cache.setMaxCacheSize(cacheSize); |
| 1139 _privatePartition.maxCacheSize = cacheSize; | 1146 _privatePartition.maxCacheSize = cacheSize; |
| 1140 // | 1147 // |
| 1141 // Cap the size of the priority list to being less than the cache size. | 1148 // Cap the size of the priority list to being less than the cache size. |
| 1142 // Failure to do so can result in an infinite loop in | 1149 // Failure to do so can result in an infinite loop in |
| 1143 // performAnalysisTask() because re-caching one AST structure | 1150 // performAnalysisTask() because re-caching one AST structure |
| 1144 // can cause another priority source's AST structure to be flushed. | 1151 // can cause another priority source's AST structure to be flushed. |
| 1145 // | 1152 // |
| 1146 int maxPriorityOrderSize = cacheSize - _PRIORITY_ORDER_SIZE_DELTA; | 1153 int maxPriorityOrderSize = cacheSize - _PRIORITY_ORDER_SIZE_DELTA; |
| 1147 if (_priorityOrder.length > maxPriorityOrderSize) { | 1154 if (_priorityOrder.length > maxPriorityOrderSize) { |
| 1148 List<Source> newPriorityOrder = new List<Source>(maxPriorityOrderSize); | 1155 List<Source> newPriorityOrder = new List<Source>(maxPriorityOrderSize); |
| 1149 JavaSystem.arraycopy( | 1156 JavaSystem.arraycopy( |
| 1150 _priorityOrder, 0, newPriorityOrder, 0, maxPriorityOrderSize); | 1157 _priorityOrder, 0, newPriorityOrder, 0, maxPriorityOrderSize); |
| 1151 _priorityOrder = newPriorityOrder; | 1158 _priorityOrder = newPriorityOrder; |
| 1152 } | 1159 } |
| 1153 } | 1160 } |
| 1154 this._options.analyzeFunctionBodiesPredicate = | 1161 this._options.analyzeFunctionBodiesPredicate = |
| 1155 options.analyzeFunctionBodiesPredicate; | 1162 options.analyzeFunctionBodiesPredicate; |
| 1156 this._options.generateImplicitErrors = options.generateImplicitErrors; | 1163 this._options.generateImplicitErrors = options.generateImplicitErrors; |
| 1157 this._options.generateSdkErrors = options.generateSdkErrors; | 1164 this._options.generateSdkErrors = options.generateSdkErrors; |
| 1158 this._options.dart2jsHint = options.dart2jsHint; | 1165 this._options.dart2jsHint = options.dart2jsHint; |
| 1159 this._options.hint = options.hint; | 1166 this._options.hint = options.hint; |
| 1160 this._options.incremental = options.incremental; | 1167 this._options.incremental = options.incremental; |
| 1161 this._options.incrementalApi = options.incrementalApi; | 1168 this._options.incrementalApi = options.incrementalApi; |
| 1162 this._options.incrementalValidation = options.incrementalValidation; | 1169 this._options.incrementalValidation = options.incrementalValidation; |
| 1163 this._options.lint = options.lint; | 1170 this._options.lint = options.lint; |
| 1164 this._options.preserveComments = options.preserveComments; | 1171 this._options.preserveComments = options.preserveComments; |
| 1165 _generateImplicitErrors = options.generateImplicitErrors; | 1172 _generateImplicitErrors = options.generateImplicitErrors; |
| 1166 _generateSdkErrors = options.generateSdkErrors; | 1173 _generateSdkErrors = options.generateSdkErrors; |
| (...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2157 ht.HtmlUnit getResolvedHtmlUnit(Source htmlSource) { | 2164 ht.HtmlUnit getResolvedHtmlUnit(Source htmlSource) { |
| 2158 SourceEntry sourceEntry = getReadableSourceEntryOrNull(htmlSource); | 2165 SourceEntry sourceEntry = getReadableSourceEntryOrNull(htmlSource); |
| 2159 if (sourceEntry is HtmlEntry) { | 2166 if (sourceEntry is HtmlEntry) { |
| 2160 HtmlEntry htmlEntry = sourceEntry; | 2167 HtmlEntry htmlEntry = sourceEntry; |
| 2161 return htmlEntry.getValue(HtmlEntry.RESOLVED_UNIT); | 2168 return htmlEntry.getValue(HtmlEntry.RESOLVED_UNIT); |
| 2162 } | 2169 } |
| 2163 return null; | 2170 return null; |
| 2164 } | 2171 } |
| 2165 | 2172 |
| 2166 @override | 2173 @override |
| 2174 List<Source> getSourcesWithFullName(String path) { | |
| 2175 List<Source> sources = <Source>[]; | |
| 2176 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); | |
| 2177 while (iterator.moveNext()) { | |
| 2178 if (iterator.key.fullName == path) { | |
| 2179 sources.add(iterator.key); | |
| 2180 } | |
| 2181 } | |
| 2182 return sources; | |
| 2183 } | |
| 2184 | |
| 2185 @override | |
| 2167 bool handleContentsChanged( | 2186 bool handleContentsChanged( |
| 2168 Source source, String originalContents, String newContents, bool notify) { | 2187 Source source, String originalContents, String newContents, bool notify) { |
| 2169 SourceEntry sourceEntry = _cache.get(source); | 2188 SourceEntry sourceEntry = _cache.get(source); |
| 2170 if (sourceEntry == null) { | 2189 if (sourceEntry == null) { |
| 2171 return false; | 2190 return false; |
| 2172 } | 2191 } |
| 2173 bool changed = newContents != originalContents; | 2192 bool changed = newContents != originalContents; |
| 2174 if (newContents != null) { | 2193 if (newContents != null) { |
| 2175 if (newContents != originalContents) { | 2194 if (newContents != originalContents) { |
| 2176 _incrementalAnalysisCache = | 2195 _incrementalAnalysisCache = |
| (...skipping 441 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2618 } | 2637 } |
| 2619 callback(librarySource, sourceEntry, descriptor, | 2638 callback(librarySource, sourceEntry, descriptor, |
| 2620 sourceEntry.getStateInLibrary(descriptor, librarySource)); | 2639 sourceEntry.getStateInLibrary(descriptor, librarySource)); |
| 2621 } | 2640 } |
| 2622 } | 2641 } |
| 2623 } | 2642 } |
| 2624 } | 2643 } |
| 2625 } | 2644 } |
| 2626 | 2645 |
| 2627 /** | 2646 /** |
| 2628 * Return `true` if errors should be produced for the given [source]. The | |
| 2629 * [dartEntry] associated with the source is passed in for efficiency. | |
| 2630 */ | |
| 2631 bool _shouldErrorsBeAnalyzed(Source source, DartEntry dartEntry) { | |
| 2632 if (source.isInSystemLibrary) { | |
| 2633 return _generateSdkErrors; | |
| 2634 } else if (!dartEntry.explicitlyAdded) { | |
| 2635 return _generateImplicitErrors; | |
| 2636 } else { | |
| 2637 return true; | |
| 2638 } | |
| 2639 } | |
| 2640 | |
| 2641 /** | |
| 2642 * Visit all entries of the content cache. | 2647 * Visit all entries of the content cache. |
| 2643 */ | 2648 */ |
| 2644 void visitContentCache(ContentCacheVisitor visitor) { | 2649 void visitContentCache(ContentCacheVisitor visitor) { |
| 2645 _contentCache.accept(visitor); | 2650 _contentCache.accept(visitor); |
| 2646 } | 2651 } |
| 2647 | 2652 |
| 2648 /** | 2653 /** |
| 2649 * Record that we have accessed the AST structure associated with the given so urce. At the moment, | 2654 * Record that we have accessed the AST structure associated with the given so urce. At the moment, |
| 2650 * there is no differentiation between the parsed and resolved forms of the AS T. | 2655 * there is no differentiation between the parsed and resolved forms of the AS T. |
| 2651 * | 2656 * |
| (...skipping 1670 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4322 _workManager.add(source, SourcePriority.UNKNOWN); | 4327 _workManager.add(source, SourcePriority.UNKNOWN); |
| 4323 } | 4328 } |
| 4324 // reset unit in the notification, it is out of date now | 4329 // reset unit in the notification, it is out of date now |
| 4325 ChangeNoticeImpl notice = _pendingNotices[source]; | 4330 ChangeNoticeImpl notice = _pendingNotices[source]; |
| 4326 if (notice != null) { | 4331 if (notice != null) { |
| 4327 notice.resolvedDartUnit = null; | 4332 notice.resolvedDartUnit = null; |
| 4328 notice.resolvedHtmlUnit = null; | 4333 notice.resolvedHtmlUnit = null; |
| 4329 } | 4334 } |
| 4330 } | 4335 } |
| 4331 | 4336 |
| 4337 /** | |
| 4338 * Record the results produced by performing a [task] and return the cache | |
| 4339 * entry associated with the results. | |
| 4340 */ | |
| 4341 DartEntry _recordBuildUnitElementTask(BuildUnitElementTask task) { | |
| 4342 Source source = task.source; | |
| 4343 Source library = task.library; | |
| 4344 DartEntry dartEntry = _cache.get(source); | |
| 4345 CaughtException thrownException = task.exception; | |
| 4346 if (thrownException != null) { | |
| 4347 dartEntry.recordBuildElementErrorInLibrary(library, thrownException); | |
| 4348 throw new AnalysisException('<rethrow>', thrownException); | |
| 4349 } | |
| 4350 dartEntry.setValueInLibrary(DartEntry.BUILT_UNIT, library, task.unit); | |
| 4351 dartEntry.setValueInLibrary( | |
| 4352 DartEntry.BUILT_ELEMENT, library, task.unitElement); | |
| 4353 ChangeNoticeImpl notice = _getNotice(source); | |
| 4354 LineInfo lineInfo = dartEntry.getValue(SourceEntry.LINE_INFO); | |
| 4355 notice.setErrors(dartEntry.allErrors, lineInfo); | |
| 4356 return dartEntry; | |
| 4357 } | |
| 4358 | |
| 4332 // /** | 4359 // /** |
| 4333 // * Notify all of the analysis listeners that the given source is no longer i ncluded in the set of | 4360 // * Notify all of the analysis listeners that the given source is no longer i ncluded in the set of |
| 4334 // * sources that are being analyzed. | 4361 // * sources that are being analyzed. |
| 4335 // * | 4362 // * |
| 4336 // * @param source the source that is no longer being analyzed | 4363 // * @param source the source that is no longer being analyzed |
| 4337 // */ | 4364 // */ |
| 4338 // void _notifyExcludedSource(Source source) { | 4365 // void _notifyExcludedSource(Source source) { |
| 4339 // int count = _listeners.length; | 4366 // int count = _listeners.length; |
| 4340 // for (int i = 0; i < count; i++) { | 4367 // for (int i = 0; i < count; i++) { |
| 4341 // _listeners[i].excludedSource(this, source); | 4368 // _listeners[i].excludedSource(this, source); |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4401 // * @param unit the result of resolving the source | 4428 // * @param unit the result of resolving the source |
| 4402 // */ | 4429 // */ |
| 4403 // void _notifyResolvedHtml(Source source, ht.HtmlUnit unit) { | 4430 // void _notifyResolvedHtml(Source source, ht.HtmlUnit unit) { |
| 4404 // int count = _listeners.length; | 4431 // int count = _listeners.length; |
| 4405 // for (int i = 0; i < count; i++) { | 4432 // for (int i = 0; i < count; i++) { |
| 4406 // _listeners[i].resolvedHtml(this, source, unit); | 4433 // _listeners[i].resolvedHtml(this, source, unit); |
| 4407 // } | 4434 // } |
| 4408 // } | 4435 // } |
| 4409 | 4436 |
| 4410 /** | 4437 /** |
| 4411 * Record the results produced by performing a [task] and return the cache | |
| 4412 * entry associated with the results. | |
| 4413 */ | |
| 4414 DartEntry _recordBuildUnitElementTask(BuildUnitElementTask task) { | |
| 4415 Source source = task.source; | |
| 4416 Source library = task.library; | |
| 4417 DartEntry dartEntry = _cache.get(source); | |
| 4418 CaughtException thrownException = task.exception; | |
| 4419 if (thrownException != null) { | |
| 4420 dartEntry.recordBuildElementErrorInLibrary(library, thrownException); | |
| 4421 throw new AnalysisException('<rethrow>', thrownException); | |
| 4422 } | |
| 4423 dartEntry.setValueInLibrary(DartEntry.BUILT_UNIT, library, task.unit); | |
| 4424 dartEntry.setValueInLibrary( | |
| 4425 DartEntry.BUILT_ELEMENT, library, task.unitElement); | |
| 4426 ChangeNoticeImpl notice = _getNotice(source); | |
| 4427 LineInfo lineInfo = dartEntry.getValue(SourceEntry.LINE_INFO); | |
| 4428 notice.setErrors(dartEntry.allErrors, lineInfo); | |
| 4429 return dartEntry; | |
| 4430 } | |
| 4431 | |
| 4432 /** | |
| 4433 * Given a cache entry and a library element, record the library element and o ther information | 4438 * Given a cache entry and a library element, record the library element and o ther information |
| 4434 * gleaned from the element in the cache entry. | 4439 * gleaned from the element in the cache entry. |
| 4435 * | 4440 * |
| 4436 * @param dartCopy the cache entry in which data is to be recorded | 4441 * @param dartCopy the cache entry in which data is to be recorded |
| 4437 * @param library the library element used to record information | 4442 * @param library the library element used to record information |
| 4438 * @param librarySource the source for the library used to record information | 4443 * @param librarySource the source for the library used to record information |
| 4439 * @param htmlSource the source for the HTML library | 4444 * @param htmlSource the source for the HTML library |
| 4440 */ | 4445 */ |
| 4441 void _recordElementData(DartEntry dartEntry, LibraryElement library, | 4446 void _recordElementData(DartEntry dartEntry, LibraryElement library, |
| 4442 Source librarySource, Source htmlSource) { | 4447 Source librarySource, Source htmlSource) { |
| (...skipping 375 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4818 if (_priorityOrder[i] != source) { | 4823 if (_priorityOrder[i] != source) { |
| 4819 newOrder.add(_priorityOrder[i]); | 4824 newOrder.add(_priorityOrder[i]); |
| 4820 } | 4825 } |
| 4821 } | 4826 } |
| 4822 if (newOrder.length < count) { | 4827 if (newOrder.length < count) { |
| 4823 analysisPriorityOrder = newOrder; | 4828 analysisPriorityOrder = newOrder; |
| 4824 } | 4829 } |
| 4825 } | 4830 } |
| 4826 | 4831 |
| 4827 /** | 4832 /** |
| 4833 * Return `true` if errors should be produced for the given [source]. The | |
| 4834 * [dartEntry] associated with the source is passed in for efficiency. | |
| 4835 */ | |
| 4836 bool _shouldErrorsBeAnalyzed(Source source, DartEntry dartEntry) { | |
| 4837 if (source.isInSystemLibrary) { | |
| 4838 return _generateSdkErrors; | |
| 4839 } else if (!dartEntry.explicitlyAdded) { | |
| 4840 return _generateImplicitErrors; | |
| 4841 } else { | |
| 4842 return true; | |
| 4843 } | |
| 4844 } | |
| 4845 | |
| 4846 /** | |
| 4828 * Create an entry for the newly added [source] and invalidate any sources | 4847 * Create an entry for the newly added [source] and invalidate any sources |
| 4829 * that referenced the source before it existed. | 4848 * that referenced the source before it existed. |
| 4830 * | 4849 * |
| 4831 * <b>Note:</b> This method must only be invoked while we are synchronized on | 4850 * <b>Note:</b> This method must only be invoked while we are synchronized on |
| 4832 * [cacheLock]. | 4851 * [cacheLock]. |
| 4833 */ | 4852 */ |
| 4834 void _sourceAvailable(Source source) { | 4853 void _sourceAvailable(Source source) { |
| 4835 SourceEntry sourceEntry = _cache.get(source); | 4854 SourceEntry sourceEntry = _cache.get(source); |
| 4836 if (sourceEntry == null) { | 4855 if (sourceEntry == null) { |
| 4837 sourceEntry = _createSourceEntry(source, true); | 4856 sourceEntry = _createSourceEntry(source, true); |
| (...skipping 2695 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7533 } | 7552 } |
| 7534 buffer.write(label); | 7553 buffer.write(label); |
| 7535 String prefix = " "; | 7554 String prefix = " "; |
| 7536 for (Source source in sources.keys.toSet()) { | 7555 for (Source source in sources.keys.toSet()) { |
| 7537 buffer.write(prefix); | 7556 buffer.write(prefix); |
| 7538 buffer.write(source.fullName); | 7557 buffer.write(source.fullName); |
| 7539 prefix = ", "; | 7558 prefix = ", "; |
| 7540 } | 7559 } |
| 7541 return true; | 7560 return true; |
| 7542 } | 7561 } |
| 7562 | |
| 7563 void changedAllSources(List<Source> sources) { | |
|
Paul Berry
2015/03/09 18:05:33
Was this added by mistake? It looks like it's not
Brian Wilkerson
2015/03/09 18:24:46
Yes. Thanks!
I added it when looking at the ineff
| |
| 7564 } | |
| 7543 } | 7565 } |
| 7544 | 7566 |
| 7545 /** | 7567 /** |
| 7546 * Instances of the class `ContentChange` represent a change to the content of a source. | 7568 * Instances of the class `ContentChange` represent a change to the content of a source. |
| 7547 */ | 7569 */ |
| 7548 class ChangeSet_ContentChange { | 7570 class ChangeSet_ContentChange { |
| 7549 /** | 7571 /** |
| 7550 * The new contents of the source. | 7572 * The new contents of the source. |
| 7551 */ | 7573 */ |
| 7552 final String contents; | 7574 final String contents; |
| (...skipping 4615 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 12168 visitElement(Element element) { | 12190 visitElement(Element element) { |
| 12169 if (element.id == _id) { | 12191 if (element.id == _id) { |
| 12170 result = element; | 12192 result = element; |
| 12171 throw new _ElementByIdFinderException(); | 12193 throw new _ElementByIdFinderException(); |
| 12172 } | 12194 } |
| 12173 super.visitElement(element); | 12195 super.visitElement(element); |
| 12174 } | 12196 } |
| 12175 } | 12197 } |
| 12176 | 12198 |
| 12177 class _ElementByIdFinderException {} | 12199 class _ElementByIdFinderException {} |
| OLD | NEW |