Skip to content

Commit

Permalink
Showing 3 changed files with 14 additions and 4 deletions.
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/ir/IRScope.java
Original file line number Diff line number Diff line change
@@ -743,7 +743,7 @@ public String toStringInstrs() {
}
}

public LocalVariable getSelf() {
public Variable getSelf() {
return Self.SELF;
}

14 changes: 12 additions & 2 deletions core/src/main/java/org/jruby/ir/operands/Self.java
Original file line number Diff line number Diff line change
@@ -8,12 +8,17 @@
import org.jruby.runtime.ThreadContext;
import org.jruby.runtime.builtin.IRubyObject;

public class Self extends LocalVariable {
public class Self extends Variable {
public static final Self SELF = new Self();
private static final String NAME = "%self";

private Self() {
super(NAME, 0, 0);
super();
}

@Override
public String getName() {
return NAME;
}

@Override
@@ -50,4 +55,9 @@ public void encode(IRWriterEncoder e) {
public void visit(IRVisitor visitor) {
visitor.Self(this);
}

@Override
public int compareTo(Object o) {
return this == o ? 0 : -1;
}
}
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/ir/persistence/IRDumper.java
Original file line number Diff line number Diff line change
@@ -244,7 +244,7 @@ public void ObjectClass(ObjectClass objectclass) { }
public void Rational(Rational rational) { print(rational.getNumerator() + "/" + rational.getDenominator()); }
public void Regexp(Regexp regexp) { print(regexp.getSource()); }
public void ScopeModule(ScopeModule scopemodule) { print(scopemodule.getScopeModuleDepth()); }
public void Self(Self self) { LocalVariable(self); }
public void Self(Self self) { print("%self"); }
public void Splat(Splat splat) { visit(splat.getArray()); }
public void StandardError(StandardError standarderror) { }
public void StringLiteral(StringLiteral stringliteral) { print(stringliteral.getByteList()); }

0 comments on commit 00388a7

Please sign in to comment.