Skip to content

Commit

Permalink
Showing 3 changed files with 29 additions and 6 deletions.
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/kernel/instance_variables_tags.txt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -239,10 +239,10 @@ public Object instanceExec(Object receiver, Object[] arguments, NotProvided bloc
@CoreMethod(names = "__instance_variables__")
public abstract static class InstanceVariablesNode extends CoreMethodArrayArgumentsNode {

public abstract DynamicObject executeObject(DynamicObject self);
public abstract DynamicObject execute(Object self);

@TruffleBoundary
@Specialization
@Specialization(guards = {"!isNil(self)", "!isRubySymbol(self)"})
public DynamicObject instanceVariables(DynamicObject self) {
List<Object> keys = self.getShape().getKeyList();

@@ -259,6 +259,31 @@ public DynamicObject instanceVariables(DynamicObject self) {
return ArrayHelpers.createArray(getContext(), names.toArray(new Object[size]), size);
}

@Specialization
public DynamicObject instanceVariables(int self) {
return ArrayHelpers.createArray(getContext(), null, 0);
}

@Specialization
public DynamicObject instanceVariables(long self) {
return ArrayHelpers.createArray(getContext(), null, 0);
}

@Specialization
public DynamicObject instanceVariables(boolean self) {
return ArrayHelpers.createArray(getContext(), null, 0);
}

@Specialization(guards = "isNil(object)")
public DynamicObject instanceVariablesNil(DynamicObject object) {
return ArrayHelpers.createArray(getContext(), null, 0);
}

@Specialization(guards = "isRubySymbol(object)")
public DynamicObject instanceVariablesSymbol(DynamicObject object) {
return ArrayHelpers.createArray(getContext(), null, 0);
}

}

@CoreMethod(names = "method_missing", needsBlock = true, rest = true, optional = 1, visibility = Visibility.PRIVATE)
Original file line number Diff line number Diff line change
@@ -1050,8 +1050,8 @@ public InstanceVariablesNode(RubyContext context, SourceSection sourceSection) {
}

@Specialization
public DynamicObject instanceVariables(VirtualFrame frame, DynamicObject self) {
return instanceVariablesNode.executeObject(self);
public DynamicObject instanceVariables(VirtualFrame frame, Object self) {
return instanceVariablesNode.execute(self);
}

}

0 comments on commit 284aafb

Please sign in to comment.