/**
  * Creates a copy of this class with the same fields.
  *
  * @return a new instance of this class.
  */
 @Override
 @Nonnull
 public HDLEqualityOp copyFiltered(CopyFilter filter) {
   final HDLExpression filteredleft = filter.copyObject("left", this, left);
   final HDLExpression filteredright = filter.copyObject("right", this, right);
   final HDLEqualityOpType filteredtype = filter.copyObject("type", this, type);
   return filter.postFilter(
       (HDLEqualityOp) this,
       new HDLEqualityOp(id, null, filteredleft, filteredright, filteredtype, false));
 }
 /**
  * Creates a copy of this class with the same fields.
  *
  * @return a new instance of this class.
  */
 @Override
 @Nonnull
 public HDLInterfaceDeclaration copyFiltered(CopyFilter filter) {
   final ArrayList<HDLAnnotation> filteredannotations =
       filter.copyContainer("annotations", this, annotations);
   final HDLInterface filteredhIf = filter.copyObject("hIf", this, hIf);
   return filter.postFilter(
       (HDLInterfaceDeclaration) this,
       new HDLInterfaceDeclaration(id, null, filteredannotations, filteredhIf, false));
 }
 /**
  * Creates a copy of this class with the same fields.
  *
  * @return a new instance of this class.
  */
 @Override
 @Nonnull
 public HDLUnresolvedFragmentFunction copyFiltered(CopyFilter filter) {
   final String filteredfrag = filter.copyObject("frag", this, frag);
   final Boolean filteredisStatement = filter.copyObject("isStatement", this, isStatement);
   final ArrayList<HDLExpression> filteredarray = filter.copyContainer("array", this, array);
   final ArrayList<HDLRange> filteredbits = filter.copyContainer("bits", this, bits);
   final HDLUnresolvedFragment filteredsub = filter.copyObject("sub", this, sub);
   final ArrayList<HDLExpression> filteredparams = filter.copyContainer("params", this, params);
   return filter.postFilter(
       (HDLUnresolvedFragmentFunction) this,
       new HDLUnresolvedFragmentFunction(
           id,
           null,
           filteredfrag,
           filteredisStatement,
           filteredarray,
           filteredbits,
           filteredsub,
           filteredparams,
           false));
 }
 /**
  * Creates a copy of this class with the same fields.
  *
  * @return a new instance of this class.
  */
 @Override
 @Nonnull
 public HDLInlineFunction copyFiltered(CopyFilter filter) {
   final ArrayList<HDLAnnotation> filteredannotations =
       filter.copyContainer("annotations", this, annotations);
   final String filteredname = filter.copyObject("name", this, name);
   final ArrayList<HDLFunctionParameter> filteredargs = filter.copyContainer("args", this, args);
   final HDLFunctionParameter filteredreturnType =
       filter.copyObject("returnType", this, returnType);
   final HDLExpression filteredexpr = filter.copyObject("expr", this, expr);
   return filter.postFilter(
       (HDLInlineFunction) this,
       new HDLInlineFunction(
           id,
           null,
           filteredannotations,
           filteredname,
           filteredargs,
           filteredreturnType,
           filteredexpr,
           false));
 }