From: Stefan Monnier <address@hidden>
Cc: Daniel Colascione <address@hidden>, address@hidden
Date: Mon, 29 Aug 2016 20:25:06 -0400
#1 breaks the entire b-c-f model --- "hey, I'm about to modify the
buffer, so throw away caches" ---- and can lead to anything with a
cache flush in b-c-f (like syntax-ppss) not properly discarding
out-of-date buffer information.
That single case of #1 is revert-buffer, which conceptually throws
away the entire buffer and replaces it with what's on disk. That it
actually keeps portions of the buffer is an optimization, but the
concept still stands. So I don't see how it breaks the entire model,
at least not in practice.
The optimization is beside the point: not calling b-c-f in some corner
case breaks the entire model because a user such as syntax-ppss relies
on b-c-f to know when to flush its cache, so if you don't call it when
the buffer is modified, the cache ends up stale.