if (dartEntry.getState(DartEntry.TOKEN_STREAM) != CacheState.VALID
|| dartEntry.getState(SourceEntry.LINE_INFO) != CacheState.VALID) {
return createScanDartTask(source, dartEntry);
}
Token tokenStream = dartEntry.getValue(DartEntry.TOKEN_STREAM);
DartEntryImpl dartCopy = dartEntry.getWritableCopy();
dartCopy.setState(DartEntry.TOKEN_STREAM, CacheState.FLUSHED);
dartCopy.setState(DartEntry.PARSE_ERRORS, CacheState.IN_PROCESS);
cache.put(source, dartCopy);
return new TaskData(new ParseDartTask(
this,
source,
dartCopy.getModificationTime(),
tokenStream,
dartEntry.getValue(SourceEntry.LINE_INFO)), false);
}