void (@NotNull MessageEvent.Kind eventKind, @NotNull ExecutionNode parentNode, @NotNull Set<? super ExecutionNode> structureChanged) { if (eventKind == MessageEvent.Kind.ERROR || eventKind == MessageEvent.Kind.WARNING || eventKind == MessageEvent.Kind.INFO) { ExecutionNode executionNode = parentNode; do { ExecutionNode updatedRoot = executionNode.reportChildMessageKind(eventKind); if (updatedRoot != null) { structureChanged.add(updatedRoot); } else { scheduleUpdate(executionNode, false); } } while ((executionNode = executionNode.getParent()) != null); scheduleUpdate(getRootElement(), false); } }