diff --git a/deps/ReactantExtra/API.cpp b/deps/ReactantExtra/API.cpp index e5a5c7bbe5..f64fd63829 100644 --- a/deps/ReactantExtra/API.cpp +++ b/deps/ReactantExtra/API.cpp @@ -227,13 +227,26 @@ extern "C" MlirAttribute mlirComplexAttrDoubleGetChecked(MlirLocation loc, unwrap(loc), cast(unwrap(type)), real, imag)); } -extern "C" MlirOperation mlirOperationParse(MlirContext ctx, - MlirStringRef code) { - ParserConfig config(unwrap(ctx)); - OwningOpRef owning_op = parseSourceString(unwrap(code), config); - if (!owning_op) +extern "C" bool mlirOperationInject(MlirContext ctx, MlirBlock block, + MlirStringRef code, MlirLocation location, + bool verify_after_parse) { + ParserConfig config(unwrap(ctx), verify_after_parse); + if (failed(parseSourceString(unwrap(code), unwrap(block), config))) + return false; + return true; +} + +extern "C" MlirOperation mlirOperationParse(MlirContext ctx, MlirBlock block, + MlirStringRef code, + MlirLocation location, + bool verify_after_parse) { + ParserConfig config(unwrap(ctx), verify_after_parse); + if (failed(parseSourceString(unwrap(code), unwrap(block), config))) return MlirOperation{nullptr}; - return MlirOperation{owning_op.release()}; + return MlirOperation{ + mlir::detail::constructContainerOpForParserIfNecessary( + unwrap(block), config.getContext(), unwrap(location)) + .release()}; } // TODO mlirComplexAttrGetnValue