Index: editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/cache/HtmlEntryImpl.java |
diff --git a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/cache/HtmlEntryImpl.java b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/cache/HtmlEntryImpl.java |
index 1eb35a01fb8613b3b47e6020ff16db34c6e89160..e770e4bdf1a8124e8eba3c161a4dd74240fba37d 100644 |
--- a/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/cache/HtmlEntryImpl.java |
+++ b/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/cache/HtmlEntryImpl.java |
@@ -38,13 +38,24 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
private HtmlUnit parsedUnit; |
/** |
+ * The state of the cached parse errors. |
+ */ |
+ private CacheState parseErrorsState = CacheState.INVALID; |
+ |
+ /** |
+ * The errors produced while scanning and parsing the HTML, or {@code null} if the errors are not |
+ * currently cached. |
+ */ |
+ private AnalysisError[] parseErrors = AnalysisError.NO_ERRORS; |
+ |
+ /** |
* The state of the cached resolution errors. |
*/ |
private CacheState resolutionErrorsState = CacheState.INVALID; |
/** |
- * The errors produced while resolving the compilation unit, or {@code null} if the errors are not |
- * currently cached. |
+ * The errors produced while resolving the HTML, or {@code null} if the errors are not currently |
+ * cached. |
*/ |
private AnalysisError[] resolutionErrors = AnalysisError.NO_ERRORS; |
@@ -90,9 +101,9 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
@Override |
public AnalysisError[] getAllErrors() { |
ArrayList<AnalysisError> errors = new ArrayList<AnalysisError>(); |
-// for (AnalysisError error : parseErrors) { |
-// errors.add(error); |
-// } |
+ for (AnalysisError error : parseErrors) { |
+ errors.add(error); |
+ } |
for (AnalysisError error : resolutionErrors) { |
errors.add(error); |
} |
@@ -114,6 +125,8 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
public CacheState getState(DataDescriptor<?> descriptor) { |
if (descriptor == ELEMENT) { |
return elementState; |
+ } else if (descriptor == PARSE_ERRORS) { |
+ return parseErrorsState; |
} else if (descriptor == PARSED_UNIT) { |
return parsedUnitState; |
} else if (descriptor == REFERENCED_LIBRARIES) { |
@@ -131,6 +144,8 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
public <E> E getValue(DataDescriptor<E> descriptor) { |
if (descriptor == ELEMENT) { |
return (E) element; |
+ } else if (descriptor == PARSE_ERRORS) { |
+ return (E) parseErrors; |
} else if (descriptor == PARSED_UNIT) { |
return (E) parsedUnit; |
} else if (descriptor == REFERENCED_LIBRARIES) { |
@@ -156,6 +171,8 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
public void invalidateAllInformation() { |
setState(LINE_INFO, CacheState.INVALID); |
+ parseErrors = AnalysisError.NO_ERRORS; |
+ parseErrorsState = CacheState.INVALID; |
parsedUnit = null; |
parsedUnitState = CacheState.INVALID; |
@@ -185,6 +202,7 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
*/ |
public void recordParseError() { |
setState(SourceEntry.LINE_INFO, CacheState.ERROR); |
+ setState(HtmlEntry.PARSE_ERRORS, CacheState.ERROR); |
setState(HtmlEntry.PARSED_UNIT, CacheState.ERROR); |
setState(HtmlEntry.REFERENCED_LIBRARIES, CacheState.ERROR); |
recordResolutionError(); |
@@ -205,6 +223,9 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
if (descriptor == ELEMENT) { |
element = updatedValue(state, element, null); |
elementState = state; |
+ } else if (descriptor == PARSE_ERRORS) { |
+ parseErrors = updatedValue(state, parseErrors, null); |
+ parseErrorsState = state; |
} else if (descriptor == PARSED_UNIT) { |
parsedUnit = updatedValue(state, parsedUnit, null); |
parsedUnitState = state; |
@@ -227,6 +248,9 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
if (descriptor == ELEMENT) { |
element = (HtmlElement) value; |
elementState = CacheState.VALID; |
+ } else if (descriptor == PARSE_ERRORS) { |
+ parseErrors = (AnalysisError[]) value; |
+ parseErrorsState = CacheState.VALID; |
} else if (descriptor == PARSED_UNIT) { |
parsedUnit = (HtmlUnit) value; |
parsedUnitState = CacheState.VALID; |
@@ -248,6 +272,8 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
protected void copyFrom(SourceEntryImpl entry) { |
super.copyFrom(entry); |
HtmlEntryImpl other = (HtmlEntryImpl) entry; |
+ parseErrorsState = other.parseErrorsState; |
+ parseErrors = other.parseErrors; |
parsedUnitState = other.parsedUnitState; |
parsedUnit = other.parsedUnit; |
referencedLibrariesState = other.referencedLibrariesState; |
@@ -264,6 +290,8 @@ public class HtmlEntryImpl extends SourceEntryImpl implements HtmlEntry { |
protected void writeOn(StringBuilder builder) { |
builder.append("Html: "); |
super.writeOn(builder); |
+ builder.append("; parseErrors = "); |
+ builder.append(parseErrorsState); |
builder.append("; parsedUnit = "); |
builder.append(parsedUnitState); |
builder.append("; resolutionErrors = "); |