Skip to content

Commit f6cb41b

Browse files
committed
Removal of redundant specializations.
1 parent 3a01e6f commit f6cb41b

File tree

2 files changed

+10
-52
lines changed

2 files changed

+10
-52
lines changed

src/main/java/org/truffleruby/core/array/ArrayNodes.java

Lines changed: 8 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,6 @@
5959
import org.truffleruby.core.numeric.FixnumLowerNode;
6060
import org.truffleruby.core.proc.RubyProc;
6161
import org.truffleruby.core.range.RangeNodes.NormalizedStartLengthNode;
62-
import org.truffleruby.core.range.RubyIntRange;
63-
import org.truffleruby.core.range.RubyLongRange;
64-
import org.truffleruby.core.range.RubyObjectRange;
6562
import org.truffleruby.core.rope.Rope;
6663
import org.truffleruby.core.rope.RopeNodes;
6764
import org.truffleruby.core.rope.RopeOperations;
@@ -104,7 +101,6 @@
104101
import com.oracle.truffle.api.dsl.NodeChild;
105102
import com.oracle.truffle.api.dsl.ReportPolymorphism;
106103
import com.oracle.truffle.api.dsl.Specialization;
107-
import com.oracle.truffle.api.dsl.Cached.Shared;
108104
import com.oracle.truffle.api.frame.VirtualFrame;
109105
import com.oracle.truffle.api.library.CachedLibrary;
110106
import com.oracle.truffle.api.nodes.DirectCallNode;
@@ -279,29 +275,10 @@ protected Object index(RubyArray array, int index, NotProvided length,
279275
return readNode.executeRead(array, index);
280276
}
281277

282-
@Specialization
283-
protected Object indexRange(RubyArray array, RubyObjectRange range, NotProvided length,
284-
@Cached @Shared("starting") NormalizedStartLengthNode startLengthNode,
285-
@Cached @Shared("ending") ReadSliceNormalizedNode readSlice) {
286-
return readRange(array, range, startLengthNode, readSlice);
287-
}
288-
289-
@Specialization
290-
protected Object indexIntRange(RubyArray array, RubyIntRange range, NotProvided length,
291-
@Cached @Shared("starting") NormalizedStartLengthNode startLengthNode,
292-
@Cached @Shared("ending") ReadSliceNormalizedNode readSlice) {
293-
return readRange(array, range, startLengthNode, readSlice);
294-
}
295-
296-
@Specialization
297-
protected Object indexLongRange(RubyArray array, RubyLongRange range, NotProvided length,
298-
@Cached @Shared("starting") NormalizedStartLengthNode startLengthNode,
299-
@Cached @Shared("ending") ReadSliceNormalizedNode readSlice) {
300-
return readRange(array, range, startLengthNode, readSlice);
301-
}
302-
303-
private Object readRange(RubyArray array, Object range, NormalizedStartLengthNode startLengthNode,
304-
ReadSliceNormalizedNode readSlice) {
278+
@Specialization(guards = "isRubyRange(range)")
279+
protected Object indexRange(RubyArray array, Object range, NotProvided length,
280+
@Cached NormalizedStartLengthNode startLengthNode,
281+
@Cached ReadSliceNormalizedNode readSlice) {
305282
final int[] startLength = startLengthNode.execute(range, array.size);
306283
final int len = Math.max(startLength[1], 0); // negative range ending maps to zero length
307284
return readSlice.executeReadSlice(array, startLength[0], len);
@@ -382,29 +359,10 @@ protected Object set(RubyArray array, int index, Object value, NotProvided unuse
382359
return writeNode.executeWrite(array, nIndex, value);
383360
}
384361

385-
@Specialization
386-
protected Object setRange(RubyArray array, RubyObjectRange range, Object value, NotProvided unused,
387-
@Cached @Shared("startLength") NormalizedStartLengthNode normalizedStartLength,
388-
@Cached @Shared("nagativeStart") BranchProfile negativeStart) {
389-
return setRangeInternal(array, range, value, normalizedStartLength, negativeStart);
390-
}
391-
392-
@Specialization
393-
protected Object setIngRange(RubyArray array, RubyIntRange range, Object value, NotProvided unused,
394-
@Cached @Shared("startLength") NormalizedStartLengthNode normalizedStartLength,
395-
@Cached @Shared("nagativeStart") BranchProfile negativeStart) {
396-
return setRangeInternal(array, range, value, normalizedStartLength, negativeStart);
397-
}
398-
399-
@Specialization
400-
protected Object setLongRange(RubyArray array, RubyLongRange range, Object value, NotProvided unused,
401-
@Cached @Shared("startLength") NormalizedStartLengthNode normalizedStartLength,
402-
@Cached @Shared("nagativeStart") BranchProfile negativeStart) {
403-
return setRangeInternal(array, range, value, normalizedStartLength, negativeStart);
404-
}
405-
406-
private Object setRangeInternal(RubyArray array, Object range, Object value,
407-
NormalizedStartLengthNode normalizedStartLength, BranchProfile negativeStart) {
362+
@Specialization(guards = "isRubyRange(range)")
363+
protected Object setRange(RubyArray array, Object range, Object value, NotProvided unused,
364+
@Cached NormalizedStartLengthNode normalizedStartLength,
365+
@Cached BranchProfile negativeStart) {
408366
final int[] startLength = normalizedStartLength.execute(range, array.size);
409367
final int start = startLength[0];
410368
if (start < 0) {

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ protected RubyArray map(RubyIntRange range, RubyProc block,
8484
return createArray(arrayBuilder.finish(state, length), length);
8585
}
8686

87-
@Specialization
88-
protected Object mapFallback(RubyObjectRange range, Object block) {
87+
@Fallback
88+
protected Object mapFallback(Object range, Object block) {
8989
return FAILURE;
9090
}
9191
}

0 commit comments

Comments
 (0)