Index: pkg/analyzer_experimental/lib/src/generated/engine.dart |
diff --git a/pkg/analyzer_experimental/lib/src/generated/engine.dart b/pkg/analyzer_experimental/lib/src/generated/engine.dart |
index 900b1342e7020e29078aff024f6891c7b4beaf7a..909e4f7b03aac67c00b1051740ca73590d472436 100644 |
--- a/pkg/analyzer_experimental/lib/src/generated/engine.dart |
+++ b/pkg/analyzer_experimental/lib/src/generated/engine.dart |
@@ -1087,7 +1087,7 @@ abstract class DartEntry implements SourceEntry { |
* context for the data |
* @return the value of the data represented by the given descriptor and library |
*/ |
- CacheState getState2(DataDescriptor<Object> descriptor, Source librarySource); |
+ CacheState getState2(DataDescriptor descriptor, Source librarySource); |
/** |
* Return the value of the data represented by the given descriptor in the context of the given |
@@ -1310,7 +1310,7 @@ class DartEntryImpl extends SourceEntryImpl implements DartEntry { |
; |
return null; |
} |
- CacheState getState(DataDescriptor<Object> descriptor) { |
+ CacheState getState(DataDescriptor descriptor) { |
if (identical(descriptor, DartEntry.ELEMENT)) { |
return _elementState; |
} else if (identical(descriptor, DartEntry.EXPORTED_LIBRARIES)) { |
@@ -1335,7 +1335,7 @@ class DartEntryImpl extends SourceEntryImpl implements DartEntry { |
return super.getState(descriptor); |
} |
} |
- CacheState getState2(DataDescriptor<Object> descriptor, Source librarySource2) { |
+ CacheState getState2(DataDescriptor descriptor, Source librarySource2) { |
DartEntryImpl_ResolutionState state = _resolutionState; |
while (state != null) { |
if (librarySource2 == state._librarySource) { |
@@ -1569,7 +1569,7 @@ class DartEntryImpl extends SourceEntryImpl implements DartEntry { |
_parseErrorsState = CacheState.VALID; |
} |
} |
- void setState(DataDescriptor<Object> descriptor, CacheState state) { |
+ void setState(DataDescriptor descriptor, CacheState state) { |
if (identical(descriptor, DartEntry.ELEMENT)) { |
_element = updatedValue(state, _element, null); |
_elementState = state; |
@@ -1618,7 +1618,7 @@ class DartEntryImpl extends SourceEntryImpl implements DartEntry { |
* context for the data |
* @param cacheState the new state of the data represented by the given descriptor |
*/ |
- void setState2(DataDescriptor<Object> descriptor, Source librarySource, CacheState cacheState) { |
+ void setState2(DataDescriptor descriptor, Source librarySource, CacheState cacheState) { |
DartEntryImpl_ResolutionState state = getOrCreateResolutionState(librarySource); |
if (identical(descriptor, DartEntry.RESOLUTION_ERRORS)) { |
state._resolutionErrors = updatedValue(cacheState, state._resolutionErrors, AnalysisError.NO_ERRORS); |
@@ -2064,7 +2064,7 @@ class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
return new List.from(errors); |
} |
SourceKind get kind => SourceKind.HTML; |
- CacheState getState(DataDescriptor<Object> descriptor) { |
+ CacheState getState(DataDescriptor descriptor) { |
if (identical(descriptor, HtmlEntry.ELEMENT)) { |
return _elementState; |
} else if (identical(descriptor, HtmlEntry.PARSED_UNIT)) { |
@@ -2109,7 +2109,7 @@ class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
_hints = AnalysisError.NO_ERRORS; |
_hintsState = CacheState.INVALID; |
} |
- void setState(DataDescriptor<Object> descriptor, CacheState state) { |
+ void setState(DataDescriptor descriptor, CacheState state) { |
if (identical(descriptor, HtmlEntry.ELEMENT)) { |
_element = updatedValue(state, _element, null); |
_elementState = state; |
@@ -2213,7 +2213,7 @@ abstract class SourceEntry { |
* @param descriptor the descriptor representing the data whose state is to be returned |
* @return the state of the data represented by the given descriptor |
*/ |
- CacheState getState(DataDescriptor<Object> descriptor); |
+ CacheState getState(DataDescriptor descriptor); |
/** |
* Return the value of the data represented by the given descriptor, or `null` if the data |
@@ -2257,7 +2257,7 @@ abstract class SourceEntryImpl implements SourceEntry { |
*/ |
LineInfo _lineInfo; |
int get modificationTime => _modificationTime; |
- CacheState getState(DataDescriptor<Object> descriptor) { |
+ CacheState getState(DataDescriptor descriptor) { |
if (identical(descriptor, SourceEntry.LINE_INFO)) { |
return _lineInfoState; |
} else { |
@@ -2288,7 +2288,7 @@ abstract class SourceEntryImpl implements SourceEntry { |
* @param descriptor the descriptor representing the data whose state is to be set |
* @param the new state of the data represented by the given descriptor |
*/ |
- void setState(DataDescriptor<Object> descriptor, CacheState state) { |
+ void setState(DataDescriptor descriptor, CacheState state) { |
if (identical(descriptor, SourceEntry.LINE_INFO)) { |
_lineInfo = updatedValue(state, _lineInfo, null); |
_lineInfoState = state; |
@@ -2368,7 +2368,7 @@ class AnalysisContentStatisticsImpl implements AnalysisContentStatistics { |
Iterable<AnalysisContentStatistics_CacheRow> items = _dataMap.values; |
return new List.from(items); |
} |
- void putCacheItem(DataDescriptor<Object> rowDesc, CacheState state) { |
+ void putCacheItem(DataDescriptor rowDesc, CacheState state) { |
String rowName = rowDesc.toString(); |
AnalysisContentStatisticsImpl_CacheRowImpl row = _dataMap[rowName] as AnalysisContentStatisticsImpl_CacheRowImpl; |
if (row == null) { |
@@ -2425,7 +2425,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
* Helper for [getStatistics], puts the library-specific state into the given statistics |
* object. |
*/ |
- static void putStatCacheItem(AnalysisContentStatisticsImpl statistics, DartEntry dartEntry, Source librarySource, DataDescriptor<Object> key) { |
+ static void putStatCacheItem(AnalysisContentStatisticsImpl statistics, DartEntry dartEntry, Source librarySource, DataDescriptor key) { |
statistics.putCacheItem(key, dartEntry.getState2(key, librarySource)); |
} |
@@ -2433,7 +2433,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
* Helper for [getStatistics], puts the library independent state into the given |
* statistics object. |
*/ |
- static void putStatCacheItem2(AnalysisContentStatisticsImpl statistics, SourceEntry entry, DataDescriptor<Object> key) { |
+ static void putStatCacheItem2(AnalysisContentStatisticsImpl statistics, SourceEntry entry, DataDescriptor key) { |
statistics.putCacheItem(key, entry.getState(key)); |
} |
@@ -2627,7 +2627,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
return SourceKind.UNKNOWN; |
} else if (sourceEntry is DartEntry) { |
try { |
- return internalGetDartParseData(source, (sourceEntry as DartEntry), DartEntry.SOURCE_KIND); |
+ return internalGetDartParseData(source, sourceEntry as DartEntry, DartEntry.SOURCE_KIND); |
} on AnalysisException catch (exception) { |
return SourceKind.UNKNOWN; |
} |
@@ -2686,7 +2686,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
internalParseDart(source); |
} |
} |
- AnalysisContext extractContext(SourceContainer container) => extractContextInto(container, (AnalysisEngine.instance.createAnalysisContext() as InternalAnalysisContext)); |
+ AnalysisContext extractContext(SourceContainer container) => extractContextInto(container, AnalysisEngine.instance.createAnalysisContext() as InternalAnalysisContext); |
InternalAnalysisContext extractContextInto(SourceContainer container, InternalAnalysisContext newContext) { |
List<Source> sourcesToRemove = new List<Source>(); |
{ |
@@ -3080,6 +3080,11 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
InheritanceManager inheritanceManager = new InheritanceManager(libraryElement); |
ResolverVisitor resolverVisitor = new ResolverVisitor.con2(libraryElement, unitSource, typeProvider, inheritanceManager, errorListener); |
unitAST.accept(resolverVisitor); |
+ for (ProxyConditionalAnalysisError conditionalCode in resolverVisitor.proxyConditionalAnalysisErrors) { |
+ if (conditionalCode.shouldIncludeErrorCode()) { |
+ resolverVisitor.reportError(conditionalCode.analysisError); |
+ } |
+ } |
ErrorReporter errorReporter = new ErrorReporter(errorListener, unitSource); |
ErrorVerifier errorVerifier = new ErrorVerifier(errorReporter, libraryElement, typeProvider, inheritanceManager); |
unitAST.accept(errorVerifier); |
@@ -3592,8 +3597,8 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
* @param descriptor the descriptor representing the data to be returned |
* @return a cache entry containing the required data |
*/ |
- bool hasHtmlParseDataCached(HtmlEntry htmlEntry, List<DataDescriptor<Object>> descriptors) { |
- for (DataDescriptor<Object> descriptor in descriptors) { |
+ bool hasHtmlParseDataCached(HtmlEntry htmlEntry, List<DataDescriptor> descriptors) { |
+ for (DataDescriptor descriptor in descriptors) { |
CacheState state = htmlEntry.getState(descriptor); |
if (state != CacheState.VALID && state != CacheState.ERROR) { |
return false; |
@@ -3614,7 +3619,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
* @throws AnalysisException if data could not be returned because the source could not be |
* resolved |
*/ |
- DartEntry internalCacheDartParseData(Source source, DartEntry dartEntry, DataDescriptor<Object> descriptor) { |
+ DartEntry internalCacheDartParseData(Source source, DartEntry dartEntry, DataDescriptor descriptor) { |
CacheState state = dartEntry.getState(descriptor); |
while (state != CacheState.ERROR && state != CacheState.VALID) { |
dartEntry = internalParseDart(source); |
@@ -3636,7 +3641,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
* @return the requested data about the given source |
* @throws AnalysisException if data could not be returned because the source could not be parsed |
*/ |
- DartEntry internalCacheDartResolutionData(Source unitSource, Source librarySource, DartEntry dartEntry, DataDescriptor<Object> descriptor) { |
+ DartEntry internalCacheDartResolutionData(Source unitSource, Source librarySource, DartEntry dartEntry, DataDescriptor descriptor) { |
CacheState state = dartEntry.getState2(descriptor, librarySource); |
while (state != CacheState.ERROR && state != CacheState.VALID) { |
dartEntry = internalResolveDart(unitSource, librarySource); |
@@ -3657,7 +3662,7 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
* @throws AnalysisException if data could not be returned because the source could not be |
* resolved |
*/ |
- HtmlEntry internalCacheHtmlParseData(Source source, HtmlEntry htmlEntry, List<DataDescriptor<Object>> descriptors) { |
+ HtmlEntry internalCacheHtmlParseData(Source source, HtmlEntry htmlEntry, List<DataDescriptor> descriptors) { |
while (!hasHtmlParseDataCached(htmlEntry, descriptors)) { |
htmlEntry = internalParseHtml(source); |
} |
@@ -3797,19 +3802,19 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
Set<Source> includedSources = new Set<Source>(); |
for (Directive directive in unit.directives) { |
if (directive is ExportDirective) { |
- Source exportSource = resolveSource(source, (directive as ExportDirective)); |
+ Source exportSource = resolveSource(source, directive as ExportDirective); |
if (exportSource != null) { |
javaSetAdd(exportedSources, exportSource); |
} |
} else if (directive is ImportDirective) { |
- Source importSource = resolveSource(source, (directive as ImportDirective)); |
+ Source importSource = resolveSource(source, directive as ImportDirective); |
if (importSource != null) { |
javaSetAdd(importedSources, importSource); |
} |
} else if (directive is LibraryDirective) { |
hasLibraryDirective = true; |
} else if (directive is PartDirective) { |
- Source partSource = resolveSource(source, (directive as PartDirective)); |
+ Source partSource = resolveSource(source, directive as PartDirective); |
if (partSource != null) { |
javaSetAdd(includedSources, partSource); |
} |
@@ -3873,19 +3878,19 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
errors = errorListener.getErrors2(source); |
for (Directive directive in unit.directives) { |
if (directive is ExportDirective) { |
- Source exportSource = resolveSource(source, (directive as ExportDirective)); |
+ Source exportSource = resolveSource(source, directive as ExportDirective); |
if (exportSource != null) { |
javaSetAdd(exportedSources, exportSource); |
} |
} else if (directive is ImportDirective) { |
- Source importSource = resolveSource(source, (directive as ImportDirective)); |
+ Source importSource = resolveSource(source, directive as ImportDirective); |
if (importSource != null) { |
javaSetAdd(importedSources, importSource); |
} |
} else if (directive is LibraryDirective) { |
hasLibraryDirective = true; |
} else if (directive is PartDirective) { |
- Source partSource = resolveSource(source, (directive as PartDirective)); |
+ Source partSource = resolveSource(source, directive as PartDirective); |
if (partSource != null) { |
javaSetAdd(includedSources, partSource); |
} |
@@ -4427,7 +4432,9 @@ class AnalysisContextImpl implements InternalAnalysisContext { |
try { |
parseHtmlUnit(source); |
} on AnalysisException catch (exception) { |
- AnalysisEngine.instance.logger.logError2("Could not parse ${source.fullName}", exception); |
+ if (exception.cause is! JavaIOException) { |
+ AnalysisEngine.instance.logger.logError2("Could not parse ${source.fullName}", exception); |
+ } |
} |
} |
@@ -4910,7 +4917,7 @@ class AnalysisOptionsImpl implements AnalysisOptions { |
/** |
* The enumeration `CacheState` defines the possible states of cached data. |
*/ |
-class CacheState implements Enum<CacheState> { |
+class CacheState extends Enum<CacheState> { |
/** |
* The data is not in the cache and the last time an attempt was made to compute the data an |
@@ -4967,16 +4974,7 @@ class CacheState implements Enum<CacheState> { |
*/ |
static final CacheState VALID = new CacheState('VALID', 4); |
static final List<CacheState> values = [ERROR, FLUSHED, IN_PROCESS, INVALID, VALID]; |
- |
- /// The name of this enum constant, as declared in the enum declaration. |
- final String name; |
- |
- /// The position in the enum declaration. |
- final int ordinal; |
- CacheState(this.name, this.ordinal); |
- int compareTo(CacheState other) => ordinal - other.ordinal; |
- int get hashCode => ordinal; |
- String toString() => name; |
+ CacheState(String name, int ordinal) : super(name, ordinal); |
} |
/** |
* Instances of the class `ChangeNoticeImpl` represent a change to the analysis results |