| 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 1025 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1036 @override | 1036 @override |
| 1037 void set analysisOptions(AnalysisOptions options) { | 1037 void set analysisOptions(AnalysisOptions options) { |
| 1038 bool needsRecompute = this._options.analyzeFunctionBodiesPredicate != | 1038 bool needsRecompute = this._options.analyzeFunctionBodiesPredicate != |
| 1039 options.analyzeFunctionBodiesPredicate || | 1039 options.analyzeFunctionBodiesPredicate || |
| 1040 this._options.generateImplicitErrors != | 1040 this._options.generateImplicitErrors != |
| 1041 options.generateImplicitErrors || | 1041 options.generateImplicitErrors || |
| 1042 this._options.generateSdkErrors != options.generateSdkErrors || | 1042 this._options.generateSdkErrors != options.generateSdkErrors || |
| 1043 this._options.dart2jsHint != options.dart2jsHint || | 1043 this._options.dart2jsHint != options.dart2jsHint || |
| 1044 (this._options.hint && !options.hint) || | 1044 (this._options.hint && !options.hint) || |
| 1045 this._options.preserveComments != options.preserveComments || | 1045 this._options.preserveComments != options.preserveComments || |
| 1046 this._options.enableNullAwareOperators != |
| 1047 options.enableNullAwareOperators || |
| 1046 this._options.enableStrictCallChecks != options.enableStrictCallChecks; | 1048 this._options.enableStrictCallChecks != options.enableStrictCallChecks; |
| 1047 int cacheSize = options.cacheSize; | 1049 int cacheSize = options.cacheSize; |
| 1048 if (this._options.cacheSize != cacheSize) { | 1050 if (this._options.cacheSize != cacheSize) { |
| 1049 this._options.cacheSize = cacheSize; | 1051 this._options.cacheSize = cacheSize; |
| 1050 //cache.setMaxCacheSize(cacheSize); | 1052 //cache.setMaxCacheSize(cacheSize); |
| 1051 _privatePartition.maxCacheSize = cacheSize; | 1053 _privatePartition.maxCacheSize = cacheSize; |
| 1052 // | 1054 // |
| 1053 // Cap the size of the priority list to being less than the cache size. | 1055 // Cap the size of the priority list to being less than the cache size. |
| 1054 // Failure to do so can result in an infinite loop in | 1056 // Failure to do so can result in an infinite loop in |
| 1055 // performAnalysisTask() because re-caching one AST structure | 1057 // performAnalysisTask() because re-caching one AST structure |
| 1056 // can cause another priority source's AST structure to be flushed. | 1058 // can cause another priority source's AST structure to be flushed. |
| 1057 // | 1059 // |
| 1058 // TODO(brianwilkerson) Remove this constraint when the new task model is | 1060 // TODO(brianwilkerson) Remove this constraint when the new task model is |
| 1059 // implemented. | 1061 // implemented. |
| 1060 // | 1062 // |
| 1061 int maxPriorityOrderSize = cacheSize - _PRIORITY_ORDER_SIZE_DELTA; | 1063 int maxPriorityOrderSize = cacheSize - _PRIORITY_ORDER_SIZE_DELTA; |
| 1062 if (_priorityOrder.length > maxPriorityOrderSize) { | 1064 if (_priorityOrder.length > maxPriorityOrderSize) { |
| 1063 _priorityOrder = _priorityOrder.sublist(0, maxPriorityOrderSize); | 1065 _priorityOrder = _priorityOrder.sublist(0, maxPriorityOrderSize); |
| 1064 } | 1066 } |
| 1065 } | 1067 } |
| 1066 this._options.analyzeFunctionBodiesPredicate = | 1068 this._options.analyzeFunctionBodiesPredicate = |
| 1067 options.analyzeFunctionBodiesPredicate; | 1069 options.analyzeFunctionBodiesPredicate; |
| 1068 this._options.generateImplicitErrors = options.generateImplicitErrors; | 1070 this._options.generateImplicitErrors = options.generateImplicitErrors; |
| 1069 this._options.generateSdkErrors = options.generateSdkErrors; | 1071 this._options.generateSdkErrors = options.generateSdkErrors; |
| 1070 this._options.dart2jsHint = options.dart2jsHint; | 1072 this._options.dart2jsHint = options.dart2jsHint; |
| 1073 this._options.enableNullAwareOperators = options.enableNullAwareOperators; |
| 1071 this._options.enableStrictCallChecks = options.enableStrictCallChecks; | 1074 this._options.enableStrictCallChecks = options.enableStrictCallChecks; |
| 1072 this._options.hint = options.hint; | 1075 this._options.hint = options.hint; |
| 1073 this._options.incremental = options.incremental; | 1076 this._options.incremental = options.incremental; |
| 1074 this._options.incrementalApi = options.incrementalApi; | 1077 this._options.incrementalApi = options.incrementalApi; |
| 1075 this._options.incrementalValidation = options.incrementalValidation; | 1078 this._options.incrementalValidation = options.incrementalValidation; |
| 1076 this._options.lint = options.lint; | 1079 this._options.lint = options.lint; |
| 1077 this._options.preserveComments = options.preserveComments; | 1080 this._options.preserveComments = options.preserveComments; |
| 1078 _generateImplicitErrors = options.generateImplicitErrors; | 1081 _generateImplicitErrors = options.generateImplicitErrors; |
| 1079 _generateSdkErrors = options.generateSdkErrors; | 1082 _generateSdkErrors = options.generateSdkErrors; |
| 1080 if (needsRecompute) { | 1083 if (needsRecompute) { |
| (...skipping 3575 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4656 // prepare the existing unit | 4659 // prepare the existing unit |
| 4657 CompilationUnit oldUnit = | 4660 CompilationUnit oldUnit = |
| 4658 getResolvedCompilationUnit2(unitSource, librarySource); | 4661 getResolvedCompilationUnit2(unitSource, librarySource); |
| 4659 if (oldUnit == null) { | 4662 if (oldUnit == null) { |
| 4660 return false; | 4663 return false; |
| 4661 } | 4664 } |
| 4662 // do resolution | 4665 // do resolution |
| 4663 Stopwatch perfCounter = new Stopwatch()..start(); | 4666 Stopwatch perfCounter = new Stopwatch()..start(); |
| 4664 PoorMansIncrementalResolver resolver = new PoorMansIncrementalResolver( | 4667 PoorMansIncrementalResolver resolver = new PoorMansIncrementalResolver( |
| 4665 typeProvider, unitSource, dartEntry, oldUnit, | 4668 typeProvider, unitSource, dartEntry, oldUnit, |
| 4666 analysisOptions.incrementalApi); | 4669 analysisOptions.incrementalApi, analysisOptions); |
| 4667 bool success = resolver.resolve(newCode); | 4670 bool success = resolver.resolve(newCode); |
| 4668 AnalysisEngine.instance.instrumentationService.logPerformance( | 4671 AnalysisEngine.instance.instrumentationService.logPerformance( |
| 4669 AnalysisPerformanceKind.INCREMENTAL, perfCounter, | 4672 AnalysisPerformanceKind.INCREMENTAL, perfCounter, |
| 4670 'success=$success,context_id=$_id,code_length=${newCode.length}'); | 4673 'success=$success,context_id=$_id,code_length=${newCode.length}'); |
| 4671 if (!success) { | 4674 if (!success) { |
| 4672 return false; | 4675 return false; |
| 4673 } | 4676 } |
| 4674 // if validation, remember the result, but throw it away | 4677 // if validation, remember the result, but throw it away |
| 4675 if (analysisOptions.incrementalValidation) { | 4678 if (analysisOptions.incrementalValidation) { |
| 4676 incrementalResolutionValidation_lastUnitSource = oldUnit.element.source; | 4679 incrementalResolutionValidation_lastUnitSource = oldUnit.element.source; |
| (...skipping 1310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5987 @deprecated // Always true | 5990 @deprecated // Always true |
| 5988 bool get enableDeferredLoading; | 5991 bool get enableDeferredLoading; |
| 5989 | 5992 |
| 5990 /** | 5993 /** |
| 5991 * Return `true` if analysis is to include the new enum support. | 5994 * Return `true` if analysis is to include the new enum support. |
| 5992 */ | 5995 */ |
| 5993 @deprecated // Always true | 5996 @deprecated // Always true |
| 5994 bool get enableEnum; | 5997 bool get enableEnum; |
| 5995 | 5998 |
| 5996 /** | 5999 /** |
| 6000 * Return `true` to enable null-aware operators (DEP 9). |
| 6001 */ |
| 6002 bool get enableNullAwareOperators; |
| 6003 |
| 6004 /** |
| 5997 * Return `true` to strictly follow the specification when generating | 6005 * Return `true` to strictly follow the specification when generating |
| 5998 * warnings on "call" methods (fixes dartbug.com/21938). | 6006 * warnings on "call" methods (fixes dartbug.com/21938). |
| 5999 */ | 6007 */ |
| 6000 bool get enableStrictCallChecks; | 6008 bool get enableStrictCallChecks; |
| 6001 | 6009 |
| 6002 /** | 6010 /** |
| 6003 * Return `true` if errors, warnings and hints should be generated for sources | 6011 * Return `true` if errors, warnings and hints should be generated for sources |
| 6004 * that are implicitly being analyzed. The default value is `true`. | 6012 * that are implicitly being analyzed. The default value is `true`. |
| 6005 */ | 6013 */ |
| 6006 bool get generateImplicitErrors; | 6014 bool get generateImplicitErrors; |
| (...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6080 */ | 6088 */ |
| 6081 int cacheSize = DEFAULT_CACHE_SIZE; | 6089 int cacheSize = DEFAULT_CACHE_SIZE; |
| 6082 | 6090 |
| 6083 /** | 6091 /** |
| 6084 * A flag indicating whether analysis is to generate dart2js related hint | 6092 * A flag indicating whether analysis is to generate dart2js related hint |
| 6085 * results. | 6093 * results. |
| 6086 */ | 6094 */ |
| 6087 bool dart2jsHint = true; | 6095 bool dart2jsHint = true; |
| 6088 | 6096 |
| 6089 /** | 6097 /** |
| 6098 * A flag indicating whether null-aware operators should be parsed (DEP 9). |
| 6099 */ |
| 6100 bool enableNullAwareOperators = false; |
| 6101 |
| 6102 /** |
| 6090 * A flag indicating whether analysis is to strictly follow the specification | 6103 * A flag indicating whether analysis is to strictly follow the specification |
| 6091 * when generating warnings on "call" methods (fixes dartbug.com/21938). | 6104 * when generating warnings on "call" methods (fixes dartbug.com/21938). |
| 6092 */ | 6105 */ |
| 6093 bool enableStrictCallChecks = false; | 6106 bool enableStrictCallChecks = false; |
| 6094 | 6107 |
| 6095 /** | 6108 /** |
| 6096 * A flag indicating whether errors, warnings and hints should be generated | 6109 * A flag indicating whether errors, warnings and hints should be generated |
| 6097 * for sources that are implicitly being analyzed. | 6110 * for sources that are implicitly being analyzed. |
| 6098 */ | 6111 */ |
| 6099 bool generateImplicitErrors = true; | 6112 bool generateImplicitErrors = true; |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6144 AnalysisOptionsImpl(); | 6157 AnalysisOptionsImpl(); |
| 6145 | 6158 |
| 6146 /** | 6159 /** |
| 6147 * Initialize a newly created set of analysis options to have the same values | 6160 * Initialize a newly created set of analysis options to have the same values |
| 6148 * as those in the given set of analysis [options]. | 6161 * as those in the given set of analysis [options]. |
| 6149 */ | 6162 */ |
| 6150 AnalysisOptionsImpl.con1(AnalysisOptions options) { | 6163 AnalysisOptionsImpl.con1(AnalysisOptions options) { |
| 6151 analyzeFunctionBodiesPredicate = options.analyzeFunctionBodiesPredicate; | 6164 analyzeFunctionBodiesPredicate = options.analyzeFunctionBodiesPredicate; |
| 6152 cacheSize = options.cacheSize; | 6165 cacheSize = options.cacheSize; |
| 6153 dart2jsHint = options.dart2jsHint; | 6166 dart2jsHint = options.dart2jsHint; |
| 6167 enableNullAwareOperators = options.enableNullAwareOperators; |
| 6154 enableStrictCallChecks = options.enableStrictCallChecks; | 6168 enableStrictCallChecks = options.enableStrictCallChecks; |
| 6155 generateImplicitErrors = options.generateImplicitErrors; | 6169 generateImplicitErrors = options.generateImplicitErrors; |
| 6156 generateSdkErrors = options.generateSdkErrors; | 6170 generateSdkErrors = options.generateSdkErrors; |
| 6157 hint = options.hint; | 6171 hint = options.hint; |
| 6158 incremental = options.incremental; | 6172 incremental = options.incremental; |
| 6159 incrementalApi = options.incrementalApi; | 6173 incrementalApi = options.incrementalApi; |
| 6160 incrementalValidation = options.incrementalValidation; | 6174 incrementalValidation = options.incrementalValidation; |
| 6161 lint = options.lint; | 6175 lint = options.lint; |
| 6162 preserveComments = options.preserveComments; | 6176 preserveComments = options.preserveComments; |
| 6163 } | 6177 } |
| (...skipping 2783 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8947 if (cache == null) { | 8961 if (cache == null) { |
| 8948 return; | 8962 return; |
| 8949 } | 8963 } |
| 8950 // Only handle small changes | 8964 // Only handle small changes |
| 8951 if (cache.oldLength > 0 || cache.newLength > 30) { | 8965 if (cache.oldLength > 0 || cache.newLength > 30) { |
| 8952 return; | 8966 return; |
| 8953 } | 8967 } |
| 8954 // Produce an updated token stream | 8968 // Produce an updated token stream |
| 8955 CharacterReader reader = new CharSequenceReader(cache.newContents); | 8969 CharacterReader reader = new CharSequenceReader(cache.newContents); |
| 8956 BooleanErrorListener errorListener = new BooleanErrorListener(); | 8970 BooleanErrorListener errorListener = new BooleanErrorListener(); |
| 8957 IncrementalScanner scanner = | 8971 IncrementalScanner scanner = new IncrementalScanner( |
| 8958 new IncrementalScanner(cache.source, reader, errorListener); | 8972 cache.source, reader, errorListener, context.analysisOptions); |
| 8959 scanner.rescan(cache.resolvedUnit.beginToken, cache.offset, cache.oldLength, | 8973 scanner.rescan(cache.resolvedUnit.beginToken, cache.offset, cache.oldLength, |
| 8960 cache.newLength); | 8974 cache.newLength); |
| 8961 if (errorListener.errorReported) { | 8975 if (errorListener.errorReported) { |
| 8962 return; | 8976 return; |
| 8963 } | 8977 } |
| 8964 // Produce an updated AST | 8978 // Produce an updated AST |
| 8965 IncrementalParser parser = new IncrementalParser( | 8979 IncrementalParser parser = new IncrementalParser( |
| 8966 cache.source, scanner.tokenMap, AnalysisErrorListener.NULL_LISTENER); | 8980 cache.source, scanner.tokenMap, AnalysisErrorListener.NULL_LISTENER); |
| 8967 _updatedUnit = parser.reparse(cache.resolvedUnit, scanner.leftToken, | 8981 _updatedUnit = parser.reparse(cache.resolvedUnit, scanner.leftToken, |
| 8968 scanner.rightToken, cache.offset, cache.offset + cache.oldLength); | 8982 scanner.rightToken, cache.offset, cache.offset + cache.oldLength); |
| (...skipping 572 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9541 accept(AnalysisTaskVisitor visitor) => visitor.visitParseHtmlTask(this); | 9555 accept(AnalysisTaskVisitor visitor) => visitor.visitParseHtmlTask(this); |
| 9542 | 9556 |
| 9543 @override | 9557 @override |
| 9544 void internalPerform() { | 9558 void internalPerform() { |
| 9545 try { | 9559 try { |
| 9546 ht.AbstractScanner scanner = new ht.StringScanner(source, _content); | 9560 ht.AbstractScanner scanner = new ht.StringScanner(source, _content); |
| 9547 scanner.passThroughElements = <String>[_TAG_SCRIPT]; | 9561 scanner.passThroughElements = <String>[_TAG_SCRIPT]; |
| 9548 ht.Token token = scanner.tokenize(); | 9562 ht.Token token = scanner.tokenize(); |
| 9549 _lineInfo = new LineInfo(scanner.lineStarts); | 9563 _lineInfo = new LineInfo(scanner.lineStarts); |
| 9550 RecordingErrorListener errorListener = new RecordingErrorListener(); | 9564 RecordingErrorListener errorListener = new RecordingErrorListener(); |
| 9551 _unit = new ht.HtmlParser(source, errorListener).parse(token, _lineInfo); | 9565 _unit = new ht.HtmlParser(source, errorListener, context.analysisOptions) |
| 9566 .parse(token, _lineInfo); |
| 9552 _unit.accept(new RecursiveXmlVisitor_ParseHtmlTask_internalPerform( | 9567 _unit.accept(new RecursiveXmlVisitor_ParseHtmlTask_internalPerform( |
| 9553 this, errorListener)); | 9568 this, errorListener)); |
| 9554 _errors = errorListener.getErrorsForSource(source); | 9569 _errors = errorListener.getErrorsForSource(source); |
| 9555 _referencedLibraries = librarySources; | 9570 _referencedLibraries = librarySources; |
| 9556 } catch (exception, stackTrace) { | 9571 } catch (exception, stackTrace) { |
| 9557 throw new AnalysisException( | 9572 throw new AnalysisException( |
| 9558 "Exception", new CaughtException(exception, stackTrace)); | 9573 "Exception", new CaughtException(exception, stackTrace)); |
| 9559 } | 9574 } |
| 9560 } | 9575 } |
| 9561 | 9576 |
| (...skipping 1212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10774 accept(AnalysisTaskVisitor visitor) => visitor.visitScanDartTask(this); | 10789 accept(AnalysisTaskVisitor visitor) => visitor.visitScanDartTask(this); |
| 10775 | 10790 |
| 10776 @override | 10791 @override |
| 10777 void internalPerform() { | 10792 void internalPerform() { |
| 10778 PerformanceStatistics.scan.makeCurrentWhile(() { | 10793 PerformanceStatistics.scan.makeCurrentWhile(() { |
| 10779 RecordingErrorListener errorListener = new RecordingErrorListener(); | 10794 RecordingErrorListener errorListener = new RecordingErrorListener(); |
| 10780 try { | 10795 try { |
| 10781 Scanner scanner = new Scanner( | 10796 Scanner scanner = new Scanner( |
| 10782 source, new CharSequenceReader(_content), errorListener); | 10797 source, new CharSequenceReader(_content), errorListener); |
| 10783 scanner.preserveComments = context.analysisOptions.preserveComments; | 10798 scanner.preserveComments = context.analysisOptions.preserveComments; |
| 10799 scanner.enableNullAwareOperators = |
| 10800 context.analysisOptions.enableNullAwareOperators; |
| 10784 _tokenStream = scanner.tokenize(); | 10801 _tokenStream = scanner.tokenize(); |
| 10785 _lineInfo = new LineInfo(scanner.lineStarts); | 10802 _lineInfo = new LineInfo(scanner.lineStarts); |
| 10786 _errors = errorListener.getErrorsForSource(source); | 10803 _errors = errorListener.getErrorsForSource(source); |
| 10787 } catch (exception, stackTrace) { | 10804 } catch (exception, stackTrace) { |
| 10788 throw new AnalysisException( | 10805 throw new AnalysisException( |
| 10789 "Exception", new CaughtException(exception, stackTrace)); | 10806 "Exception", new CaughtException(exception, stackTrace)); |
| 10790 } | 10807 } |
| 10791 }); | 10808 }); |
| 10792 } | 10809 } |
| 10793 } | 10810 } |
| (...skipping 849 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11643 visitElement(Element element) { | 11660 visitElement(Element element) { |
| 11644 if (element.id == _id) { | 11661 if (element.id == _id) { |
| 11645 result = element; | 11662 result = element; |
| 11646 throw new _ElementByIdFinderException(); | 11663 throw new _ElementByIdFinderException(); |
| 11647 } | 11664 } |
| 11648 super.visitElement(element); | 11665 super.visitElement(element); |
| 11649 } | 11666 } |
| 11650 } | 11667 } |
| 11651 | 11668 |
| 11652 class _ElementByIdFinderException {} | 11669 class _ElementByIdFinderException {} |
| OLD | NEW |