From 417b5dc3548cf8fe98b62522387d923fe934595b Mon Sep 17 00:00:00 2001 From: Max Wash Date: Sun, 11 Jan 2026 14:38:28 +0000 Subject: [PATCH] mie: builtin: add isolated-from-above trait --- mie/dialect/builtin/builtin.c | 1 + mie/dialect/builtin/isolated-from-above.c | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 mie/dialect/builtin/isolated-from-above.c diff --git a/mie/dialect/builtin/builtin.c b/mie/dialect/builtin/builtin.c index 6c37397..115205d 100644 --- a/mie/dialect/builtin/builtin.c +++ b/mie/dialect/builtin/builtin.c @@ -3,4 +3,5 @@ MIE_DIALECT_BEGIN(mie_builtin, "builtin") MIE_DIALECT_ADD_TYPE(mie_builtin_string); + MIE_DIALECT_ADD_TRAIT(mie_builtin_isolated_from_above); MIE_DIALECT_END() diff --git a/mie/dialect/builtin/isolated-from-above.c b/mie/dialect/builtin/isolated-from-above.c new file mode 100644 index 0000000..f7541a5 --- /dev/null +++ b/mie/dialect/builtin/isolated-from-above.c @@ -0,0 +1,21 @@ +#include +#include +#include +#include + +static enum mie_status validate( + const struct mie_trait_definition *trait_def, + const struct mie_trait *trait, const struct mie_trait_target *target) +{ + return MIE_SUCCESS; +} + +/* builtin.isolated-from-above trait: + * regions of an op that has this trait cannot capture or reference + * values defined in the enclosing scope. */ +MIE_TRAIT_DEFINITION_BEGIN( + mie_builtin_isolated_from_above, "isolated-from-above") + MIE_TRAIT_DEFINITION_TARGETS(MIE_TRAIT_TARGET_OP | MIE_TRAIT_TARGET_TYPE); + MIE_TRAIT_DEFINITION_STRUCT(struct mie_trait); + MIE_TRAIT_DEFINITION_VALIDATE(validate); +MIE_TRAIT_DEFINITION_END()