Skip to content

Commit e051484

Browse files
committed
Mark RubyClass#ancestorClasses as @CompilationFinal(dimensions = 1)
* So in case the RubyClass object is constant and the index is constant we can fold `RUBY_CLASS.ancestorClasses[INDEX]`, relevant in IsANode.
1 parent 3945417 commit e051484

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/main/java/org/truffleruby/core/klass/RubyClass.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Arrays;
1313
import java.util.Set;
1414

15+
import com.oracle.truffle.api.CompilerDirectives.CompilationFinal;
1516
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
1617
import com.oracle.truffle.api.interop.InteropLibrary;
1718
import com.oracle.truffle.api.library.ExportLibrary;
@@ -41,7 +42,7 @@ public final class RubyClass extends RubyModule implements ObjectGraphNode {
4142
public final RubyDynamicObject attached;
4243
/* a RubyClass or nil for BasicObject */
4344
public final Object superclass;
44-
public final RubyClass[] ancestorClasses;
45+
@CompilationFinal(dimensions = 1) public final RubyClass[] ancestorClasses;
4546
public final ConcurrentWeakSet<RubyClass> directNonSingletonSubclasses;
4647
/** Depth from BasicObject (= 0) in the inheritance hierarchy. */
4748
public final int depth;

0 commit comments

Comments
 (0)