diff --git a/changelogs/unreleased/th__fix_add_allow_attrs_in_ModuleBuilder.yaml b/changelogs/unreleased/th__fix_add_allow_attrs_in_ModuleBuilder.yaml new file mode 100644 index 000000000..0d2ecdbf8 --- /dev/null +++ b/changelogs/unreleased/th__fix_add_allow_attrs_in_ModuleBuilder.yaml @@ -0,0 +1,2 @@ +fixed: + - ModuleBuidler now adds 'allow_constraint' and 'allow_witness' attributes to generated functions diff --git a/lib/Dialect/Shared/Builders.cpp b/lib/Dialect/Shared/Builders.cpp index b295eeadf..9fdaf9616 100644 --- a/lib/Dialect/Shared/Builders.cpp +++ b/lib/Dialect/Shared/Builders.cpp @@ -112,11 +112,11 @@ ModuleBuilder &ModuleBuilder::insertComputeFn(StructDefOp op, Location loc) { ensureNoSuchComputeFn(op.getName()); OpBuilder opBuilder(op.getBodyRegion()); - auto fnOp = opBuilder.create( loc, StringAttr::get(context, FUNC_NAME_COMPUTE), FunctionType::get(context, {}, {op.getType()}) ); + fnOp.setAllowWitnessAttr(); fnOp.addEntryBlock(); computeFnMap[op.getName()] = fnOp; return *this; @@ -126,11 +126,11 @@ ModuleBuilder &ModuleBuilder::insertConstrainFn(StructDefOp op, Location loc) { ensureNoSuchConstrainFn(op.getName()); OpBuilder opBuilder(op.getBodyRegion()); - auto fnOp = opBuilder.create( loc, StringAttr::get(context, FUNC_NAME_CONSTRAIN), FunctionType::get(context, {op.getType()}, {}) ); + fnOp.setAllowConstraintAttr(); fnOp.addEntryBlock(); constrainFnMap[op.getName()] = fnOp; return *this;