in packages/flow-dev-tools/src/flowResult.js [131:154]
function mergedMessagesOfError(error: FlowError): Array<FlowMessage> {
const {level, kind, message, operation, trace, extra} = error;
let mainLoc = mainLocOfError(error);
let messages = [].concat(
getHeader(mainLoc, kind, level),
getOpReason(operation),
message,
getExtraMessages(extra),
getTraceReasons(trace),
);
const mainFile = (mainLoc && mainLoc.source) || '[No file]';
// Merge comments into blames
return messages.reduce((acc, message) => {
const {descr, loc, type} = message;
if (loc != null || acc.length == 0 || type == 'Blame') {
acc.push(message);
} else if (descr != 'Error:') {
const prev = acc[acc.length - 1];
prev.descr =
prev.descr == '' ? descr : format('%s. %s', prev.descr, descr);
}
return acc;
}, []);
}