From 5cbd17bf55d4834a3795b7ee914edd222d10ae64 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Wed, 12 Mar 2025 11:01:14 -0500 Subject: [PATCH] redefineWithObjectArgs allow changing access public/private --- src/kiss/FieldForms.hx | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/kiss/FieldForms.hx b/src/kiss/FieldForms.hx index 358b190..655c9e9 100644 --- a/src/kiss/FieldForms.hx +++ b/src/kiss/FieldForms.hx @@ -141,13 +141,27 @@ class FieldForms { throw KissError.fromExp(wholeExp, 'Function or method $field does not exist to be redefined'); } - switch (args[1].def) { + var access = originalFunction.access; + var newFieldNameExp = switch(args[1].def) { + case MetaExp("public", innerExp): + access.remove(APrivate); + access.push(APublic); + innerExp.def; + case MetaExp("private", innerExp): + access.remove(APublic); + access.push(APrivate); + innerExp.def; + case other: + other; + } + + switch (newFieldNameExp) { case Symbol(newFieldName): var newField = { pos: wholeExp.macroPos(), name: newFieldName, meta: originalFunction.meta, - access: originalFunction.access, + access: access, kind: FFun(switch(originalFunction.kind) { case FFun({ret: ret, params: params, args: originalArgs}): var argIndexMap = new Map();