Allow getting members by name from ClassBuilder.

This commit is contained in:
back2dos
2013-10-24 12:49:23 +02:00
parent 9c8daad018
commit a57487ab72
3 changed files with 10 additions and 6 deletions

View File

@@ -4,8 +4,8 @@
"license": "MIT",
"tags": ["tink", "macro", "utility"],
"description": "The macro toolkit ;)",
"version": "0.0.4-beta",
"releasenote": "Setter bypass fix.",
"version": "0.1.0-beta",
"releasenote": "Allow getting members by name from ClassBuilder.",
"contributors": ["back2dos"],
"dependencies": {
"tink_core": "1.0.0-beta.4"

View File

@@ -124,7 +124,11 @@ class ClassBuilder {
}
return superFields.get(name);
}
public function memberByName(name:String, ?pos:Position)
return
if (memberMap.exists(name)) Success(memberMap.get(name));
else pos.makeFailure('unknown member $name');
public function removeMember(member:Member):Bool
return
member != null

View File

@@ -92,9 +92,9 @@ class Constructor {
var tmp = MacroApi.tempName();
if (options.bypass) {
switch @:privateAccess owner.memberMap[name] {
case nil if (nil == null):
case member: member.addMeta(':isVar');
switch owner.memberByName(name) {
case Success(member): member.addMeta(':isVar');
default:
}
if (Context.defined('dce') && Context.definedValue('dce') == 'full') {