docs: protected Boolean _hasSideEffects(XTryCatchFinallyExpression expression, ISideEffectContext context) {
  		final List<Map<String, List<XExpression>>> buffers = new ArrayList<>();
  		Map<String, List<XExpression>> buffer = context.createVariableAssignmentBufferForBranch();
  		if (hasSideEffects(expression.getExpression(), context.branch(buffer))) {
  			return true;
  		}
  		buffers.add(buffer);
  		for (final XCatchClause clause : expression.getCatchClauses()) {
  			context.open();
  			buffer = context.createVariableAssignmentBufferForBranch();
  			if (hasSideEffects(clause.getExpression(), context.branch(buffer))) {
  				return true;
  			}
  			buffers.add(buffer);
  			context.close();
  		}
  		context.mergeBranchVariableAssignments(buffers);
  		if (hasSideEffects(expression.getFinallyExpression(), context)) {
  			return true;
  		}
  		return false;
  	}