> In org.scala-ide.sdt.core/src/scala/tools/eclipse/ui/DecoratedInteractiveEditor.scala:
> 
> > +import scala.tools.eclipse.ISourceViewerEditor
> > +
> > +trait DecoratedInteractiveEditor extends ISourceViewerEditor {
> > +
> > +  type IAnnotationModelExtended = IAnnotationModel with IAnnotationModelExtension
> > +
> > +  /** Return the annotation model associated with the current document. */
> > +  private def annotationModel: IAnnotationModelExtended = getDocumentProvider.getAnnotationModel(getEditorInput).asInstanceOf[IAnnotationModelExtended]
> > +
> > +  private var previousAnnotations = List[ProblemAnnotation]()
> > +
> > +  /**
> > +   * Update annotations on the editor from a list of IProblems
> > +   */
> > +
> > +  def updateErrorAnnotations(errors: List[IProblem]) {
> You argued against thread-safety protections in that class.
> 
> —
> Reply to this email directly or view it on GitHub.
> 

Looks like my understanding has improved in the meanwhile. It is true that the class seems to be currently only accessed by the reconciler, but that doesn't make it thread-safe - it's thread-safe by convention, but with an high risk to break with the wrong usage. At a minimum, it would be good to have an assertion check like we do in the presentation compiler to make sure this method is executed only and solely within the reconciler thread (however, I'm not sure we can achieve this because I don't think you can get a handle on the reconciler thread. Maybe you can use a ThreadLocal and save some state variable to know if the assumption is violated).