diff --git a/compiler/include/concretelang/Conversion/Utils/GenericOpTypeConversionPattern.h b/compiler/include/concretelang/Conversion/Utils/GenericOpTypeConversionPattern.h index caf4db644..5b2645bda 100644 --- a/compiler/include/concretelang/Conversion/Utils/GenericOpTypeConversionPattern.h +++ b/compiler/include/concretelang/Conversion/Utils/GenericOpTypeConversionPattern.h @@ -54,11 +54,12 @@ struct GenericTypeConverterPattern : public mlir::OpRewritePattern { mlir::LogicalResult matchAndRewrite(Op op, mlir::PatternRewriter &rewriter) const override { - convertOperandAndResultTypes(rewriter, op, + auto newOp = rewriter.clone(*op); + convertOperandAndResultTypes(rewriter, newOp, [&](mlir::MLIRContext *, mlir::Type t) { return converter.convertType(t); }); - + rewriter.replaceOp(op, newOp->getResults()); return mlir::success(); }