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:collection'; | 10 import 'dart:collection'; |
| (...skipping 1142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1153 ListUtilities.addAll(errors, _getDartHintData(source, librarySourc e, dartEntry, DartEntry.HINTS)); | 1153 ListUtilities.addAll(errors, _getDartHintData(source, librarySourc e, dartEntry, DartEntry.HINTS)); |
| 1154 } | 1154 } |
| 1155 } | 1155 } |
| 1156 } | 1156 } |
| 1157 } on ObsoleteSourceAnalysisException catch (exception) { | 1157 } on ObsoleteSourceAnalysisException catch (exception) { |
| 1158 AnalysisEngine.instance.logger.logInformation2("Could not compute errors ", exception); | 1158 AnalysisEngine.instance.logger.logInformation2("Could not compute errors ", exception); |
| 1159 } | 1159 } |
| 1160 if (errors.isEmpty) { | 1160 if (errors.isEmpty) { |
| 1161 return AnalysisError.NO_ERRORS; | 1161 return AnalysisError.NO_ERRORS; |
| 1162 } | 1162 } |
| 1163 return new List.from(errors); | 1163 return errors; |
| 1164 } else if (sourceEntry is HtmlEntry) { | 1164 } else if (sourceEntry is HtmlEntry) { |
| 1165 HtmlEntry htmlEntry = sourceEntry; | 1165 HtmlEntry htmlEntry = sourceEntry; |
| 1166 try { | 1166 try { |
| 1167 return _getHtmlResolutionData2(source, htmlEntry, HtmlEntry.RESOLUTION_E RRORS); | 1167 return _getHtmlResolutionData2(source, htmlEntry, HtmlEntry.RESOLUTION_E RRORS); |
| 1168 } on ObsoleteSourceAnalysisException catch (exception) { | 1168 } on ObsoleteSourceAnalysisException catch (exception) { |
| 1169 AnalysisEngine.instance.logger.logInformation2("Could not compute errors ", exception); | 1169 AnalysisEngine.instance.logger.logInformation2("Could not compute errors ", exception); |
| 1170 } | 1170 } |
| 1171 } | 1171 } |
| 1172 return AnalysisError.NO_ERRORS; | 1172 return AnalysisError.NO_ERRORS; |
| 1173 } | 1173 } |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1375 htmlSources.add(iterator.key); | 1375 htmlSources.add(iterator.key); |
| 1376 } | 1376 } |
| 1377 } | 1377 } |
| 1378 } | 1378 } |
| 1379 } | 1379 } |
| 1380 break; | 1380 break; |
| 1381 } | 1381 } |
| 1382 if (htmlSources.isEmpty) { | 1382 if (htmlSources.isEmpty) { |
| 1383 return Source.EMPTY_ARRAY; | 1383 return Source.EMPTY_ARRAY; |
| 1384 } | 1384 } |
| 1385 return new List.from(htmlSources); | 1385 return htmlSources; |
| 1386 } | 1386 } |
| 1387 | 1387 |
| 1388 @override | 1388 @override |
| 1389 List<Source> get htmlSources => _getSources(SourceKind.HTML); | 1389 List<Source> get htmlSources => _getSources(SourceKind.HTML); |
| 1390 | 1390 |
| 1391 @override | 1391 @override |
| 1392 SourceKind getKindOf(Source source) { | 1392 SourceKind getKindOf(Source source) { |
| 1393 SourceEntry sourceEntry = _getReadableSourceEntryOrNull(source); | 1393 SourceEntry sourceEntry = _getReadableSourceEntryOrNull(source); |
| 1394 if (sourceEntry == null) { | 1394 if (sourceEntry == null) { |
| 1395 return SourceKind.UNKNOWN; | 1395 return SourceKind.UNKNOWN; |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 1406 while (iterator.moveNext()) { | 1406 while (iterator.moveNext()) { |
| 1407 Source source = iterator.key; | 1407 Source source = iterator.key; |
| 1408 SourceEntry sourceEntry = iterator.value; | 1408 SourceEntry sourceEntry = iterator.value; |
| 1409 if (sourceEntry.kind == SourceKind.LIBRARY && !source.isInSystemLibrary) { | 1409 if (sourceEntry.kind == SourceKind.LIBRARY && !source.isInSystemLibrary) { |
| 1410 // DartEntry dartEntry = (DartEntry) sourceEntry; | 1410 // DartEntry dartEntry = (DartEntry) sourceEntry; |
| 1411 // if (dartEntry.getValue(DartEntry.IS_LAUNCHABLE) && dartEntry .getValue(DartEntry.IS_CLIENT)) { | 1411 // if (dartEntry.getValue(DartEntry.IS_LAUNCHABLE) && dartEntry .getValue(DartEntry.IS_CLIENT)) { |
| 1412 sources.add(source); | 1412 sources.add(source); |
| 1413 // } | 1413 // } |
| 1414 } | 1414 } |
| 1415 } | 1415 } |
| 1416 return new List.from(sources); | 1416 return sources; |
| 1417 } | 1417 } |
| 1418 | 1418 |
| 1419 @override | 1419 @override |
| 1420 List<Source> get launchableServerLibrarySources { | 1420 List<Source> get launchableServerLibrarySources { |
| 1421 // TODO(brianwilkerson) This needs to filter out libraries that reference da rt:html, either | 1421 // TODO(brianwilkerson) This needs to filter out libraries that reference da rt:html, either |
| 1422 // directly or indirectly. | 1422 // directly or indirectly. |
| 1423 List<Source> sources = new List<Source>(); | 1423 List<Source> sources = new List<Source>(); |
| 1424 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); | 1424 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); |
| 1425 while (iterator.moveNext()) { | 1425 while (iterator.moveNext()) { |
| 1426 Source source = iterator.key; | 1426 Source source = iterator.key; |
| 1427 SourceEntry sourceEntry = iterator.value; | 1427 SourceEntry sourceEntry = iterator.value; |
| 1428 if (sourceEntry.kind == SourceKind.LIBRARY && !source.isInSystemLibrary) { | 1428 if (sourceEntry.kind == SourceKind.LIBRARY && !source.isInSystemLibrary) { |
| 1429 // DartEntry dartEntry = (DartEntry) sourceEntry; | 1429 // DartEntry dartEntry = (DartEntry) sourceEntry; |
| 1430 // if (dartEntry.getValue(DartEntry.IS_LAUNCHABLE) && !dartEntr y.getValue(DartEntry.IS_CLIENT)) { | 1430 // if (dartEntry.getValue(DartEntry.IS_LAUNCHABLE) && !dartEntr y.getValue(DartEntry.IS_CLIENT)) { |
| 1431 sources.add(source); | 1431 sources.add(source); |
| 1432 // } | 1432 // } |
| 1433 } | 1433 } |
| 1434 } | 1434 } |
| 1435 return new List.from(sources); | 1435 return sources; |
| 1436 } | 1436 } |
| 1437 | 1437 |
| 1438 @override | 1438 @override |
| 1439 List<Source> getLibrariesContaining(Source source) { | 1439 List<Source> getLibrariesContaining(Source source) { |
| 1440 SourceEntry sourceEntry = _getReadableSourceEntryOrNull(source); | 1440 SourceEntry sourceEntry = _getReadableSourceEntryOrNull(source); |
| 1441 if (sourceEntry is DartEntry) { | 1441 if (sourceEntry is DartEntry) { |
| 1442 return sourceEntry.containingLibraries; | 1442 return sourceEntry.containingLibraries; |
| 1443 } | 1443 } |
| 1444 return Source.EMPTY_ARRAY; | 1444 return Source.EMPTY_ARRAY; |
| 1445 } | 1445 } |
| 1446 | 1446 |
| 1447 @override | 1447 @override |
| 1448 List<Source> getLibrariesDependingOn(Source librarySource) { | 1448 List<Source> getLibrariesDependingOn(Source librarySource) { |
| 1449 List<Source> dependentLibraries = new List<Source>(); | 1449 List<Source> dependentLibraries = new List<Source>(); |
| 1450 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); | 1450 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); |
| 1451 while (iterator.moveNext()) { | 1451 while (iterator.moveNext()) { |
| 1452 SourceEntry sourceEntry = iterator.value; | 1452 SourceEntry sourceEntry = iterator.value; |
| 1453 if (sourceEntry.kind == SourceKind.LIBRARY) { | 1453 if (sourceEntry.kind == SourceKind.LIBRARY) { |
| 1454 if (_contains((sourceEntry as DartEntry).getValue(DartEntry.EXPORTED_LIB RARIES), librarySource)) { | 1454 if (_contains((sourceEntry as DartEntry).getValue(DartEntry.EXPORTED_LIB RARIES), librarySource)) { |
| 1455 dependentLibraries.add(iterator.key); | 1455 dependentLibraries.add(iterator.key); |
| 1456 } | 1456 } |
| 1457 if (_contains((sourceEntry as DartEntry).getValue(DartEntry.IMPORTED_LIB RARIES), librarySource)) { | 1457 if (_contains((sourceEntry as DartEntry).getValue(DartEntry.IMPORTED_LIB RARIES), librarySource)) { |
| 1458 dependentLibraries.add(iterator.key); | 1458 dependentLibraries.add(iterator.key); |
| 1459 } | 1459 } |
| 1460 } | 1460 } |
| 1461 } | 1461 } |
| 1462 if (dependentLibraries.isEmpty) { | 1462 if (dependentLibraries.isEmpty) { |
| 1463 return Source.EMPTY_ARRAY; | 1463 return Source.EMPTY_ARRAY; |
| 1464 } | 1464 } |
| 1465 return new List.from(dependentLibraries); | 1465 return dependentLibraries; |
| 1466 } | 1466 } |
| 1467 | 1467 |
| 1468 @override | 1468 @override |
| 1469 List<Source> getLibrariesReferencedFromHtml(Source htmlSource) { | 1469 List<Source> getLibrariesReferencedFromHtml(Source htmlSource) { |
| 1470 SourceEntry sourceEntry = _getReadableSourceEntryOrNull(htmlSource); | 1470 SourceEntry sourceEntry = _getReadableSourceEntryOrNull(htmlSource); |
| 1471 if (sourceEntry is HtmlEntry) { | 1471 if (sourceEntry is HtmlEntry) { |
| 1472 HtmlEntry htmlEntry = sourceEntry; | 1472 HtmlEntry htmlEntry = sourceEntry; |
| 1473 return htmlEntry.getValue(HtmlEntry.REFERENCED_LIBRARIES); | 1473 return htmlEntry.getValue(HtmlEntry.REFERENCED_LIBRARIES); |
| 1474 } | 1474 } |
| 1475 return Source.EMPTY_ARRAY; | 1475 return Source.EMPTY_ARRAY; |
| (...skipping 1895 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 3371 * @return all of the sources known to this context that have the given kind | 3371 * @return all of the sources known to this context that have the given kind |
| 3372 */ | 3372 */ |
| 3373 List<Source> _getSources(SourceKind kind) { | 3373 List<Source> _getSources(SourceKind kind) { |
| 3374 List<Source> sources = new List<Source>(); | 3374 List<Source> sources = new List<Source>(); |
| 3375 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); | 3375 MapIterator<Source, SourceEntry> iterator = _cache.iterator(); |
| 3376 while (iterator.moveNext()) { | 3376 while (iterator.moveNext()) { |
| 3377 if (iterator.value.kind == kind) { | 3377 if (iterator.value.kind == kind) { |
| 3378 sources.add(iterator.key); | 3378 sources.add(iterator.key); |
| 3379 } | 3379 } |
| 3380 } | 3380 } |
| 3381 return new List.from(sources); | 3381 return sources; |
| 3382 } | 3382 } |
| 3383 | 3383 |
| 3384 /** | 3384 /** |
| 3385 * Look at the given source to see whether a task needs to be performed relate d to it. If so, add | 3385 * Look at the given source to see whether a task needs to be performed relate d to it. If so, add |
| 3386 * the source to the set of sources that need to be processed. This method dup licates, and must | 3386 * the source to the set of sources that need to be processed. This method dup licates, and must |
| 3387 * therefore be kept in sync with, | 3387 * therefore be kept in sync with, |
| 3388 * [getNextAnalysisTask]. This method is intended to | 3388 * [getNextAnalysisTask]. This method is intended to |
| 3389 * be used for testing purposes only. | 3389 * be used for testing purposes only. |
| 3390 * | 3390 * |
| 3391 * <b>Note:</b> This method must only be invoked while we are synchronized on [cacheLock]. | 3391 * <b>Note:</b> This method must only be invoked while we are synchronized on [cacheLock]. |
| (...skipping 1308 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 4700 if (_taskData != null) { | 4700 if (_taskData != null) { |
| 4701 return; | 4701 return; |
| 4702 } | 4702 } |
| 4703 } | 4703 } |
| 4704 } | 4704 } |
| 4705 if (importedLibrary != null) { | 4705 if (importedLibrary != null) { |
| 4706 importedLibraries.add(importedLibrary); | 4706 importedLibraries.add(importedLibrary); |
| 4707 _dependencyGraph.addEdge(library, importedLibrary); | 4707 _dependencyGraph.addEdge(library, importedLibrary); |
| 4708 } | 4708 } |
| 4709 } | 4709 } |
| 4710 library.importedLibraries = new List.from(importedLibraries); | 4710 library.importedLibraries = importedLibraries; |
| 4711 } else { | 4711 } else { |
| 4712 library.explicitlyImportsCore = false; | 4712 library.explicitlyImportsCore = false; |
| 4713 ResolvableLibrary importedLibrary = _libraryMap[AnalysisContextImpl_this._ coreLibrarySource]; | 4713 ResolvableLibrary importedLibrary = _libraryMap[AnalysisContextImpl_this._ coreLibrarySource]; |
| 4714 if (importedLibrary == null) { | 4714 if (importedLibrary == null) { |
| 4715 importedLibrary = _createLibraryOrNull(AnalysisContextImpl_this._coreLib rarySource); | 4715 importedLibrary = _createLibraryOrNull(AnalysisContextImpl_this._coreLib rarySource); |
| 4716 if (importedLibrary != null) { | 4716 if (importedLibrary != null) { |
| 4717 _computeLibraryDependencies(importedLibrary); | 4717 _computeLibraryDependencies(importedLibrary); |
| 4718 if (_taskData != null) { | 4718 if (_taskData != null) { |
| 4719 return; | 4719 return; |
| 4720 } | 4720 } |
| (...skipping 17 matching lines...) Expand all Loading... | |
| 4738 if (_taskData != null) { | 4738 if (_taskData != null) { |
| 4739 return; | 4739 return; |
| 4740 } | 4740 } |
| 4741 } | 4741 } |
| 4742 } | 4742 } |
| 4743 if (exportedLibrary != null) { | 4743 if (exportedLibrary != null) { |
| 4744 exportedLibraries.add(exportedLibrary); | 4744 exportedLibraries.add(exportedLibrary); |
| 4745 _dependencyGraph.addEdge(library, exportedLibrary); | 4745 _dependencyGraph.addEdge(library, exportedLibrary); |
| 4746 } | 4746 } |
| 4747 } | 4747 } |
| 4748 library.exportedLibraries = new List.from(exportedLibraries); | 4748 library.exportedLibraries = exportedLibraries; |
| 4749 } | 4749 } |
| 4750 } | 4750 } |
| 4751 | 4751 |
| 4752 /** | 4752 /** |
| 4753 * Gather the resolvable AST structures for each of the compilation units in e ach of the | 4753 * Gather the resolvable AST structures for each of the compilation units in e ach of the |
| 4754 * libraries in the cycle. This is done in two phases: first we ensure that we have cached an | 4754 * libraries in the cycle. This is done in two phases: first we ensure that we have cached an |
| 4755 * AST structure for each compilation unit, then we gather them. We split the work this way | 4755 * AST structure for each compilation unit, then we gather them. We split the work this way |
| 4756 * because getting the AST structures can change the state of the cache in suc h a way that we | 4756 * because getting the AST structures can change the state of the cache in suc h a way that we |
| 4757 * would have more work to do if any compilation unit didn't have a resolvable AST structure. | 4757 * would have more work to do if any compilation unit didn't have a resolvable AST structure. |
| 4758 */ | 4758 */ |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 5094 | 5094 |
| 5095 HashSet<CaughtException> _exceptions = new HashSet<CaughtException>(); | 5095 HashSet<CaughtException> _exceptions = new HashSet<CaughtException>(); |
| 5096 | 5096 |
| 5097 List<AnalysisContextStatistics_PartitionData> _partitionData; | 5097 List<AnalysisContextStatistics_PartitionData> _partitionData; |
| 5098 | 5098 |
| 5099 void addSource(Source source) { | 5099 void addSource(Source source) { |
| 5100 _sources.add(source); | 5100 _sources.add(source); |
| 5101 } | 5101 } |
| 5102 | 5102 |
| 5103 @override | 5103 @override |
| 5104 List<AnalysisContextStatistics_CacheRow> get cacheRows { | 5104 List<AnalysisContextStatistics_CacheRow> get cacheRows |
| 5105 Iterable<AnalysisContextStatistics_CacheRow> items = _dataMap.values; | 5105 => new List.from(_dataMap.values); |
|
scheglov
2014/10/26 04:52:42
Or just _dataMap.values.toList()
sra1
2014/10/26 06:31:39
It is often better to use .toList() since it carri
Brian Wilkerson
2014/10/26 15:15:46
Thanks! I was wondering whether there was a reason
| |
| 5106 return new List.from(items); | |
| 5107 } | |
| 5108 | 5106 |
| 5109 @override | 5107 @override |
| 5110 List<CaughtException> get exceptions => new List.from(_exceptions); | 5108 List<CaughtException> get exceptions => new List.from(_exceptions); |
| 5111 | 5109 |
| 5112 @override | 5110 @override |
| 5113 List<AnalysisContextStatistics_PartitionData> get partitionData => _partitionD ata; | 5111 List<AnalysisContextStatistics_PartitionData> get partitionData => _partitionD ata; |
| 5114 | 5112 |
| 5115 @override | 5113 @override |
| 5116 List<Source> get sources => new List.from(_sources); | 5114 List<Source> get sources => _sources; |
| 5117 | 5115 |
| 5118 void putCacheItem(SourceEntry dartEntry, DataDescriptor descriptor) { | 5116 void putCacheItem(SourceEntry dartEntry, DataDescriptor descriptor) { |
| 5119 _internalPutCacheItem(dartEntry, descriptor, dartEntry.getState(descriptor)) ; | 5117 _internalPutCacheItem(dartEntry, descriptor, dartEntry.getState(descriptor)) ; |
| 5120 } | 5118 } |
| 5121 | 5119 |
| 5122 void putCacheItemInLibrary(DartEntry dartEntry, Source librarySource, DataDesc riptor descriptor) { | 5120 void putCacheItemInLibrary(DartEntry dartEntry, Source librarySource, DataDesc riptor descriptor) { |
| 5123 _internalPutCacheItem(dartEntry, descriptor, dartEntry.getStateInLibrary(des criptor, librarySource)); | 5121 _internalPutCacheItem(dartEntry, descriptor, dartEntry.getStateInLibrary(des criptor, librarySource)); |
| 5124 } | 5122 } |
| 5125 | 5123 |
| 5126 /** | 5124 /** |
| (...skipping 1606 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6733 } else if (startIndex + AngularMoustacheXmlExpression.OPENING_DELIMITER_LE NGTH < endIndex) { | 6731 } else if (startIndex + AngularMoustacheXmlExpression.OPENING_DELIMITER_LE NGTH < endIndex) { |
| 6734 startIndex += AngularMoustacheXmlExpression.OPENING_DELIMITER_LENGTH; | 6732 startIndex += AngularMoustacheXmlExpression.OPENING_DELIMITER_LENGTH; |
| 6735 AngularExpression expression = _parseAngularExpression(lexeme, startInde x, endIndex, offset); | 6733 AngularExpression expression = _parseAngularExpression(lexeme, startInde x, endIndex, offset); |
| 6736 expressions.add(new AngularMoustacheXmlExpression(startIndex, endIndex, expression)); | 6734 expressions.add(new AngularMoustacheXmlExpression(startIndex, endIndex, expression)); |
| 6737 } | 6735 } |
| 6738 startIndex = StringUtilities.indexOf2(lexeme, endIndex + AngularMoustacheX mlExpression.CLOSING_DELIMITER_LENGTH, AngularMoustacheXmlExpression.OPENING_DEL IMITER_CHAR, AngularMoustacheXmlExpression.OPENING_DELIMITER_CHAR); | 6736 startIndex = StringUtilities.indexOf2(lexeme, endIndex + AngularMoustacheX mlExpression.CLOSING_DELIMITER_LENGTH, AngularMoustacheXmlExpression.OPENING_DEL IMITER_CHAR, AngularMoustacheXmlExpression.OPENING_DELIMITER_CHAR); |
| 6739 } | 6737 } |
| 6740 } | 6738 } |
| 6741 | 6739 |
| 6742 void _parseEmbeddedExpressionsInAttribute(ht.XmlAttributeNode node) { | 6740 void _parseEmbeddedExpressionsInAttribute(ht.XmlAttributeNode node) { |
| 6743 List<AngularMoustacheXmlExpression> expressions = []; | 6741 List<AngularMoustacheXmlExpression> expressions = <AngularMoustacheXmlExpres sion>[]; |
| 6744 _parseEmbeddedExpressions(expressions, node.valueToken); | 6742 _parseEmbeddedExpressions(expressions, node.valueToken); |
| 6745 if (!expressions.isEmpty) { | 6743 if (!expressions.isEmpty) { |
| 6746 node.expressions = new List.from(expressions); | 6744 node.expressions = expressions; |
| 6747 } | 6745 } |
| 6748 } | 6746 } |
| 6749 | 6747 |
| 6750 void _parseEmbeddedExpressionsInTag(ht.XmlTagNode node) { | 6748 void _parseEmbeddedExpressionsInTag(ht.XmlTagNode node) { |
| 6751 List<AngularMoustacheXmlExpression> expressions = []; | 6749 List<AngularMoustacheXmlExpression> expressions = <AngularMoustacheXmlExpres sion>[]; |
| 6752 ht.Token token = node.attributeEnd; | 6750 ht.Token token = node.attributeEnd; |
| 6753 ht.Token endToken = node.endToken; | 6751 ht.Token endToken = node.endToken; |
| 6754 bool inChild = false; | 6752 bool inChild = false; |
| 6755 while (!identical(token, endToken)) { | 6753 while (!identical(token, endToken)) { |
| 6756 for (ht.XmlTagNode child in node.tagNodes) { | 6754 for (ht.XmlTagNode child in node.tagNodes) { |
| 6757 if (identical(token, child.beginToken)) { | 6755 if (identical(token, child.beginToken)) { |
| 6758 inChild = true; | 6756 inChild = true; |
| 6759 break; | 6757 break; |
| 6760 } | 6758 } |
| 6761 if (identical(token, child.endToken)) { | 6759 if (identical(token, child.endToken)) { |
| 6762 inChild = false; | 6760 inChild = false; |
| 6763 break; | 6761 break; |
| 6764 } | 6762 } |
| 6765 } | 6763 } |
| 6766 if (!inChild && token.type == ht.TokenType.TEXT) { | 6764 if (!inChild && token.type == ht.TokenType.TEXT) { |
| 6767 _parseEmbeddedExpressions(expressions, token); | 6765 _parseEmbeddedExpressions(expressions, token); |
| 6768 } | 6766 } |
| 6769 token = token.next; | 6767 token = token.next; |
| 6770 } | 6768 } |
| 6771 node.expressions = new List.from(expressions); | 6769 node.expressions = expressions; |
| 6772 } | 6770 } |
| 6773 | 6771 |
| 6774 void _recordDefinedVariable(LocalVariableElementImpl variable) { | 6772 void _recordDefinedVariable(LocalVariableElementImpl variable) { |
| 6775 _definedVariables.add(variable); | 6773 _definedVariables.add(variable); |
| 6776 _functionElement.localVariables = new List.from(_definedVariables); | 6774 _functionElement.localVariables = new List.from(_definedVariables); |
| 6777 } | 6775 } |
| 6778 | 6776 |
| 6779 /** | 6777 /** |
| 6780 * When we inject variable, we give access to the library of its type. | 6778 * When we inject variable, we give access to the library of its type. |
| 6781 */ | 6779 */ |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 6832 // define formatters | 6830 // define formatters |
| 6833 for (AngularElement angularElement in angularElements) { | 6831 for (AngularElement angularElement in angularElements) { |
| 6834 if (angularElement is AngularFormatterElement) { | 6832 if (angularElement is AngularFormatterElement) { |
| 6835 _defineTopVariable_forClassElement(angularElement); | 6833 _defineTopVariable_forClassElement(angularElement); |
| 6836 } | 6834 } |
| 6837 } | 6835 } |
| 6838 // run this HTML visitor | 6836 // run this HTML visitor |
| 6839 _unit.accept(this); | 6837 _unit.accept(this); |
| 6840 // simulate imports for injects | 6838 // simulate imports for injects |
| 6841 { | 6839 { |
| 6842 List<ImportElement> imports = []; | 6840 List<ImportElement> imports = <ImportElement>[]; |
| 6843 for (LibraryElement injectedLibrary in _injectedLibraries) { | 6841 for (LibraryElement injectedLibrary in _injectedLibraries) { |
| 6844 ImportElementImpl importElement = new ImportElementImpl(-1); | 6842 ImportElementImpl importElement = new ImportElementImpl(-1); |
| 6845 importElement.importedLibrary = injectedLibrary; | 6843 importElement.importedLibrary = injectedLibrary; |
| 6846 imports.add(importElement); | 6844 imports.add(importElement); |
| 6847 } | 6845 } |
| 6848 _libraryElement.imports = new List.from(imports); | 6846 _libraryElement.imports = imports; |
| 6849 } | 6847 } |
| 6850 } | 6848 } |
| 6851 | 6849 |
| 6852 void _resolveXmlExpression(AngularXmlExpression angularXmlExpression) { | 6850 void _resolveXmlExpression(AngularXmlExpression angularXmlExpression) { |
| 6853 AngularExpression angularExpression = angularXmlExpression.expression; | 6851 AngularExpression angularExpression = angularXmlExpression.expression; |
| 6854 _resolveExpression(angularExpression); | 6852 _resolveExpression(angularExpression); |
| 6855 } | 6853 } |
| 6856 | 6854 |
| 6857 List<Token> _splitAtBar(Token token) { | 6855 List<Token> _splitAtBar(Token token) { |
| 6858 List<Token> tokens = []; | 6856 List<Token> tokens = []; |
| (...skipping 1086 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 7945 while (state != null) { | 7943 while (state != null) { |
| 7946 errors.addAll(state.getValue(RESOLUTION_ERRORS)); | 7944 errors.addAll(state.getValue(RESOLUTION_ERRORS)); |
| 7947 errors.addAll(state.getValue(VERIFICATION_ERRORS)); | 7945 errors.addAll(state.getValue(VERIFICATION_ERRORS)); |
| 7948 errors.addAll(state.getValue(HINTS)); | 7946 errors.addAll(state.getValue(HINTS)); |
| 7949 state = state._nextState; | 7947 state = state._nextState; |
| 7950 } | 7948 } |
| 7951 errors.addAll(getValue(ANGULAR_ERRORS)); | 7949 errors.addAll(getValue(ANGULAR_ERRORS)); |
| 7952 if (errors.length == 0) { | 7950 if (errors.length == 0) { |
| 7953 return AnalysisError.NO_ERRORS; | 7951 return AnalysisError.NO_ERRORS; |
| 7954 } | 7952 } |
| 7955 return new List.from(errors); | 7953 return errors; |
| 7956 } | 7954 } |
| 7957 | 7955 |
| 7958 /** | 7956 /** |
| 7959 * Return a valid parsed compilation unit, either an unresolved AST structure | 7957 * Return a valid parsed compilation unit, either an unresolved AST structure |
| 7960 * or the result of resolving the AST structure in the context of some library , | 7958 * or the result of resolving the AST structure in the context of some library , |
| 7961 * or `null` if there is no parsed compilation unit available. | 7959 * or `null` if there is no parsed compilation unit available. |
| 7962 */ | 7960 */ |
| 7963 CompilationUnit get anyParsedCompilationUnit { | 7961 CompilationUnit get anyParsedCompilationUnit { |
| 7964 if (getState(PARSED_UNIT) == CacheState.VALID) { | 7962 if (getState(PARSED_UNIT) == CacheState.VALID) { |
| 7965 return getValue(PARSED_UNIT); | 7963 return getValue(PARSED_UNIT); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 8003 */ | 8001 */ |
| 8004 List<Source> get librariesContaining { | 8002 List<Source> get librariesContaining { |
| 8005 ResolutionState state = _resolutionState; | 8003 ResolutionState state = _resolutionState; |
| 8006 List<Source> result = new List<Source>(); | 8004 List<Source> result = new List<Source>(); |
| 8007 while (state != null) { | 8005 while (state != null) { |
| 8008 if (state._librarySource != null) { | 8006 if (state._librarySource != null) { |
| 8009 result.add(state._librarySource); | 8007 result.add(state._librarySource); |
| 8010 } | 8008 } |
| 8011 state = state._nextState; | 8009 state = state._nextState; |
| 8012 } | 8010 } |
| 8013 return new List.from(result); | 8011 return result; |
| 8014 } | 8012 } |
| 8015 | 8013 |
| 8016 /** | 8014 /** |
| 8017 * A compilation unit that has not been accessed by any other client and can | 8015 * A compilation unit that has not been accessed by any other client and can |
| 8018 * therefore safely be modified by the reconciler, or `null` if the source has | 8016 * therefore safely be modified by the reconciler, or `null` if the source has |
| 8019 * not been parsed. | 8017 * not been parsed. |
| 8020 */ | 8018 */ |
| 8021 CompilationUnit get resolvableCompilationUnit { | 8019 CompilationUnit get resolvableCompilationUnit { |
| 8022 if (getState(PARSED_UNIT) == CacheState.VALID) { | 8020 if (getState(PARSED_UNIT) == CacheState.VALID) { |
| 8023 CompilationUnit unit = getValue(PARSED_UNIT); | 8021 CompilationUnit unit = getValue(PARSED_UNIT); |
| (...skipping 3305 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11329 nameOffset = textOffset + index - 1; | 11327 nameOffset = textOffset + index - 1; |
| 11330 } | 11328 } |
| 11331 nameBuilder.appendChar(c); | 11329 nameBuilder.appendChar(c); |
| 11332 } | 11330 } |
| 11333 if (nameOffset != -1) { | 11331 if (nameOffset != -1) { |
| 11334 nameTokens.add(new PolymerHtmlUnitBuilder_NameToken(nameOffset, nameBuil der.toString())); | 11332 nameTokens.add(new PolymerHtmlUnitBuilder_NameToken(nameOffset, nameBuil der.toString())); |
| 11335 nameBuilder = new JavaStringBuilder(); | 11333 nameBuilder = new JavaStringBuilder(); |
| 11336 } | 11334 } |
| 11337 } | 11335 } |
| 11338 // create attributes for name tokens | 11336 // create attributes for name tokens |
| 11339 List<PolymerAttributeElement> attributes = []; | 11337 List<PolymerAttributeElement> attributes = <PolymerAttributeElement>[]; |
| 11340 Set<String> definedNames = new Set(); | 11338 Set<String> definedNames = new Set(); |
| 11341 ClassElement classElement = _dartElement.classElement; | 11339 ClassElement classElement = _dartElement.classElement; |
| 11342 for (PolymerHtmlUnitBuilder_NameToken nameToken in nameTokens) { | 11340 for (PolymerHtmlUnitBuilder_NameToken nameToken in nameTokens) { |
| 11343 int offset = nameToken._offset; | 11341 int offset = nameToken._offset; |
| 11344 // prepare name | 11342 // prepare name |
| 11345 String name = nameToken._value; | 11343 String name = nameToken._value; |
| 11346 if (!isValidAttributeName(name)) { | 11344 if (!isValidAttributeName(name)) { |
| 11347 _reportErrorForNameToken(nameToken, PolymerCode.INVALID_ATTRIBUTE_NAME, [name]); | 11345 _reportErrorForNameToken(nameToken, PolymerCode.INVALID_ATTRIBUTE_NAME, [name]); |
| 11348 continue; | 11346 continue; |
| 11349 } | 11347 } |
| 11350 if (!definedNames.add(name)) { | 11348 if (!definedNames.add(name)) { |
| 11351 _reportErrorForNameToken(nameToken, PolymerCode.DUPLICATE_ATTRIBUTE_DEFI NITION, [name]); | 11349 _reportErrorForNameToken(nameToken, PolymerCode.DUPLICATE_ATTRIBUTE_DEFI NITION, [name]); |
| 11352 continue; | 11350 continue; |
| 11353 } | 11351 } |
| 11354 // create attribute | 11352 // create attribute |
| 11355 PolymerAttributeElementImpl attribute = new PolymerAttributeElementImpl(na me, offset); | 11353 PolymerAttributeElementImpl attribute = new PolymerAttributeElementImpl(na me, offset); |
| 11356 attributes.add(attribute); | 11354 attributes.add(attribute); |
| 11357 // resolve field | 11355 // resolve field |
| 11358 FieldElement field = classElement.getField(name); | 11356 FieldElement field = classElement.getField(name); |
| 11359 if (field == null) { | 11357 if (field == null) { |
| 11360 _reportErrorForNameToken(nameToken, PolymerCode.UNDEFINED_ATTRIBUTE_FIEL D, [name, classElement.displayName]); | 11358 _reportErrorForNameToken(nameToken, PolymerCode.UNDEFINED_ATTRIBUTE_FIEL D, [name, classElement.displayName]); |
| 11361 continue; | 11359 continue; |
| 11362 } | 11360 } |
| 11363 if (!_isPublishedField(field)) { | 11361 if (!_isPublishedField(field)) { |
| 11364 _reportErrorForNameToken(nameToken, PolymerCode.ATTRIBUTE_FIELD_NOT_PUBL ISHED, [name, classElement.displayName]); | 11362 _reportErrorForNameToken(nameToken, PolymerCode.ATTRIBUTE_FIELD_NOT_PUBL ISHED, [name, classElement.displayName]); |
| 11365 } | 11363 } |
| 11366 attribute.field = field; | 11364 attribute.field = field; |
| 11367 } | 11365 } |
| 11368 _htmlElement.attributes = new List.from(attributes); | 11366 _htmlElement.attributes = attributes; |
| 11369 } | 11367 } |
| 11370 | 11368 |
| 11371 void _createTagHtmlElement(ht.XmlTagNode node) { | 11369 void _createTagHtmlElement(ht.XmlTagNode node) { |
| 11372 this._elementNode = node; | 11370 this._elementNode = node; |
| 11373 this._elementName = null; | 11371 this._elementName = null; |
| 11374 this._htmlElement = null; | 11372 this._htmlElement = null; |
| 11375 this._dartElement = null; | 11373 this._dartElement = null; |
| 11376 // prepare 'name' attribute | 11374 // prepare 'name' attribute |
| 11377 ht.XmlAttributeNode nameAttribute = node.getAttribute("name"); | 11375 ht.XmlAttributeNode nameAttribute = node.getAttribute("name"); |
| 11378 if (nameAttribute == null) { | 11376 if (nameAttribute == null) { |
| (...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 11636 List<AnalysisError> get errors { | 11634 List<AnalysisError> get errors { |
| 11637 Iterable<MapEntry<Source, HashSet<AnalysisError>>> entrySet = getMapEntrySet (_errors); | 11635 Iterable<MapEntry<Source, HashSet<AnalysisError>>> entrySet = getMapEntrySet (_errors); |
| 11638 int numEntries = entrySet.length; | 11636 int numEntries = entrySet.length; |
| 11639 if (numEntries == 0) { | 11637 if (numEntries == 0) { |
| 11640 return AnalysisError.NO_ERRORS; | 11638 return AnalysisError.NO_ERRORS; |
| 11641 } | 11639 } |
| 11642 List<AnalysisError> resultList = new List<AnalysisError>(); | 11640 List<AnalysisError> resultList = new List<AnalysisError>(); |
| 11643 for (MapEntry<Source, HashSet<AnalysisError>> entry in entrySet) { | 11641 for (MapEntry<Source, HashSet<AnalysisError>> entry in entrySet) { |
| 11644 resultList.addAll(entry.getValue()); | 11642 resultList.addAll(entry.getValue()); |
| 11645 } | 11643 } |
| 11646 return new List.from(resultList); | 11644 return resultList; |
| 11647 } | 11645 } |
| 11648 | 11646 |
| 11649 /** | 11647 /** |
| 11650 * Answer the errors collected by the listener for some passed [Source]. | 11648 * Answer the errors collected by the listener for some passed [Source]. |
| 11651 * | 11649 * |
| 11652 * @param source some [Source] for which the caller wants the set of [Analysis Error]s | 11650 * @param source some [Source] for which the caller wants the set of [Analysis Error]s |
| 11653 * collected by this listener | 11651 * collected by this listener |
| 11654 * @return the errors collected by the listener for the passed [Source] | 11652 * @return the errors collected by the listener for the passed [Source] |
| 11655 */ | 11653 */ |
| 11656 List<AnalysisError> getErrorsForSource(Source source) { | 11654 List<AnalysisError> getErrorsForSource(Source source) { |
| (...skipping 1822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 13479 _index++; | 13477 _index++; |
| 13480 if (_index >= _manager._workQueues[_queueIndex].length) { | 13478 if (_index >= _manager._workQueues[_queueIndex].length) { |
| 13481 _index = 0; | 13479 _index = 0; |
| 13482 _queueIndex++; | 13480 _queueIndex++; |
| 13483 while (_queueIndex < _manager._workQueues.length && _manager._workQueues[_ queueIndex].isEmpty) { | 13481 while (_queueIndex < _manager._workQueues.length && _manager._workQueues[_ queueIndex].isEmpty) { |
| 13484 _queueIndex++; | 13482 _queueIndex++; |
| 13485 } | 13483 } |
| 13486 } | 13484 } |
| 13487 } | 13485 } |
| 13488 } | 13486 } |
| OLD | NEW |