Skip to content

Commit dc37253

Browse files
committed
Override freeze-related behaviour in RubyRange
1 parent cdd3399 commit dc37253

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,37 @@
99
*/
1010
package org.truffleruby.core.range;
1111

12+
import com.oracle.truffle.api.library.ExportLibrary;
13+
import com.oracle.truffle.api.library.ExportMessage;
1214
import com.oracle.truffle.api.object.Shape;
1315
import org.truffleruby.core.klass.RubyClass;
1416
import org.truffleruby.language.RubyDynamicObject;
17+
import org.truffleruby.language.library.RubyLibrary;
1518

19+
@ExportLibrary(RubyLibrary.class)
1620
public abstract class RubyRange extends RubyDynamicObject {
1721

1822
public boolean excludedEnd;
23+
public boolean frozen;
1924

2025
public RubyRange(RubyClass rubyClass, Shape shape, boolean excludedEnd) {
2126
super(rubyClass, shape);
2227
this.excludedEnd = excludedEnd;
2328
}
2429

30+
public RubyRange(RubyClass rubyClass, Shape shape, boolean excludedEnd, boolean frozen) {
31+
super(rubyClass, shape);
32+
this.excludedEnd = excludedEnd;
33+
this.frozen = frozen;
34+
}
35+
36+
@ExportMessage
37+
protected void freeze() {
38+
frozen = true;
39+
}
40+
41+
@ExportMessage
42+
protected boolean isFrozen() {
43+
return frozen;
44+
}
2545
}

0 commit comments

Comments
 (0)