Skip to content

Commit

Permalink
[truffle] Make nqp::who work on type objects
Browse files Browse the repository at this point in the history
  • Loading branch information
pmurias committed Nov 19, 2018
1 parent 58bcfe4 commit 58a9285
Showing 1 changed file with 11 additions and 15 deletions.
Expand Up @@ -5,25 +5,21 @@
import org.perl6.nqp.truffle.runtime.NQPNull;
import org.perl6.nqp.truffle.nodes.NQPObjNode;
import org.perl6.nqp.truffle.sixmodel.TypeObject;
import com.oracle.truffle.api.dsl.NodeChild;
import com.oracle.truffle.api.dsl.NodeChildren;
import com.oracle.truffle.api.dsl.Specialization;
import org.perl6.nqp.dsl.Deserializer;

@NodeInfo(shortName = "who")
public final class NQPWhoNode extends NQPObjNode {
@Child private NQPNode argNode;

@Deserializer
public NQPWhoNode(NQPNode argNode) {
this.argNode = argNode;
@NodeChildren({@NodeChild(value="valueNode", type=NQPNode.class)})
public class NQPWhoNode extends NQPObjNode {
@Specialization
public Object doTypeObject(TypeObject typeObject) {
return typeObject.stable.who;
}

@Override
public Object execute(VirtualFrame frame) {
Object object = argNode.execute(frame);
System.out.println("who: " + object);
//return ((TypeObject) object).stable;

return NQPNull.SINGLETON;

//return who(argNode.execute(frame));
@Deserializer("who")
public static NQPWhoNode deserialize(NQPNode valueNode) {
return NQPWhoNodeGen.create(valueNode);
}
}

0 comments on commit 58a9285

Please sign in to comment.