Skip to content

Commit f85244c

Browse files
committed
Simplify Range#each node
* All Specializations will receive a block since `enumeratorSize` is used.
1 parent eac87c9 commit f85244c

File tree

1 file changed

+2
-12
lines changed

1 file changed

+2
-12
lines changed

src/main/java/org/truffleruby/core/range/RangeNodes.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.truffleruby.core.cast.ToIntNode;
2626
import org.truffleruby.core.klass.RubyClass;
2727
import org.truffleruby.core.proc.RubyProc;
28-
import org.truffleruby.language.Nil;
2928
import org.truffleruby.language.RubyContextNode;
3029
import org.truffleruby.language.RubyGuards;
3130
import org.truffleruby.language.RubyNode;
@@ -137,24 +136,15 @@ protected RubyLongRange eachLong(RubyLongRange range, RubyProc block) {
137136
return range;
138137
}
139138

140-
private Object eachInternal(VirtualFrame frame, RubyRange range, Object block) {
139+
@Specialization
140+
protected Object eachObject(RubyObjectRange range, RubyProc block) {
141141
if (eachInternalCall == null) {
142142
CompilerDirectives.transferToInterpreterAndInvalidate();
143143
eachInternalCall = insert(DispatchNode.create());
144144
}
145145

146146
return eachInternalCall.callWithBlock(range, "each_internal", block);
147147
}
148-
149-
@Specialization
150-
protected Object eachObject(VirtualFrame frame, RubyLongRange range, Nil block) {
151-
return eachInternal(frame, range, block);
152-
}
153-
154-
@Specialization
155-
protected Object each(VirtualFrame frame, RubyObjectRange range, Object block) {
156-
return eachInternal(frame, range, block);
157-
}
158148
}
159149

160150
@CoreMethod(names = "exclude_end?")

0 commit comments

Comments
 (0)