[macro] add setter in @:provide macro

This commit is contained in:
2018-08-09 12:14:33 +03:00
parent 2b9cea80bc
commit 7d26241584

View File

@@ -34,7 +34,7 @@ class ProvideMacro {
name: field.name, name: field.name,
access: [Access.APublic], access: [Access.APublic],
pos: field.pos, pos: field.pos,
kind: FieldType.FProp('get', 'never', type) kind: FieldType.FProp('get', 'set', type)
}); });
result.push({ result.push({
name: 'get_${field.name}', name: 'get_${field.name}',
@@ -47,6 +47,17 @@ class ProvideMacro {
ret: type ret: type
}) })
}); });
result.push({
name: 'set_${field.name}',
access: [Access.APrivate, Access.AInline],
pos: field.pos,
kind: FieldType.FFun({
args: [{name: 'value', type: type}],
expr: Context.parse('{haxework.provider.Provider.set(${name}, value); return value;}', field.pos),
params: [],
ret: type
})
});
return result; return result;
} }
} }