Skip to content

Commit 58a9285

Browse files
committed
[truffle] Make nqp::who work on type objects
1 parent 58bcfe4 commit 58a9285

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

src/vm/jvm/runtime/org/perl6/nqp/truffle/nodes/sixmodel/NQPWhoNode.java

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,25 +5,21 @@
55
import org.perl6.nqp.truffle.runtime.NQPNull;
66
import org.perl6.nqp.truffle.nodes.NQPObjNode;
77
import org.perl6.nqp.truffle.sixmodel.TypeObject;
8+
import com.oracle.truffle.api.dsl.NodeChild;
9+
import com.oracle.truffle.api.dsl.NodeChildren;
10+
import com.oracle.truffle.api.dsl.Specialization;
811
import org.perl6.nqp.dsl.Deserializer;
912

1013
@NodeInfo(shortName = "who")
11-
public final class NQPWhoNode extends NQPObjNode {
12-
@Child private NQPNode argNode;
13-
14-
@Deserializer
15-
public NQPWhoNode(NQPNode argNode) {
16-
this.argNode = argNode;
14+
@NodeChildren({@NodeChild(value="valueNode", type=NQPNode.class)})
15+
public class NQPWhoNode extends NQPObjNode {
16+
@Specialization
17+
public Object doTypeObject(TypeObject typeObject) {
18+
return typeObject.stable.who;
1719
}
1820

19-
@Override
20-
public Object execute(VirtualFrame frame) {
21-
Object object = argNode.execute(frame);
22-
System.out.println("who: " + object);
23-
//return ((TypeObject) object).stable;
24-
25-
return NQPNull.SINGLETON;
26-
27-
//return who(argNode.execute(frame));
21+
@Deserializer("who")
22+
public static NQPWhoNode deserialize(NQPNode valueNode) {
23+
return NQPWhoNodeGen.create(valueNode);
2824
}
2925
}

0 commit comments

Comments
 (0)