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 library analyzer.src.generated.engine; | 5 library analyzer.src.generated.engine; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'dart:collection'; | 8 import 'dart:collection'; |
| 9 | 9 |
| 10 import 'package:analyzer/dart/ast/ast.dart'; | 10 import 'package:analyzer/dart/ast/ast.dart'; |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 507 * reference 'dart:html', either directly or indirectly). | 507 * reference 'dart:html', either directly or indirectly). |
| 508 * | 508 * |
| 509 * <b>Note:</b> In addition to the expected case of returning `false` if the | 509 * <b>Note:</b> In addition to the expected case of returning `false` if the |
| 510 * source is known to be a library that cannot be run on the server, this | 510 * source is known to be a library that cannot be run on the server, this |
| 511 * method will also return `false` if the source is not known to be a library | 511 * method will also return `false` if the source is not known to be a library |
| 512 * or if we do not know whether it can be run on the server. | 512 * or if we do not know whether it can be run on the server. |
| 513 */ | 513 */ |
| 514 bool isServerLibrary(Source librarySource); | 514 bool isServerLibrary(Source librarySource); |
| 515 | 515 |
| 516 /** | 516 /** |
| 517 * Return the stream that is notified when a result with the given | |
| 518 * [descriptor] is changed, e.g. computed or invalidated. | |
| 519 */ | |
| 520 Stream<ResultChangedEvent> onResultChanged(ResultDescriptor descriptor); | |
| 521 | |
| 522 /** | |
| 517 * Return the stream that is notified when a new value for the given | 523 * Return the stream that is notified when a new value for the given |
| 518 * [descriptor] is computed. | 524 * [descriptor] is computed. |
| 519 */ | 525 */ |
| 526 @deprecated | |
| 520 Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor); | 527 Stream<ComputedResult> onResultComputed(ResultDescriptor descriptor); |
| 521 | 528 |
| 522 /** | 529 /** |
| 523 * Parse the content of the given [source] to produce an AST structure. The | 530 * Parse the content of the given [source] to produce an AST structure. The |
| 524 * resulting AST structure may or may not be resolved, and may have a slightly | 531 * resulting AST structure may or may not be resolved, and may have a slightly |
| 525 * different structure depending upon whether it is resolved. | 532 * different structure depending upon whether it is resolved. |
| 526 * | 533 * |
| 527 * Throws an [AnalysisException] if the analysis could not be performed | 534 * Throws an [AnalysisException] if the analysis could not be performed |
| 528 * | 535 * |
| 529 * <b>Note:</b> This method cannot be used in an async environment. | 536 * <b>Note:</b> This method cannot be used in an async environment. |
| 530 */ | 537 */ |
| 531 CompilationUnit parseCompilationUnit(Source source); | 538 CompilationUnit parseCompilationUnit(Source source); |
| 532 | 539 |
| 533 /** | 540 /** |
| 534 * Parse a single HTML [source] to produce a document model. | 541 * Parse a single HTML [source] to produce a document model. |
| 535 * | 542 * |
| 536 * Throws an [AnalysisException] if the analysis could not be performed | 543 * Throws an [AnalysisException] if the analysis could not be performed |
| 537 * | 544 * |
| 538 * <b>Note:</b> This method cannot be used in an async environment. | 545 * <b>Note:</b> This method cannot be used in an async environment. |
| 539 */ | 546 */ |
| 540 Document parseHtmlDocument(Source source); | 547 Document parseHtmlDocument(Source source); |
| 541 | 548 |
| 542 /** | 549 /** |
| 543 * Perform the next unit of work required to keep the analysis results | 550 * Perform the next unit of work required to keep the analysis results |
| 544 * up-to-date and return information about the consequent changes to the | 551 * up-to-date and return information about the consequent changes to the |
| 545 * analysis results. This method can be long running. | 552 * analysis results. This method can be long running. |
| 546 * | 553 * |
| 547 * The implementation that uses the task model notifies subscribers of | 554 * The implementation that uses the task model notifies subscribers of |
| 548 * [onResultComputed] about computed results. | 555 * [onResultChanged] about computed results. |
| 549 * | 556 * |
| 550 * The following results are computed for Dart sources. | 557 * The following results are computed for Dart sources. |
| 551 * | 558 * |
| 552 * 1. For explicit and implicit sources: | 559 * 1. For explicit and implicit sources: |
| 553 * [PARSED_UNIT] | 560 * [PARSED_UNIT] |
| 554 * [RESOLVED_UNIT] | 561 * [RESOLVED_UNIT] |
| 555 * | 562 * |
| 556 * 2. For explicit sources: | 563 * 2. For explicit sources: |
| 557 * [DART_ERRORS]. | 564 * [DART_ERRORS]. |
| 558 * | 565 * |
| (...skipping 1275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1834 * number of characters in the original contents that were replaced. The | 1841 * number of characters in the original contents that were replaced. The |
| 1835 * [newLength] is the number of characters in the replacement text. | 1842 * [newLength] is the number of characters in the replacement text. |
| 1836 */ | 1843 */ |
| 1837 ChangeSet_ContentChange( | 1844 ChangeSet_ContentChange( |
| 1838 this.contents, this.offset, this.oldLength, this.newLength); | 1845 this.contents, this.offset, this.oldLength, this.newLength); |
| 1839 } | 1846 } |
| 1840 | 1847 |
| 1841 /** | 1848 /** |
| 1842 * [ComputedResult] describes a value computed for a [ResultDescriptor]. | 1849 * [ComputedResult] describes a value computed for a [ResultDescriptor]. |
| 1843 */ | 1850 */ |
| 1851 @deprecated | |
| 1844 class ComputedResult<V> { | 1852 class ComputedResult<V> { |
| 1845 /** | 1853 /** |
| 1846 * The context in which the value was computed. | 1854 * The context in which the value was computed. |
| 1847 */ | 1855 */ |
| 1848 final AnalysisContext context; | 1856 final AnalysisContext context; |
| 1849 | 1857 |
| 1850 /** | 1858 /** |
| 1851 * The descriptor of the result which was computed. | 1859 * The descriptor of the result which was computed. |
| 1852 */ | 1860 */ |
| 1853 final ResultDescriptor<V> descriptor; | 1861 final ResultDescriptor<V> descriptor; |
| 1854 | 1862 |
| 1855 /** | 1863 /** |
| 1856 * The target for which the result was computed. | 1864 * The target for which the result was computed. |
| 1857 */ | 1865 */ |
| 1858 final AnalysisTarget target; | 1866 final AnalysisTarget target; |
| 1859 | 1867 |
| 1860 /** | 1868 /** |
| 1861 * The computed value. | 1869 * The computed value. |
| 1862 */ | 1870 */ |
| 1863 final V value; | 1871 final V value; |
| 1864 | 1872 |
| 1865 ComputedResult(this.context, this.descriptor, this.target, this.value); | 1873 ComputedResult(this.context, this.descriptor, this.target, this.value); |
| 1866 | 1874 |
| 1867 @override | 1875 @override |
| 1868 String toString() => '$descriptor of $target in $context'; | 1876 String toString() => 'Computed $descriptor of $target in $context'; |
| 1869 } | 1877 } |
| 1870 | 1878 |
| 1871 /** | 1879 /** |
| 1872 * An event indicating when a source either starts or stops being implicitly | 1880 * An event indicating when a source either starts or stops being implicitly |
| 1873 * analyzed. | 1881 * analyzed. |
| 1874 */ | 1882 */ |
| 1875 class ImplicitAnalysisEvent { | 1883 class ImplicitAnalysisEvent { |
| 1876 /** | 1884 /** |
| 1877 * The source whose status has changed. | 1885 * The source whose status has changed. |
| 1878 */ | 1886 */ |
| (...skipping 522 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2401 * Remove any resolution information from the given AST structure. | 2409 * Remove any resolution information from the given AST structure. |
| 2402 */ | 2410 */ |
| 2403 static void erase(AstNode node, {bool eraseDeclarations: true}) { | 2411 static void erase(AstNode node, {bool eraseDeclarations: true}) { |
| 2404 ResolutionEraser eraser = new ResolutionEraser(); | 2412 ResolutionEraser eraser = new ResolutionEraser(); |
| 2405 eraser.eraseDeclarations = eraseDeclarations; | 2413 eraser.eraseDeclarations = eraseDeclarations; |
| 2406 node.accept(eraser); | 2414 node.accept(eraser); |
| 2407 } | 2415 } |
| 2408 } | 2416 } |
| 2409 | 2417 |
| 2410 /** | 2418 /** |
| 2419 * [ResultChangedEvent] describes a change to an analysis result. | |
| 2420 */ | |
| 2421 class ResultChangedEvent<V> { | |
| 2422 /** | |
| 2423 * The context in which the result was changed. | |
| 2424 */ | |
| 2425 final AnalysisContext context; | |
| 2426 | |
| 2427 /** | |
| 2428 * The target for which the result was changed. | |
| 2429 */ | |
| 2430 final AnalysisTarget target; | |
| 2431 | |
| 2432 /** | |
| 2433 * The descriptor of the result which was changed. | |
| 2434 */ | |
| 2435 final ResultDescriptor<V> descriptor; | |
| 2436 | |
| 2437 /** | |
| 2438 * If the result [wasComputed], the new value of the result. If the result | |
| 2439 * [wasInvalidated], the value of before it was invalidated, may be the | |
| 2440 * default value if the result was flushed. | |
| 2441 */ | |
| 2442 final V value; | |
| 2443 | |
| 2444 /** | |
| 2445 * Is `true` if the result was computed, or `false` is is was invalidated. | |
| 2446 */ | |
| 2447 final bool _wasComputed; | |
| 2448 | |
| 2449 ResultChangedEvent(this.context, this.target, this.descriptor, this.value, | |
| 2450 this._wasComputed); | |
| 2451 | |
| 2452 /** | |
| 2453 * Returns `true` if the result was computed. | |
| 2454 */ | |
| 2455 bool get wasComputed => _wasComputed; | |
| 2456 | |
| 2457 /** | |
| 2458 * Returns `true` if the result was invalidated. | |
| 2459 */ | |
| 2460 bool get wasInvalidated => !_wasComputed; | |
| 2461 | |
| 2462 @override | |
| 2463 String toString() => '$descriptor of $target'; | |
|
Brian Wilkerson
2016/03/08 20:47:02
" in $context"?
scheglov
2016/03/08 20:53:46
Done.
| |
| 2464 } | |
| 2465 | |
| 2466 /** | |
| 2411 * [SourcesChangedEvent] indicates which sources have been added, removed, | 2467 * [SourcesChangedEvent] indicates which sources have been added, removed, |
| 2412 * or whose contents have changed. | 2468 * or whose contents have changed. |
| 2413 */ | 2469 */ |
| 2414 class SourcesChangedEvent { | 2470 class SourcesChangedEvent { |
| 2415 /** | 2471 /** |
| 2416 * The internal representation of what has changed. Clients should not access | 2472 * The internal representation of what has changed. Clients should not access |
| 2417 * this field directly. | 2473 * this field directly. |
| 2418 */ | 2474 */ |
| 2419 final ChangeSet _changeSet; | 2475 final ChangeSet _changeSet; |
| 2420 | 2476 |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2479 * The data that was created from the source. | 2535 * The data that was created from the source. |
| 2480 */ | 2536 */ |
| 2481 final E data; | 2537 final E data; |
| 2482 | 2538 |
| 2483 /** | 2539 /** |
| 2484 * Initialize a newly created holder to associate the given [data] with the | 2540 * Initialize a newly created holder to associate the given [data] with the |
| 2485 * given [modificationTime]. | 2541 * given [modificationTime]. |
| 2486 */ | 2542 */ |
| 2487 TimestampedData(this.modificationTime, this.data); | 2543 TimestampedData(this.modificationTime, this.data); |
| 2488 } | 2544 } |
| OLD | NEW |